a(), see section
5). Type is one of atom,
compound, callable or atomic. Type
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 having
been created from Name and Type) and Type
are related as below
compound or callable.
If
Type is unbound is is unified with compound.atom
or callable. If Type is unbound is is unified
with
atom.atomic.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.