These are special functions that may be used in declaring the allowed
values for a variable. A type must have exactly one parameter and
should return an atom that is either true (non-zero) or false (zero).
Types can also be called just like other functions. See
Using Types.