anchor.diff:        { $declaration=$voidOrInferredMethodDeclaration.declaration; }
       | inferredAttributeDeclaration
         { $declaration=$inferredAttributeDeclaration.declaration; }
  -    //| typedMethodOrAttributeDeclaration
  +    | typedMethodOrAttributeDeclaration
  +      { $declaration=$typedMethodOrAttributeDeclaration.declaration; }
       | classDeclaration
         { $declaration=$classDeclaration.declaration; }
       | interfaceDeclaration
  
positive.code: fragment INDEX_OP: '[';
  //distinguish the spread operator "x[]."
  //from a sequenced type "T[]..."
  LBRACKETS
      : '['
      (
        (']' '.' ~'.') => '].' { $type = SPREAD_OP; }
  
negative.code:         parameters
          { def.addParameterList($parameters.parameterList); 
            dec.addParameterList($parameters.parameterList); }
        )+
        //metatypes? 
        (
          typeConstraints
  