;; srfi-1 -*- Scheme -*- (srfi-1#alist-cons (forall (a b c) (#(procedure #:clean) srfi-1#alist-cons (a b (list-of c)) (pair a (pair b (list-of c)))))) (srfi-1#alist-copy (forall (a) (#(procedure #:clean #:enforce) srfi-1#alist-copy ((list-of a)) (list-of a)))) (srfi-1#alist-delete (forall (a b) (#(procedure #:enforce) srfi-1#alist-delete (a (list-of b) #!optional (procedure (a b) *)) list))) (srfi-1#alist-delete! (forall (a b) (#(procedure #:enforce) srfi-1#alist-delete! (a (list-of b) #!optional (procedure (a b) *)) undefined))) (srfi-1#any (forall (a) (#(procedure #:enforce) srfi-1#any ((procedure (a #!rest) *) (list-of a) #!rest list) *))) (srfi-1#append! (#(procedure #:enforce) srfi-1#append! (#!rest list) list)) (srfi-1#append-map (forall (a b) (#(procedure #:enforce) srfi-1#append-map ((procedure (a #!rest) (list-of b)) (list-of a) #!rest list) (list-of b)))) (srfi-1#append-map! (forall (a b) (#(procedure #:enforce) srfi-1#append-map! ((procedure (a #!rest) (list-of b)) (list-of a) #!rest list) (list-of b)))) (srfi-1#append-reverse (#(procedure #:clean #:enforce) srfi-1#append-reverse (list list) list)) (srfi-1#append-reverse! (#(procedure #:enforce) srfi-1#append-reverse! (list list) list)) (srfi-1#break (forall (a) (#(procedure #:enforce) srfi-1#break ((procedure (a) *) (list-of a)) (list-of a) (list-of a)))) (srfi-1#break! (forall (a) (#(procedure #:enforce) srfi-1#break! ((procedure (a) *) (list-of a)) (list-of a) (list-of a)))) (srfi-1#car+cdr (forall (a b) (#(procedure #:clean #:enforce) srfi-1#car+cdr ((pair a b)) a b))) (srfi-1#circular-list (#(procedure #:clean) srfi-1#circular-list (#!rest) list)) (srfi-1#circular-list? (#(procedure #:clean #:foldable) srfi-1#circular-list? (*) boolean) ((null) (let ((#(tmp) #(1))) '#f))) (srfi-1#concatenate (#(procedure #:clean #:enforce) srfi-1#concatenate ((list-of list)) list)) (srfi-1#concatenate! (#(procedure #:enforce) srfi-1#concatenate! ((list-of list)) list)) (srfi-1#cons* (forall (a) (#(procedure #:clean) srfi-1#cons* (a #!rest) (pair a *)))) (srfi-1#count (forall (a) (#(procedure #:enforce) srfi-1#count ((procedure (a #!rest) *) (list-of a) #!rest list) fixnum))) (srfi-1#delete (forall (a b) (#(procedure #:enforce) srfi-1#delete (a (list-of b) #!optional (procedure (a *) *)) (list-of b)))) (srfi-1#delete! (forall (a b) (#(procedure #:enforce) srfi-1#delete! (a (list-of b) #!optional (procedure (a *) *)) (list-of b)))) (srfi-1#delete-duplicates (forall (a) (#(procedure #:enforce) srfi-1#delete-duplicates ((list-of a) #!optional (procedure (a *) *)) (list-of a)))) (srfi-1#delete-duplicates! (forall (a) (#(procedure #:enforce) srfi-1#delete-duplicates! ((list-of a) #!optional (procedure (a *) *)) (list-of a)))) (srfi-1#dotted-list? (#(procedure #:clean #:foldable) srfi-1#dotted-list? (*) boolean)) (srfi-1#drop (forall (a) (#(procedure #:enforce) srfi-1#drop ((list-of a) fixnum) (list-of a)))) (srfi-1#drop-right (forall (a) (#(procedure #:enforce) srfi-1#drop-right ((list-of a) fixnum) (list-of a)))) (srfi-1#drop-right! (forall (a) (#(procedure #:enforce) srfi-1#drop-right! ((list-of a) fixnum) (list-of a)))) (srfi-1#drop-while (forall (a) (#(procedure #:enforce) srfi-1#drop-while ((procedure (a) *) (list-of a)) (list-of a)))) (srfi-1#eighth (#(procedure #:clean #:enforce #:foldable) srfi-1#eighth (pair) *)) (srfi-1#every (forall (a) (#(procedure #:enforce) srfi-1#every ((procedure (a #!rest) *) (list-of a) #!rest list) *))) (srfi-1#fifth (#(procedure #:clean #:enforce #:foldable) srfi-1#fifth (pair) *)) (srfi-1#filter (forall (a) (#(procedure #:enforce) srfi-1#filter ((procedure (a) *) (list-of a)) (list-of a)))) (srfi-1#filter! (forall (a) (#(procedure #:enforce) srfi-1#filter! ((procedure (a) *) (list-of a)) (list-of a)))) (srfi-1#filter-map (forall (a b) (#(procedure #:enforce) srfi-1#filter-map ((procedure (a #!rest) b) (list-of a) #!rest list) (list-of b)))) (srfi-1#find (forall (a) (#(procedure #:enforce) srfi-1#find ((procedure (a) *) (list-of a)) *))) (srfi-1#find-tail (forall (a) (#(procedure #:enforce) srfi-1#find-tail ((procedure (a) *) (list-of a)) *))) (srfi-1#first (forall (a) (#(procedure #:clean #:enforce #:foldable) srfi-1#first ((pair a *)) a)) ((pair) (##core#inline "C_u_i_car" #(1)))) (srfi-1#fold (#(procedure #:enforce) srfi-1#fold ((procedure (* #!rest) *) * #!rest list) *)) ;XXX (srfi-1#fold-right (#(procedure #:enforce) srfi-1#fold-right ((procedure (* #!rest) *) * #!rest list) *)) ;XXX (srfi-1#fourth (forall (a) (#(procedure #:clean #:enforce #:foldable) srfi-1#fourth ((pair * (pair * (pair * (pair a *))))) a)) (((pair * (pair * (pair * (pair * *))))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1))))))) (srfi-1#iota (#(procedure #:clean #:enforce) srfi-1#iota (fixnum #!optional fixnum fixnum) (list-of number))) (srfi-1#last (#(procedure #:clean #:enforce #:foldable) srfi-1#last (pair) *)) (srfi-1#last-pair (#(procedure #:clean #:enforce #:foldable) srfi-1#last-pair (pair) *)) (srfi-1#length+ (#(procedure #:clean #:enforce #:foldable) srfi-1#length+ (list) *)) (srfi-1#list-copy (forall (a) (#(procedure #:pure) srfi-1#list-copy (a) a))) (srfi-1#list-index (forall (a) (#(procedure #:enforce) srfi-1#list-index ((procedure (a #!rest) *) (list-of a) #!rest list) *))) (srfi-1#list-tabulate (forall (a) (#(procedure #:enforce) srfi-1#list-tabulate (fixnum (procedure (fixnum) a)) (list-of a)))) (srfi-1#list= (#(procedure #:clean #:enforce) srfi-1#list= (#!optional (procedure (list list) *) #!rest list) boolean) (() '#t) ((procedure) (let ((#(tmp) #(1))) '#t))) (srfi-1#lset-adjoin (forall (a) (#(procedure #:enforce) srfi-1#lset-adjoin ((procedure (a a) *) (list-of a) #!rest a) (list-of a))) ((procedure list) (let ((#(tmp) #(1))) #(2)))) (srfi-1#lset-diff+intersection (forall (a) (#(procedure #:enforce) srfi-1#lset-diff+intersection ((procedure (a a) *) (list-of a) #!rest (list-of a)) (list-of a) (list-of a))) ((procedure list) (let ((#(tmp) #(1))) (##sys#values #(2) '())))) (srfi-1#lset-diff+intersection! (forall (a) (#(procedure #:enforce) srfi-1#lset-diff+intersection! ((procedure (a a) *) (list-of a) #!rest (list-of a)) (list-of a) (list-of a))) ((procedure list) (let ((#(tmp) #(1))) (##sys#values #(2) '())))) (srfi-1#lset-difference (forall (a) (#(procedure #:enforce) srfi-1#lset-difference ((procedure (a a) *) (list-of a) #!rest (list-of a)) (list-of a))) ((procedure list) (let ((#(tmp) #(1))) #(2)))) (srfi-1#lset-difference! (forall (a) (#(procedure #:enforce) srfi-1#lset-difference! ((procedure (a a) *) (list-of a) #!rest (list-of a)) (list-of a))) ((procedure list) (let ((#(tmp) #(1))) #(2)))) (srfi-1#lset-intersection (forall (a) (#(procedure #:enforce) srfi-1#lset-intersection ((procedure (a a) *) (list-of a) #!rest (list-of a)) (list-of a))) ((procedure list) (let ((#(tmp) #(1))) #(2)))) (srfi-1#lset-intersection! (forall (a) (#(procedure #:enforce) srfi-1#lset-intersection! ((procedure (a a) *) (list-of a) #!rest (list-of a)) (list-of a))) ((procedure list) (let ((#(tmp) #(1))) #(2)))) (srfi-1#lset-union (forall (a) (#(procedure #:enforce) srfi-1#lset-union ((procedure (a a) *) #!rest (list-of a)) (list-of a))) ((procedure) (let ((#(tmp) #(1))) '())) ((procedure list) (let ((#(tmp) #(1))) #(2)))) (srfi-1#lset-union! (forall (a) (#(procedure #:enforce) srfi-1#lset-union! ((procedure (a a) *) #!rest (list-of a)) (list-of a))) ((procedure) (let ((#(tmp) #(1))) '())) ((procedure list) (let ((#(tmp) #(1))) #(2)))) (srfi-1#lset-xor (forall (a) (#(procedure #:enforce) srfi-1#lset-xor ((procedure (a a) *) #!rest (list-of a)) (list-of a))) ((procedure) (let ((#(tmp) #(1))) '())) ((procedure list) (let ((#(tmp) #(1))) #(2)))) (srfi-1#lset-xor! (forall (a) (#(procedure #:enforce) srfi-1#lset-xor! ((procedure (a a) *) #!rest (list-of a)) (list-of a))) ((procedure) (let ((#(tmp) #(1))) '())) ((procedure list) (let ((#(tmp) #(1))) #(2)))) (srfi-1#lset<= (forall (a) (#(procedure #:enforce) srfi-1#lset<= ((procedure (a a) *) #!rest (list-of a)) boolean)) ((procedure) (let ((#(tmp) #(1))) '#t)) ((procedure list) (let ((#(tmp1) #(1)) (#(tmp2) #(2))) '#t))) (srfi-1#lset= (forall (a) (#(procedure #:enforce) srfi-1#lset= ((procedure (a a) *) #!rest (list-of a)) boolean)) ((procedure) (let ((#(tmp) #(1))) '#t)) ((procedure list) (let ((#(tmp1) #(1)) (#(tmp2) #(2))) '#t))) (srfi-1#make-list (forall (a) (#(procedure #:clean #:enforce) srfi-1#make-list (fixnum #!optional a) (list-of a)))) (srfi-1#map! (forall (a b) (#(procedure #:enforce) srfi-1#map! ((procedure (a #!rest) b) (list-of a) #!rest list) (list-of b)))) (srfi-1#map-in-order (forall (a b) (#(procedure #:enforce) srfi-1#map-in-order ((procedure (a #!rest) b) (list-of a) #!rest list) (list-of b)))) (srfi-1#ninth (#(procedure #:clean #:enforce #:foldable) srfi-1#ninth (pair) *)) (srfi-1#not-pair? (#(procedure #:clean #:foldable) srfi-1#not-pair? (*) boolean) ((pair) (let ((#(tmp) #(1))) '#f)) (((not (or pair list))) (let ((#(tmp) #(1))) '#t))) (srfi-1#null-list? (#(procedure #:clean #:enforce #:foldable) srfi-1#null-list? (list) boolean) ((pair) (let ((#(tmp) #(1))) '#f)) ((list) (let ((#(tmp) #(1))) '#f)) ((null) (let ((#(tmp) #(1))) '#t))) (srfi-1#pair-fold (#(procedure #:enforce) srfi-1#pair-fold (procedure * list #!rest list) *)) ;XXX do this (srfi-1#pair-fold-right (#(procedure #:enforce) srfi-1#pair-fold-right (procedure * list #!rest list) *)) ;XXX (srfi-1#pair-for-each (#(procedure #:enforce) srfi-1#pair-for-each ((procedure (#!rest) . *) list #!rest list) undefined)) ;XXX (srfi-1#partition (forall (a) (#(procedure #:enforce) srfi-1#partition ((procedure (a) *) (list-of a)) (list-of a) (list-of a)))) (srfi-1#partition! (forall (a) (#(procedure #:enforce) srfi-1#partition! ((procedure (a) *) (list-of a)) (list-of a) (list-of a)))) (srfi-1#proper-list? (#(procedure #:clean #:foldable) proper-list? (*) boolean) ((null) (let ((#(tmp) #(1))) '#t))) (srfi-1#reduce (#(procedure #:enforce) srfi-1#reduce ((procedure (* *) *) * list) *)) ;XXX (srfi-1#reduce-right (#(procedure #:enforce) srfi-1#reduce-right ((procedure (* *) *) * list) *)) ;XXX (srfi-1#remove (forall (a) (#(procedure #:enforce) srfi-1#remove ((procedure (a) *) (list-of a)) (list-of a)))) (srfi-1#remove! (forall (a) (#(procedure #:enforce) srfi-1#remove! ((procedure (a) *) (list-of a)) (list-of a)))) (srfi-1#reverse! (forall (a) (#(procedure #:enforce) srfi-1#reverse! ((list-of a)) (list-of a)))) (srfi-1#second (forall (a) (#(procedure #:clean #:enforce #:foldable) srfi-1#second ((pair * (pair a *))) a)) (((pair * (pair * *))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1))))) (srfi-1#seventh (#(procedure #:clean #:enforce #:foldable) srfi-1#seventh (pair) *)) (srfi-1#sixth (#(procedure #:clean #:enforce #:foldable) srfi-1#sixth (pair) *)) (srfi-1#span (forall (a) (#(procedure #:enforce) srfi-1#span ((procedure (a) *) (list-of a)) (list-of a) (list-of a)))) (srfi-1#span! (forall (a) (#(procedure #:enforce) srfi-1#span! ((procedure (a) *) (list-of a)) (list-of a) (list-of a)))) (srfi-1#split-at (forall (a) (#(procedure #:enforce) srfi-1#split-at ((list-of a) fixnum) (list-of a) (list-of a)))) (srfi-1#split-at! (forall (a) (#(procedure #:enforce) srfi-1#split-at! ((list-of a) fixnum) (list-of a) (list-of a)))) (srfi-1#take (forall (a) (#(procedure #:enforce) srfi-1#take ((list-of a) fixnum) (list-of a)))) (srfi-1#take! (forall (a) (#(procedure #:enforce) srfi-1#take! ((list-of a) fixnum) (list-of a)))) (srfi-1#take-right (forall (a) (#(procedure #:enforce) srfi-1#take-right ((list-of a) fixnum) (list-of a)))) (srfi-1#take-while (forall (a) (#(procedure #:enforce) srfi-1#take-while ((procedure (a) *) (list-of a)) (list-of a)))) (srfi-1#take-while! (forall (a) (#(procedure #:enforce) srfi-1#take-while! ((procedure (a) *) (list-of a)) (list-of a)))) (srfi-1#tenth (#(procedure #:clean #:enforce #:foldable) srfi-1#tenth (pair) *)) (srfi-1#third (forall (a) (#(procedure #:clean #:enforce #:foldable) srfi-1#third ((pair * (pair * (pair a *)))) a)) (((pair * (pair * (pair * *)))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1)))))) (srfi-1#unfold (#(procedure #:enforce) srfi-1#unfold ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) ;XXX (srfi-1#unfold-right (#(procedure #:enforce) srfi-1#unfold-right ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) ;XXX (srfi-1#unzip1 (forall (a) (#(procedure #:clean #:enforce) srfi-1#unzip1 ((list-of (pair a *))) (list-of a)))) (srfi-1#unzip2 (forall (a b) (#(procedure #:clean #:enforce) srfi-1#unzip2 ((list-of (pair a (pair b *)))) (list-of a) (list-of b)))) (srfi-1#unzip3 (forall (a b c) (#(procedure #:clean #:enforce) srfi-1#unzip3 ((list-of (pair a (pair b (pair c *))))) (list-of a) (list-of b) (list-of c)))) (srfi-1#unzip4 (#(procedure #:clean #:enforce) srfi-1#unzip4 (list) list list list list)) ; yeah (srfi-1#unzip5 (#(procedure #:clean #:enforce) srfi-1#unzip5 (list) list list list list list)) ; yeah, too (srfi-1#xcons (forall (a b) (#(procedure #:pure) srfi-1#xcons (a b) (pair b a)))) (srfi-1#zip (forall (a) (#(procedure #:clean #:enforce) srfi-1#zip ((list-of a) #!rest list) (list-of (pair a *)))))