anchor.diff:          ( package_declaration_item )*
           TOKENDPACKAGE [ COLON  VAR]
   
  +    rule Type_item:
  +        typevar_item
  +#TYPEVAR param_list
  +        | TOKINTEGER | TOKBOOL | TOKSTRING | TOKREAL | TOKNAT | TOKACTION
  +
       rule function_return_type:
  -        ( TOKACTION VAR
  +        ( TOKACTION VAR [call_params]
           | TOKACTIONVALUE
  -        | VAR
  +        | VAR [call_params]
           | type_instantiation
           )
  -
  -    rule Type_item:
  -        TYPEVAR param_list
  -        | TOKINTEGER | TOKBOOL | TOKSTRING | TOKREAL | TOKNAT | TOKACTION
   
       rule Type_nitem:
           Type_item
           | VAR
           | CLASSVAR function_return_type
   
  +    rule struct_arg:
  +        [ TOKNUMERIC | TOKPARAMETER ] TOKTYPE VAR
  +
       rule interface_arg:
  -        struct_arg | expr<<[]>>
  -
  -    rule user_type:
  -        TYPEVAR LPAREN interface_arg (COMMA interface_arg )* RPAREN
  +        ( 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<<[]>>]
   
  
positive.code: 
      rule function_argument: 
          ( function_return_type
          | LPAREN function_return_type RPAREN
          )
          [VAR]
          [ argument_list ]
  
      rule Type_sitem:
          Type_nitem [ LBRACKET NUM COLON NUM RBRACKET ]
  
negative.code:             TOKMODULE (VAR | type_instantiation)
              argument_list
              [ provisos_clause ] SEMICOLON
              (   method_declaration
              |   TOKPARAMETER VAR  EQUAL expr<<[]>> SEMICOLON
              |   TOKDEFAULT_CLOCK [ VAR ]
                    [ LPAREN VAR [ COMMA VAR ] RPAREN ] [ EQUAL expr<<[]>> ] SEMICOLON
              |   TOKINPUT_CLOCK [VAR] [ LPAREN VAR [ COMMA VAR ] RPAREN ]
                    EQUAL expr<<[]>> SEMICOLON
              |   TOKOUTPUT_CLOCK VAR LPAREN VAR [ COMMA VAR ] RPAREN SEMICOLON
              |   TOKNO_RESET SEMICOLON
              |   TOKSCHEDULE import_arg
                    ( TOKCF | TOKSB | TOKSBR | TOKC ) import_arg SEMICOLON
              |   TOKDEFAULT_RESET VAR  LPAREN [ VAR ] RPAREN  [ EQUAL expr<<[]>>] SEMICOLON
              |   TOKINPUT_RESET [ VAR ]  LPAREN [ VAR ] RPAREN
                    [ TOKCLOCKED_BY LPAREN VAR RPAREN ]
                    EQUAL expr<<[]>> SEMICOLON
              |   TOKOUTPUT_RESET VAR  LPAREN VAR RPAREN
                    TOKCLOCKED_BY LPAREN VAR RPAREN SEMICOLON
              )*
              TOKENDMODULE [ COLON  VAR ]
          )
  
      rule export_declaration:
          TOKEXPORT VAR
          [ LPAREN DOT DOT RPAREN ]
          SEMICOLON
  
      rule declared_item:
          term<<[]>> [ ( EQUAL | LARROW ) assign_value ]
  