~ 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