Disjointness of types
No object satisfies more than one of the following predicates:
boolean? bytevector?
char? eof-object?
null? number?
pair? port?
procedure? string?
symbol? vector?
and all predicates created by define-record-type .
These predicates define the types boolean, bytevector, character, the empty list object, eof-object, number, pair, port, procedure, string, symbol, vector, and all record types.
Although there is a separate boolean type,
any Scheme value can be used as a boolean value for the purpose of a
conditional test. As explained in section 6.3, all
values count as true in such a test except for |