anchor.diff:          | package_declaration
   
       rule typedef_declaration:
  -        TOKTYPEDEF single_type_definition
  +        TOKTYPEDEF ( single_type_definition | NUM VAR SEMICOLON )
   
       rule method_body:
           [ provisos_clause ] SEMICOLON
  
positive.code:             [ typevar_param_list ]
          )
  
      rule typevar_item:
          TYPEVAR typevar_param_list
  
      rule typevar_item_or_var:
          VAR [ typevar_param_list ]
  #[call_params]
          | typevar_item
  
      rule typevar_param_list:
          LPAREN [ param_item (COMMA param_item )* ] RPAREN
  
      rule enum_element: term<<[]>> [EQUAL expr<<[]>>]
  
      rule deriving_type_class:
          TOKEQ | TOKBITS | TOKBOUNDED
  
      rule single_type_definition:
          (   (
  # TOKTYPE |
              Type_nitem
              | NUM
              | LPAREN Type_nitem RPAREN
              )
              [ Type_nitem | TOKENABLE ]
          |   ( TOKENUM LBRACE enum_element ( COMMA enum_element )* RBRACE VAR
              | ( TOKSTRUCT | TOKUNION TOKTAGGED )
                  LBRACE
  
negative.code:         SEMICOLON
  
      rule function_argument: 
          ( typevar_item_or_var
          | LPAREN function_argument (COMMA function_argument)* RPAREN
          )
          [VAR [ formal_list ] ]
  
      rule formal_item:
          ( TOKFUNCTION function_argument
          | Type_nitem [ item_name ]
          )
  
      rule formal_list:
          LPAREN [ formal_item ( COMMA formal_item)* ] RPAREN
  
      rule param_list:
          LPAREN [ assign_value (COMMA assign_value)* ] RPAREN
  
      rule function_declaration:
          TOKFUNCTION [ Type_litem ]
          [function_name]
          [ formal_list ]
          [ provisos_clause ]
          ( EQUAL assign_value SEMICOLON
          | SEMICOLON
  