~ chicken-core (chicken-5) de8a21c7031e0a6a59fc5e4520ae8d007e1b6980
commit de8a21c7031e0a6a59fc5e4520ae8d007e1b6980
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Sun Aug 21 12:43:46 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sun Aug 21 12:43:46 2011 +0200
specializations for some list accessors
diff --git a/types.db.new b/types.db.new
index 06455dd3..ee6f5eeb 100644
--- a/types.db.new
+++ b/types.db.new
@@ -68,19 +68,55 @@
(car (forall (a) (procedure! car ((pair a *)) a)) ((pair) (##core#inline "C_u_i_car" #(1))))
(cdr (forall (a) (procedure! cdr ((pair * a)) a)) ((pair) (##core#inline "C_u_i_cdr" #(1))))
-(caar (forall (a) (procedure! caar ((pair (pair a *) *)) a)))
-
-(cadr (forall (a) (procedure! cadr ((pair * (pair a *))) a)))
-(cdar (forall (a) (procedure! cdar ((pair (pair * a) *)) a)))
-(cddr (forall (a) (procedure! cddr ((pair * (pair * a))) a)))
-(caaar (forall (a) (procedure! caaar ((pair (pair (pair a *) *) *)) a)))
-(caadr (forall (a) (procedure! caadr ((pair * (pair (pair a *) *))) a)))
-(cadar (forall (a) (procedure! cadar ((pair (pair * (pair a *)) *)) a)))
-(caddr (forall (a) (procedure! caddr ((pair * (pair * (pair a *)))) a)))
-(cdaar (forall (a) (procedure! cdaar ((pair (pair (pair * a) *) *)) a)))
-(cdadr (forall (a) (procedure! cdadr ((pair * (pair (pair * a) *))) a)))
-(cddar (forall (a) (procedure! cddar ((pair (pair * (pair * a)) *)) a)))
-(cdddr (forall (a) (procedure! cdddr ((pair * (pair * (pair * a)))) a)))
+(caar (forall (a) (procedure! caar ((pair (pair a *) *)) a))
+ (((pair (pair * *) *)) (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1)))))
+(cadr (forall (a) (procedure! cadr ((pair * (pair a *))) a))
+ (((pair * (pair * *))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1)))))
+(cdar (forall (a) (procedure! cdar ((pair (pair * a) *)) a))
+ (((pair (pair * *) *)) (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1)))))
+(cddr (forall (a) (procedure! cddr ((pair * (pair * a))) a))
+ (((pair * (pair * *))) (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1)))))
+
+(caaar (forall (a) (procedure! caaar ((pair (pair (pair a *) *) *)) a))
+ (((pair (pair (pair * *) *) *))
+ (##core#inline "C_u_i_car"
+ (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1))))))
+
+(caadr (forall (a) (procedure! caadr ((pair * (pair (pair a *) *))) a))
+ (((pair * (pair (pair * *) *)))
+ (##core#inline "C_u_i_car"
+ (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1))))))
+
+(cadar (forall (a) (procedure! cadar ((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_car" #(1))))))
+
+(caddr (forall (a) (procedure! caddr ((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))))))
+
+(cdaar (forall (a) (procedure! cdaar ((pair (pair (pair * a) *) *)) a))
+ (((pair (pair (pair * *) *) *))
+ (##core#inline "C_u_i_cdr"
+ (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1))))))
+
+(cdadr (forall (a) (procedure! cdadr ((pair * (pair (pair * a) *))) a))
+ (((pair * (pair (pair * *) *)))
+ (##core#inline "C_u_i_cdr"
+ (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1))))))
+
+(cddar (forall (a) (procedure! cddar ((pair (pair * (pair * a)) *)) a))
+ (((pair (pair * (pair * *)) *))
+ (##core#inline "C_u_i_cdr"
+ (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1))))))
+
+(cdddr (forall (a) (procedure! cdddr ((pair * (pair * (pair * a)))) a))
+ (((pair * (pair * (pair * *))))
+ (##core#inline "C_u_i_cdr"
+ (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1))))))
+
(caaaar (forall (a) (procedure! caaaar ((pair (pair (pair (pair a *) *) *) *)) a)))
(caaadr (forall (a) (procedure! caaadr ((pair * (pair (pair (pair a *) *) *))) a)))
(caadar (forall (a) (procedure! caadar ((pair (pair * (pair (pair a *) *)) *)) a)))
@@ -1693,7 +1729,7 @@
(filter-map
(forall (a b) (procedure! filter-map ((procedure (a #!rest) b) (list a) #!rest list) (list b))))
-(find (forall (a) (procedure! find ((procedure (a) *) (list a)) a)))
+(find (forall (a) (procedure! find ((procedure (a) *) (list a)) *)))
(find-tail (forall (a) (procedure! find-tail ((procedure (a) *) (list a)) *)))
(first (forall (a) (procedure! first ((pair a *)) a))
@@ -1786,7 +1822,10 @@
(remove (forall (a) (procedure! remove ((procedure (a) *) (list a)) (list a))))
(remove! (forall (a) (procedure! remove! ((procedure (a) *) (list a)) (list a))))
(reverse! (forall (a) (procedure! reverse! ((list a)) (list a))))
-(second (forall (a) (procedure! second ((pair * (pair a *))) a)))
+
+(second (forall (a) (procedure! second ((pair * (pair a *))) a))
+ (((pair * (pair * *))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1)))))
+
(seventh (procedure! seventh (pair) *))
(sixth (procedure! sixth (pair) *))
(span (forall (a) (procedure! span ((procedure (a) *) (list a)) (list a) (list a))))
@@ -1799,7 +1838,12 @@
(take-while (forall (a) (procedure! take-while ((procedure (a) *) (list a)) (list a))))
(take-while! (forall (a) (procedure! take-while! ((procedure (a) *) (list a)) (list a))))
(tenth (procedure! tenth (pair) *))
-(third (forall (a) (procedure! third ((pair * (pair * (pair a *)))) a)))
+
+(third (forall (a) (procedure! 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))))))
+
(unfold (procedure! unfold ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) ;XXX
(unfold-right (procedure! unfold-right ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) ;XXX
(unzip1 (forall (a) (procedure! unzip1 ((list (pair a *))) (list a))))
Trap