;;; -*- Mode:LISP; Package:SYSTEM-INTERNALS; Readtable:ZL; Base:10 -*-


;;;; 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)
						