anchor.diff:      : '=' declarationStart
       ;
   
  -extraFormalParameter
  -    : formalParameterType parameterName formalParameters*
  +extraParameter
  +    : formalParameterType parameterName parameters*
       ;
   
   formalParameterType
  
positive.code:     //| existsCondition
      ;
  
  formalParameters
      : LPAREN (formalParameter (',' formalParameter)*)? ')'
      -> ^(PARAMETER_LIST[$LPAREN] ^(PARAMETER formalParameter)*)
      ;
  
  //Support for declaring functional formal parameters outside
  //of the parenthesized list
  //Note that this is just a TODO in the spec
  extraFormalParameters
      : extraFormalParameter+
      -> ^(PARAMETER_LIST ^(PARAMETER extraFormalParameter)+)
      ;
  
  //special rule for syntactic predicate
  
negative.code:     ;
  
  voidMethodArgument
      : VOID_MODIFIER parameterName parameters+ block
      -> ^(METHOD_ARGUMENT VOID_MODIFIER parameterName parameters+ block)
      ;
  
  typedMethodOrGetterArgument
      : inferrableType parameterName
      ( 
        (parameters+ memberBody[$inferrableType.tree])
      -> ^(METHOD_ARGUMENT inferrableType parameterName parameters+ memberBody)
      | memberBody[$inferrableType.tree]
      -> ^(ATTRIBUTE_ARGUMENT inferrableType parameterName memberBody)      
      )
  