The purpose of PURE procedures is to allow a processor to know when it is safe
to implement a section of code as a parallel operation. The freedom from side
effects of a pure function assists the efficient implementation of concurrent
execution and allows the function to be invoked concurrently in a FORALL
without such undesirable consequences as nondeterminism. It also forces some
error checking on functions used in a FORALL construct.