This module defines an abstract type which may be extended
to form another type which supports simple iteration. That is,
iteration may be done by type bound procedures of the extended
type. Note that no variables of this type may be declared;
it may only be extended.
The iteration supported is a simple iteration as seen in many
floating point calculations, it is designed so that either achieving
a prescribed tolerance or exceeding a maximum number of iterations
without achieving a tolerance may be detected.