~ chicken-core (chicken-5) a3e2aaea6cb8d0fc6987e75fc00e4e46177bc6c9


commit a3e2aaea6cb8d0fc6987e75fc00e4e46177bc6c9
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Feb 23 09:01:07 2011 -0500
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Feb 23 09:01:07 2011 -0500

    types.db enhancements

diff --git a/common-declarations.scm b/common-declarations.scm
index 4528d1ec..530592eb 100644
--- a/common-declarations.scm
+++ b/common-declarations.scm
@@ -25,8 +25,7 @@
 
 
 (declare 
-  (usual-integrations)
-  (hide d))
+  (usual-integrations))
 
 (cond-expand
  (debugbuild
diff --git a/scrutinizer.scm b/scrutinizer.scm
index c237c75b..80d39451 100755
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -93,13 +93,13 @@
 	     ((flonum) 'flonum)
 	     (else 'number)))	; in case...
 	  ((boolean? lit) 'boolean)
-	  ((list? lit) 'list)
+	  ((null? lit) 'null)
 	  ((pair? lit) 'pair)
+	  ((list? lit) 'list)
 	  ((eof-object? lit) 'eof)
 	  ((vector? lit) 'vector)
 	  ((and (not (##sys#immediate? lit)) ##sys#generic-structure? lit)
 	   `(struct ,(##sys#slot lit 0)))
-	  ((null? lit) 'null)
 	  ((char? lit) 'char)
 	  (else '*)))
   (define (global-result id loc)
diff --git a/types.db b/types.db
index a01bf8d5..4e2e4318 100644
--- a/types.db
+++ b/types.db
@@ -28,18 +28,30 @@
  
 (not (procedure not (*) boolean)
      (((not boolean)) '#t))
+
 (boolean? (procedure boolean? (*) boolean)
 	  ((boolean) '#t)
 	  (((not boolean)) '#f))
+
 (eq? (procedure eq? (* *) boolean))
+
 (eqv? (procedure eqv? (* *) boolean)
       (((and (not number) (not flonum)) *) (eq? #(1) #(2)))
       ((* (and (not number) (not flonum))) (eq? #(1) #(2))))
-(equal? (procedure equal? (* *) boolean))
-(pair? (procedure pair? (*) boolean))
+
+(equal? (procedure equal? (* *) boolean)
+	(((or fixnum symbol char eof null undefined) *) (eq? #(1) #(2)))
+	((* (or fixnum symbol char eof null undefined) (eq? #(1) #(2)))))
+
+(pair? (procedure pair? (*) boolean)
+       ((pair) '#t)
+       (((not pair)) '#f))
+
 (cons (procedure cons (* *) pair))
-(car (procedure car (pair) *))
-(cdr (procedure cdr (pair) *))
+
+(car (procedure car (pair) *) ((pair) (##core#inline "C_u_i_car" #(1))))
+(cdr (procedure cdr (pair) *) ((pair) (##core#inline "C_u_i_cdr" #(1))))
+
 (caar (procedure caar (pair) *))
 (cadr (procedure cadr (pair) *))
 (cdar (procedure cdar (pair) *))
@@ -68,10 +80,14 @@
 (cddadr (procedure cddadr (pair) *))
 (cdddar (procedure cdddar (pair) *))
 (cddddr (procedure cddddr (pair) *))
-(set-car! (procedure set-car! (pair *) undefined))
-(set-cdr! (procedure set-cdr! (pair *) undefined))
-(null? (procedure null? (*) boolean))
-(list? (procedure list? (*) boolean))
+
+(set-car! (procedure set-car! (pair *) undefined) ((pair *) (##sys#setslot #(1) 0 #(2))))
+(set-cdr! (procedure set-cdr! (pair *) undefined) ((pair *) (##sys#setslot #(1) 1 #(2))))
+
+(null? (procedure null? (*) boolean) ((null) #t) ((not null) #f))
+(list? (procedure list? (*) boolean) (((or null pair list)) #t) (((not (or null pair list))) #f))
+
+;;;XXX...
 (list (procedure list (#!rest) list))
 (length (procedure length (list) fixnum))
 (list-tail (procedure list-tail (list fixnum) *))
Trap