anchor.diff:          metatypes?
           satisfiedTypes?
           typeConstraints?
  -        (interfaceBody | typeSpecifier ';'!)
  +        interfaceDefinition
  +    ;
  +
  +interfaceDefinition
  +    : interfaceBody | typeSpecifier ';'!
       ;
   
   interfaceBody
  
positive.code:         extendedType?
          satisfiedTypes?
          typeConstraints?
          (classBody | typeSpecifier? ';'!)
      ;
  
  classBody
  
negative.code:     -> ^(RETRY_STMT)
      ;
  
  //TODO: should we allow the shortcut style of method
  //      definition for a method or getter which returns
  //      a parExpression, just like we do for Smalltalk
  //      style parameters below?
  memberDeclaration
      : objectDeclaration
      -> ^(OBJECT_DECL objectDeclaration)
      | setterDeclaration
      -> ^(ATTRIBUTE_SETTER setterDeclaration)
      | voidMethodDeclaration
      -> ^(METHOD_DECL voidMethodDeclaration)
      | typedMethodOrAttributeDeclaration
      ;
  
  objectDeclaration
      : 'object' memberName objectDefinition
      ;
  
  voidMethodDeclaration
      : 'void' memberName voidMethodDefinition
      ;
  
  setterDeclaration
      : 'assign' memberName block
      ;
  
  voidMethodDefinition
      : methodParameters (block | specifier? ';'!)
      ;
  
  methodDefinition
      : methodParameters (memberBody | specifier? ';'!)
      ;
  
  attributeDefinition
      : (specifier | initializer)? ';'!
      ;
  
  typedMethodOrAttributeDeclaration
      : inferrableType memberName
      ( 
        methodDefinition
      -> ^(METHOD_DECL inferrableType memberName methodDefinition)
      | attributeDefinition
      -> ^(ATTRIBUTE_DECL inferrableType memberName attributeDefinition?)
      | memberBody
      -> ^(ATTRIBUTE_GETTER inferrableType memberName memberBody)      
      )
      ;
  
  inferrableType
  