anchor.diff:  
   //special rule for syntactic predicate
   //to distinguish between a formal 
  -//parameter list and a parenthisized body 
  +//parameter list and a parenthesized body 
   //of an inline callable argument
   //be careful with this one, since it 
   //matches "()", which can also be an 
  
positive.code: //can't tell whether a member body is a block
  //or a named argument list until after we
  //finish parsing it
  memberBody
      : (namedArguments) => namedArguments //first try to match with no directives or control structures
      | (block) => block //if there is a "return" directives control structures, it must be a block
      //if it doesn't match as a block or as a named argument
  
negative.code:       )
      ;
      
  annotatedDeclarationOrStatement options {memoize=true;}
      : (annotatedDeclarationStart) => annotatedDeclaration
      | (controlStructure | expressionStatement | specificationStatement)
      ;
  