File: type.scm

package info (click to toggle)
scsh-0.6 0.6.7-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 15,124 kB
  • ctags: 16,788
  • sloc: lisp: 82,839; ansic: 23,112; sh: 3,116; makefile: 829
file content (53 lines) | stat: -rw-r--r-- 1,571 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
; Copyright (c) 1993-1999 by 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))