;;; -*- Mode:LISP; Base:10; Readtable:ZL -*- ;;;; ZetaLisp Type Definitions ;;; These are extensions to the K Machine Common Lisp type system (li:define-type structure (:predicate (object) (not (null (vinc:structure-p object)))) (:optimizer (expression) `(not (null (vinc:structure-p ,(cadr expression)))))) (li:define-type named-structure structure) (li:define-type symbol li:symbol) (li:define-type array li:array) (li:define-type atom li:atom) (li:define-type bignum li:bignum) (li:define-type bit li:bit) (li:define-type bit-vector li:bit-vector) (li:define-type character li:character) (li:define-type common li:common) (li:define-type compiled-function li:compiled-function) (li:define-type complex li:complex) (li:define-type cons li:cons) (li:define-type double-float li:double-float) (li:define-type fixnum li:fixnum) (li:define-type float li:float) (li:define-type function li:function) (li:define-type hash-table li:hash-table) (li:define-type integer li:integer) (li:define-type keyword li:keyword) (li:define-type list li:list) (li:define-type long-float li:long-float) (li:define-type nil li:nil) (li:define-type null li:null) (li:define-type number li:number) (li:define-type package li:package) (li:define-type pathname li:pathname) (li:define-type random-state li:random-state) (li:define-type ratio li:ratio) (li:define-type rational li:rational) (li:define-type readtable li:readtable) (li:define-type sequence li:sequence) (li:define-type short-float li:short-float) (li:define-type simple-array li:simple-array) (li:define-type simple-bit-vector li:simple-bit-vector) (li:define-type simple-string li:simple-string) (li:define-type simple-vector li:simple-vector) (li:define-type single-float li:single-float) (li:define-type standard-char li:standard-char) (li:define-type stream li:stream) (li:define-type string li:string) (li:define-type string-char li:string-char) (li:define-type t li:t) (li:define-type vector li:vector)