Use index instead of arrayCopy().
Fixed bugs in the validators.
Fixed hashCode, equals, valueHashCode and valueEquals.
Changed to hashCodeValue and equalsValue.
Implmented toString() + renamed variable to name in Attribute
Removed unused statements from the grammar.
Removed space.
Added support for converting immutable attributes to mutable attributes.
Make sure mutable List/Set/Map types are translated to corresponding immutable type.
Added mutable constructors.
Added getters and setters for mutable state.
Added assertIsValid method.