the fixpoint mediator checks whether the application of the unary module
method run() to the input is equivalent to the result value;
if not, it calls run() on the output again, until a fixpoint has been
reached (which must, of course, not exist, i.e., the computation must
not terminate);
note that this default method assumes that input AND output of a module
are of the same data type and that the equals() method on the type of
input/output works properly; in order to guarantee this, the compareTo()
and the equals() method of elements in a structured input/output must
also work properly, perhaps even the hashCode() method;
note further that fix() does NOT set the input NOR the output of the
module!!