0.6.11.26:
[sbcl.git] / src / code / deftypes-for-target.lisp
index 20f9a7a..920c090 100644 (file)
@@ -10,6 +10,8 @@
 ;;;; files for more information.
 
 (in-package "SB!KERNEL")
+
+(/show0 "deftypes-for-target.lisp 14")
 \f
 ;;;; Now that DEFTYPE is set up, any pending requests for it can
 ;;;; be honored.
     #\n #\o #\p #\q #\r #\s #\t #\u #\v #\w #\x #\y #\z #\{
     #\| #\} #\~))
 
-;;; FIXME: Would type inference be able to get more traction on this
-;;; if it were defined as (AND SYMBOL (SATISFIES KEYWORDP))?
 (sb!xc:deftype keyword ()
-  #!+sb-doc
-  "Type for any keyword symbol."
-  '(satisfies keywordp))
+  ;; Defining this as (AND SYMBOL ..) lets (SUBTYPEP 'KEYWORD 'SYMBOL)=>T,T.
+  '(and symbol (satisfies keywordp)))
 
 (sb!xc:deftype eql (n) `(member ,n))
 
   '(or float (complex float)))
 
 ;;; character components
-(sb!xc:deftype char-code () `(integer 0 (,char-code-limit)))
+(sb!xc:deftype char-code () `(integer 0 (,sb!xc:char-code-limit)))
 
 ;;; a consed sequence result. If a vector, is a simple array.
 (sb!xc:deftype consed-sequence () '(or list (simple-array * (*))))
   `(integer 0 (,(ash 1 sb!vm:single-float-digits))))
 (sb!xc:deftype double-float-significand ()
   `(integer 0 (,(ash 1 sb!vm:double-float-digits))))
+
+(/show0 "deftypes-for-target.lisp end of file")