type.scm 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. ; Copyright (c) 1993-2008 by Richard Kelsey and Jonathan Rees. See file COPYING.
  2. ; The types.
  3. (define :syntax
  4. (loophole :type syntax-type))
  5. (define :values
  6. (loophole :type any-values-type))
  7. (define :arguments
  8. (loophole :type any-arguments-type))
  9. (define :value
  10. (loophole :type value-type))
  11. (define procedure
  12. (loophole (proc (:type :type) :type)
  13. (lambda (dom cod) (procedure-type dom cod #t))))
  14. ; Use the definitions of PROC and SOME-VALUES from the meta-types module
  15. ; Various base types
  16. (define :boolean (loophole :type boolean-type))
  17. (define :char (loophole :type char-type))
  18. (define :null (loophole :type null-type))
  19. (define :unspecific (loophole :type unspecific-type))
  20. (define :number (loophole :type number-type))
  21. (define :complex (loophole :type complex-type))
  22. (define :real (loophole :type real-type))
  23. (define :rational (loophole :type rational-type))
  24. (define :integer (loophole :type integer-type))
  25. (define :exact-integer (loophole :type exact-integer-type))
  26. (define :pair (loophole :type pair-type))
  27. (define :string (loophole :type string-type))
  28. (define :symbol (loophole :type symbol-type))
  29. (define :vector (loophole :type vector-type))
  30. (define :procedure (loophole :type any-procedure-type))
  31. ; Temporary
  32. (define :input-port :value)
  33. (define :output-port :value)
  34. (define :error (loophole :type error-type))
  35. (define :escape (loophole :type escape-type))
  36. (define :structure (loophole :type structure-type))
  37. (define :type (loophole :type value-type))