Typed Scheme comes with a number of other types and type constructors, corresponding (mostly) to primitive types provided by PLT Scheme.
The base types represent primitive data
keywordA PLT Scheme literal keyword
The following constructors are parameteric in a single type argument
(Listof t)Homogenous lists of
(Vectorof t)Homogenous vectors of
(cons s t)is the pair containing
(dom ... -> rng)is the type of functions from the (possibly-empty) sequence
dom ...to the
(dom ... rst .. -> rng)is the type of functions from the (possibly-empty) sequence
dom ...with an optional trailing sequence of
..is a part of the syntax of these types.
(U t ...)is the union of the types
(case-lambda fun-ty ...)is a function that behaves like all of the
fun-tys must all be function types constructed with
(t t1 t2 ...)is the instantiation of the parametric type
t1 t2 ...
(pred t)is a predicate for type
(All (v ...) t)is a parameterization of type
t, with type variables
(values t ...)is the type of a sequence of multiple values, with types
t .... This can only appear as the return type of a function.
vis a number, boolean or string, is the singleton type containing only that value
iis an identifier can be a reference to a type name or a type variable
Other types cannot be written by the programmer, but are used internally and may appear in error messages.
#<struct:n (t ...)>is the type of structures named
nwith field types
t. There may be multiple such types with the same printed representation.
(mu n t)is a recursive type where
nis bound to the recursive type in the body
<n>is the printed representation of a reference to the type variable