first idea: use Entity to encapsulate any type, for example String, so
that it can be derived from (for example, to create 
OpNode extends <Entity<String>>...
Then thought that I can use Domain to wrap things like String into
something that we can derive from, e.g.: 
OpNode<String> extends Domain<String>, meaning that the evaluation of
the opNode yields a Domain of Strings, or perhaps
OpNode<String> extends Singleton<String>
renamed data() to element(), to emphasize that it returns the element in
the domain; it must return null if not a singleton (or better, throw 
NoSingletonException)
make FiniteSet generic and propagated the change
changed return type of variability() to the new class Variability
renamed collectionIterator to javaUtilIterator
played with class Singleton...problem with the wrapping strategy based
on Domain...does it require a category field, thus doubling storage?
renamed Singleton t AbstractSingleton (because it was abstract)
and created a new non-abstract SingletonCategoryless class,
having a null category to save storing space
upgraded some raw Domain references to generic, Domain<T>
Refactored SingletonCategoryless to SingletonForm. 
moved it into core package.
Created a categorized version of it.
introduced interface Wrap, representing classes like Singletons that
wrap some other object. We could have an Arrow wrap (one element
pointing to itself), or a CLaim wrap, (the Claim that an object exists).
introduced Evaluator<T> that unwrap or unfolds wrappers or computational
node until an object T is found....will it really work?
change return type of operand() to T to Object
moved Wrap to common package, and created class Wrapper to emphasize
that anything can be used to Wrap final classes....
refined the type in the generic Arrow and OpNode
introduced interface Recursive<T> for any Type can be recursively
reduced to another type T. Implemented by OpNode, Wrap, Wrapper,
SingletonForm,...
WrappedString, a Recursive<String> type; can be stored in a collection
of strings...really needed? can use Evaluator isntead?
removed the type parameter from the idempotent eval, so that we 
can introduce an catch-all Object version
simplified the Arrow interfaces; using the Type parameters to make it
possibile to bound the types used by morph
added several png files that appeared after restarting on elite9, I
don't now why