anchor.diff:      -> ^(ATTRIBUTE_SETTER memberName block)*/
   
   objectArgument
  -    : 'object' parameterName objectDefinition
  -    -> parameterName ^(OBJECT_ARG parameterName objectDefinition)
  +    : 'object' parameterName extendedType? satisfiedTypes? classBody
  +    -> parameterName ^(OBJECT_ARG parameterName extendedType? satisfiedTypes? classBody)
       ;
   
   voidMethodArgument
  -    : 'void' parameterName voidMethodArgumentDefinition
  -    -> parameterName ^(METHOD_ARG 'void' parameterName voidMethodArgumentDefinition)
  -    ;
  -
  -voidMethodArgumentDefinition
  -    : formalParameters+ block
  -    ;
  -
  -methodArgumentDefinition
  -    : formalParameters+ memberBody
  -    ;
  -    
  +    : 'void' parameterName formalParameters+ block
  +    -> parameterName ^(METHOD_ARG 'void' parameterName formalParameters+ block)
  +    ;
  +
   typedMethodOrGetterArgument
       : inferrableType parameterName
       ( 
  -      methodArgumentDefinition
  -    -> parameterName ^(METHOD_ARG inferrableType parameterName methodArgumentDefinition)
  +      (formalParameters+ memberBody)
  +    -> parameterName ^(METHOD_ARG inferrableType parameterName formalParameters+ memberBody)
       | memberBody
       -> parameterName ^(ATTRIBUTE_ARG inferrableType parameterName memberBody)      
       )
  
positive.code:         extraFormalParameters? 
          metatypes? 
          typeConstraints?
      ;
  
  objectDefinition
      : extendedType? satisfiedTypes? classBody
      ;
      
  interfaceDeclaration
  
negative.code:         extendedType?
          satisfiedTypes?
          typeConstraints?
          (classBody | typeSpecifier? ';'!)
      ;
  
  classBody
  