renamed isElement to isSingleton; a Singleton is the frontier point of
the Domain interface (viewing interfaces as a topological space); an
"element" is in the exterior of the Domain topological-interface-space
introduced the interface Category (which is just a marker interface for
now)
make StringCategory a Form; make sure that you honor this contract!!
Danger: could create indirect non-null origin and context
added comment to explain why AbstractForm implements Expression and
Entity
introduced a new naming framework. The "On" prefix indicates that an
Entity is built "on" some other java class. Thus, ArrayListDomain, which
is a Collection Domain that wraps an java.util.ArrayList is renamed to
OnArrayList (the name doesn't need to specify that it is a Domain
because it is implicit in the fact that it wraps an ArrayList and also
in its package location).
saved in the middle of a big change.
Introduced Category category() in the interface Domain;
renamed iterator() to domainIterator() to distinguish from the
java.util.iterator() in Domain implementations on java.util.* classes;
reversed the iterator() to domainIterator() change in many files where
it should have not been made
fixed more errors of the previous type; fixed errors due to the new
category() method in the Domain interface
the new name FormArrayList reflects a new approach in class naming:
The base class is java.util.ArrayList, hence "ArrayList" appears in the
class name. The "Form" suffix indicates the intention to keep this class
a Form
removed 2 useless classes
another application of the new "On" terminology
renamed CollectionDomain to CollectionEntity; 
we could have simpy relied on the package location to distinguish from
java.util.Collection, but we leave the more neutral "Entity" tag for
clarity (no need of the more narrow Domain tag, it is clear that a
Collection is a Domain)
renamed CollectionEntity to FiniteSet (to avoid confusing meaning of the
Entity suffix and the collision with java.util.Collection;
renamed FormArrayList to ArrayListForm to emphasize that it is an
ArrayList in primis, which implements the Form interface
overridden the null default category() method in OnArrayList
added comments to suggest searching for recursive definitions of Entity
origins and Expression contexts
DomainView now reads through its elements and puts a text node for each
of them