scsh-0.5/bcomp/type.scm

54 lines
1.5 KiB
Scheme

; Copyright (c) 1993, 1994 Richard Kelsey and Jonathan Rees. See file COPYING.
; The types.
(define :syntax
(loophole :type syntax-type))
(define :values
(loophole :type any-values-type))
(define :arguments
(loophole :type any-arguments-type))
(define :value
(loophole :type value-type))
(define procedure
(loophole (proc (:type :type) :type)
(lambda (dom cod) (procedure-type dom cod #t))))
; Use the definitions of PROC and SOME-VALUES from the meta-types module
; Various base types
(define :boolean (loophole :type boolean-type))
(define :char (loophole :type char-type))
(define :null (loophole :type null-type))
(define :unspecific (loophole :type unspecific-type))
(define :number (loophole :type number-type))
(define :complex (loophole :type complex-type))
(define :real (loophole :type real-type))
(define :rational (loophole :type rational-type))
(define :integer (loophole :type integer-type))
(define :exact-integer (loophole :type exact-integer-type))
(define :pair (loophole :type pair-type))
(define :string (loophole :type string-type))
(define :symbol (loophole :type symbol-type))
(define :vector (loophole :type vector-type))
(define :procedure (loophole :type any-procedure-type))
; Temporary
(define :input-port :value)
(define :output-port :value)
(define :error (loophole :type error-type))
(define :escape (loophole :type escape-type))
(define :structure (loophole :type structure-type))
(define :type (loophole :type value-type))