anchor.diff:  // enforce the rule that the ... appears at the end of the parapmeter
   // list in a later pass of the compiler.
   parameter returns [Parameter parameter]
  -    : parameterType memberName
  +    : { $parameter = new ValueParameterDeclaration(null); }
  +      parameterType
  +      { $parameter.setType($parameterType.type); }
  +      memberName
  +      { $parameter.setIdentifier($memberName.identifier); }
         (
             valueParameter? specifier?
           //-> ^(VALUE_PARAMETER_DECLARATION parameterType memberName specifier?)
  
positive.code:     //-> ^(SATISFIED_TYPES[$SATISFIES] type+)
      ;
  
  abstractedType
      : ABSTRACTED_TYPE type
      ;
  
  adaptedTypes
      : ADAPTED_TYPES type (INTERSECTION_OP type)*
      ;
  
  caseTypes
      : CASE_TYPES caseType (UNION_OP caseType)*
      ;
  
  caseType 
      : type 
      | memberName //-> ^(BASE_MEMBER_EXPRESSION memberName)
      ;
  
  //Support for metatypes
  
negative.code:     -> ^(METATYPES[$IS_OP] type*)
      ;*/
  
  parameters returns [ParameterList parameterList]
      : LPAREN
        { $parameterList=new ParameterList($LPAREN); }
        (
          ap1=annotatedParameter 
          { $parameterList.addParameter($ap1.parameter); }
          (
            COMMA 
            ap2=annotatedParameter
            { $parameterList.addParameter($ap2.parameter); }
          )*
        )? 
        RPAREN
        //-> ^(PARAMETER_LIST[$LPAREN] annotatedParameter*)
      ;
  
  //special rule for syntactic predicate
  