anchor.diff:  
       rule instance_statement:
           TOKINSTANCE typevar_item
  -#TYPEVAR LPAREN instance_arg ( COMMA instance_arg )* RPAREN
           [ provisos_clause ] SEMICOLON
           ( function_declaration
           | module_declaration
  
positive.code: 
      rule Type_item:
          typevar_item
  #TYPEVAR param_list
          | TOKINTEGER | TOKBOOL | TOKSTRING | TOKREAL | TOKNAT | TOKACTION
  
      rule function_return_type:
          ( TOKACTION VAR [call_params]
          | TOKACTIONVALUE
          | VAR [call_params]
          | type_instantiation
          )
  
      rule Type_nitem:
          Type_item
          | VAR
          | CLASSVAR function_return_type
  
      rule struct_arg:
          [ TOKNUMERIC | TOKPARAMETER ] TOKTYPE VAR
  
      rule interface_arg:
          ( LPAREN interface_arg RPAREN
          | ( struct_arg
      | argument_item
          #| Type_nitem
  #{{ print "UU" }}
          | NUM
          )
          [ VAR ]
          [ typevar_param_list ]
          )
  # VAR
  #expr<<[]>>
  
      rule instance_arg:
          Type_nitem | NUM
  
      rule typevar_item:
          TYPEVAR typevar_param_list
  
      rule typevar_param_list:
          LPAREN [ interface_arg (COMMA interface_arg )* ] RPAREN
  
      rule enum_element: term<<[]>> [EQUAL expr<<[]>>]
  
      rule deriving_type_class:
          TOKEQ | TOKBITS | TOKBOUNDED
  
      rule deriving_clause:
          TOKDERIVING  LPAREN deriving_type_class ( COMMA deriving_type_class )* RPAREN
  
      rule struct_arg_list:
            VAR
           | typevar_item
  
      rule struct_member:
          (   ( TOKTYPE
              | instance_arg
              | LPAREN Type_nitem RPAREN
              )
              [ TOKENABLE
              | Type_nitem
  #VAR
  #struct_arg_list
              ]
              SEMICOLON
          | TOKENUM LBRACE enum_element ( COMMA enum_element )* RBRACE VAR
              [ deriving_clause ] SEMICOLON
          | ( TOKSTRUCT | TOKUNION TOKTAGGED )
              LBRACE
                  ( struct_member )*
              RBRACE
              struct_arg_list
              [ deriving_clause ]
              SEMICOLON
          )
  
      rule function_argument: 
          ( function_return_type
  
negative.code:         [VAR [ argument_list ] ]
  
      rule Type_sitem:
          Type_nitem
  # [ LBRACKET NUM COLON NUM RBRACKET ]
  
      rule argument_item:
          ( TOKFUNCTION function_argument
  