Prolog type checking

Typing is dynamic in prolog - i.e. associated with a value, not a variable - so the language provides support for run-time checking of data types.

Many type checking functions are built in, each returning a boolean value: