anchor.diff:              param_list
           | TOKINTEGER | TOKBOOL | TOKSTRING | TOKREAL | TOKNAT | TOKACTION
   
  -    rule case_statement:
  -        TOKCASE LPAREN expression RPAREN
  -        ( MATCHES
  -          (
  -              ( dot_field_selection
  -              | LBRACE tdot_field_item (COMMA tdot_field_item)* RBRACE
  -              | TOKDEFAULT
  -              | VAR 
  -              )
  -              COLON (QUESTION SEMICOLON | function_body_statement)
  -          )*
  -        | (
  -              (expression (COMMA expression)*
  -              | TOKDEFAULT
  -              )
  -              COLON (QUESTION SEMICOLON | function_body_statement)
  -          )*
  -        )
  -        TOKENDCASE
  -
  -    rule let_statement:
  -        TOKLET
  -        ( VAR
  -        | LBRACE VAR (COMMA VAR)* RBRACE
  -        )
  -        ( EQUAL | LARROW ) assign_value SEMICOLON
  -
       rule enum_element: term<<[]>> [EQUAL expression]
   
       rule deriving_type_class:
  
positive.code:     rule interface_arg:
          struct_arg | expression
  
      rule interfaceTypesub:
          TYPEVAR LPAREN interface_arg (COMMA interface_arg )* RPAREN
  
      rule subinterface_declaration:
          TOKINTERFACE
          ( interfaceTypesub VAR SEMICOLON
          | VAR ( EQUAL assign_value SEMICOLON
              | VAR
                  ( EQUAL assign_value SEMICOLON
                  | SEMICOLON
                      [
                      ( method_declaration
                      | attribute_statement
                      )+
                      TOKENDINTERFACE [ COLON VAR ]
                      ]
                  )
              )
  
negative.code:         ( Type_item declared_item ( COMMA declared_item )*
          | expression [   ( declared_item ( COMMA declared_item )*
                           | ( EQUAL | LEQ | LARROW) assign_value
                           )
                       ]
          ) SEMICOLON
  
      rule for_decl_item:
          # datatype might not be present
          Type_nitem [ VAR ] ( EQUAL | LEQ ) assign_value
  
      rule for_statement:
  