|Did you know ...
a(), see section
5). Type is one of
must be instantiated if Name is an atom and Arity
is 0 (zero). In other cases Type may be a variable. This
predicate is true if Term (either initially or after haveing
been created from Name and Type) and Type
are related as below
Type is unbound is is unified with
callable. If Type is unbound is is unified
This predicate provides a safe round trip for zero-arity compounds and atoms. It can also be used as a variant of functor/3 that only processes compound or callable terms. See also compound/1, callable/1 and compound_name_arity/3.