anchor.diff:      rule module_declaration:
           TOKMODULE [ LBRACKET assign_value RBRACKET ] ( VAR | TYPEVAR argument_list )
           LPAREN [ module_param (COMMA module_param)* ] RPAREN
  -        [ provisos ]
  +        [ provisos_clause ]
           SEMICOLON
           [
               module_item
               TOKENDMODULE [ COLON VAR]
           ]
   
  -    rule package_statement:
  +    rule package_declaration:
           TOKPACKAGE VAR SEMICOLON
  -        ( package_statement_item )*
  +        ( package_declaration_item )*
           TOKENDPACKAGE [ COLON  VAR]
   
  -    rule rule_predicate:
  -        LPAREN
  -        assign_value
  -#          [ MATCHES dot_field_ltagged
  -#  # TOKTAGGED VAR
  -#  #            ( LBRACE tagged_match_arg (COMMA tagged_match_arg)* RBRACE
  -#  #            | DOT VAR
  -#  #            )
  -#          ]
  -        RPAREN
  -
  -    rule rule_statement:
  -        TOKRULE VAR [rule_predicate] SEMICOLON
  -        statement_list
  -        TOKENDRULE [ COLON  VAR ]
  -
  -    rule rules_statement:
  -        TOKRULES [ COLON  VAR]
  -        ( rule_statement
  -        | variable_declaration_or_call SEMICOLON
  -        )*
  -        TOKENDRULES [ COLON  VAR]
  +    rule function_return_type:
  +        ( TOKACTION VAR
  +        | TOKACTIONVALUE
  +        | type_instantiation
  +        )
   
       rule Type_item:
  -        ( TYPEVAR | TOKBITHASH | TOKINTHASH | TOKUINTHASH | TOKCOMPLEXHASH
  -            | TOKREGHASH | TOKFIFOHASH | TOKMAYBEHASH
  -            | TOKVECTORHASH | TOKTUPLE2HASH | TOKFIXEDPOINTHASH
  -            | TOKACTIONVALUEHASH
  -            )
  -            param_list
  +        TYPEVAR param_list
           | TOKINTEGER | TOKBOOL | TOKSTRING | TOKREAL | TOKNAT | TOKACTION
   
  -    rule enum_element: term<<[]>> [EQUAL expression]
  +    rule Type_nitem:
  +        Type_item
  +        | VAR [ COLONCOLON function_return_type ]
  +
  +    rule interface_arg:
  +        struct_arg | expr<<[]>>
  +
  +    rule user_type:
  +        TYPEVAR LPAREN interface_arg (COMMA interface_arg )* RPAREN
  +
  +    rule enum_element: term<<[]>> [EQUAL expr<<[]>>]
   
       rule deriving_type_class:
           TOKEQ | TOKBITS | TOKBOUNDED
  
positive.code:         | typedef_declaration
          )+
  
      rule package_statement_item:
          typedef_declaration
          | import_declaration
          | export_declaration
  
negative.code: 
      rule argument_item:
          ( FUNCTION function_argument
          | Type_sitem [ item_name ]
          )
  
      rule argument_list:
  