Note that although this class implements
Serializable, a given instance will
only be truly Serializable if all the
underlying functors are. Attempts to serialize
an instance whose delegates are not all
Serializable will result in an exception.

run

equals

Indicates whether some other object is "equal to"
this functor. This method must adhere to
general Object.equals contract.
Additionally, this method can return
trueonly if the specified Object implements
the same functor interface and is known to produce the same
results and/or side-effects for the same arguments (if any).

While implementators are strongly encouraged to override
the default Object implementation of this method,
note that the default Object implementation
does in fact adhere to the functor equals contract.

hashCode

Returns a hash code for this functor adhering to the
general Object.hashCode contract.
Implementators are strongly encouraged but not
strictly required to override the default Object
implementation of this method.