Annotation Types Summary
| Assignable | Indicates that a field is assignable, even if it is inside a ReadOnlyinstance. | 
| Mutable | Indicates that, for the variable on which this annotation appears,
 the object to which this variable refers can be modified via this
 reference, except its fields explicitly marked as ReadOnly. | 
| PolyRead | Specifies the allowed mutabilities of a method's return value or the arguments,
 based on the mutability type of the arguments and the receiver at a method
 invocation. | 
| QReadOnly | Indicates that the annotated type behaves as the most restrictive of ReadOnlyandMutable: onlyMutablecan be assigned
 to it, and it can only be assigned toReadOnly. | 
| ReadOnly | Indicates that, for the variable on which this annotation appears,
 the object to which this variable refers will not be modified via
 this reference, except its fields explicitly marked as Mutable. | 
| ThisMutable | An annotation used to represent a place holder immutability type, that is
 equivalent to the ThisMutable type on the Javari typesystem. |