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 (Booleans), all values count as true in such a test
except for #f. This report uses the word “true” to
refer to any Scheme value except #f, and the word
“false” to refer to #f.