[det]must_be(+Type,
@Term)atom, atomic, between, boolean, callable,
chars, codes, text, compound, constant, float,
integer, nonneg, positive_integer, negative_integer,
nonvar, number, oneof, list, list_or_partial_list,
symbol, var, rational, encoding, dict
and string.
Most of these types are defined by an arity-1 built-in predicate of the same name. Below is a brief definition of the other types.
acyclic Acyclic term (tree); see acyclic_term/1 any any term between(FloatL,FloatU)Number [FloatL..FloatU] between(IntL,IntU)Integer [IntL..IntU] boolean One of trueorfalsecallable Atom or compound term char Atom of length 1 chars Proper list of 1-character atoms code Representation Unicode code point (0..0x10ffff) codes Proper list of Unicode character codes compound compound term compound(Term)Compound with same name/arity as term; checks arguments constant Same as atomiccyclic Cyclic term (rational tree); see cyclic_term/1 dict A dictionary term; see is_dict/1 encoding Valid name for a character encoding; see current_encoding/1 list A (non-open) list; see is_list/1 list(Type)Proper list with elements of Type list_or_partial_list A list or an open list (ending in a variable); see is_list_or_partial_list/1 negative_integer Integer < 0 nonneg Integer >=0oneof(L)Ground term that is member of L pair Key-Value pair. Same as compound(any-any)positive_integer Integer > 0 proper_list Same as list stream A stream name or valid stream handle; see is_stream/1 symbol Same as atomtext One of atom,string,charsorcodestype Term is a valid type specification
In addition, types may be composed using TypeA,TypeB,
TypeA;TypeB and negated using \Type.
type_error(Type, Term) if Term is not of Type.