It looks pretty simple: For example, @Immutable in a class that the processor would then give an error if there were any non-final calls to the field. This was to ensure that all collaborators will also be unchanged.
A @ReferentiallyTransparent (best name?) Could be imposed on methods that would then check that all calls and collaborators are also tagged @RefTrans and @Immutable ...
source
share