type.scm 1.6 KB

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