@Documented @Retention(value=RUNTIME) @Target(value={METHOD,CONSTRUCTOR}) public @interface Pure
Pure is a method annotation that means both SideEffectFree and Deterministic. The more important of these, when performing pluggable type-checking, is usually
SideEffectFree.
This annotation is inherited by subtypes, just as if it were meta-annotated with
@InheritedAnnotation.