anchor.diff:          SEMICOLON
   
       rule function_argument: 
  -        ( function_return_type
  +        ( typevar_item_or_var
           | LPAREN function_argument (COMMA function_argument)* RPAREN
           )
  -        [VAR [ argument_list ] ]
  -
  -    rule Type_sitem:
  -        Type_nitem
  -# [ LBRACKET NUM COLON NUM RBRACKET ]
  -
  -    rule argument_item:
  +        [VAR [ formal_list ] ]
  +
  +    rule formal_item:
           ( TOKFUNCTION function_argument
  -        | Type_sitem [ item_name ]
  -        )
  -
  -    rule argument_list:
  -        LPAREN [ argument_item ( COMMA argument_item)* ] RPAREN
  +        | 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_sitem
  -            | LPAREN Type_nitem (COMMA Type_nitem)* RPAREN
  -            )
  -        ]
  +        TOKFUNCTION [ Type_litem ]
           [function_name]
  -        [ argument_list ]
  +        [ formal_list ]
           [ provisos_clause ]
           ( EQUAL assign_value SEMICOLON
           | SEMICOLON
  
positive.code: 
      rule method_declaration:
          TOKMETHOD 
          ( (TOKACTIONVALUE | Type_item) VAR [ argument_list ]
          | VAR [ VAR ] [ argument_list [ VAR ] ]
          )
          #| [ output_port ] VAR
          #    LPAREN LBRACE input_ports RBRACE RPAREN
  
negative.code:         typevar_item
          | TOKINTEGER | TOKBOOL | TOKSTRING | TOKREAL | TOKNAT | TOKACTION
  
      rule param_item:
          (   LPAREN param_item RPAREN
          |   ( [ TOKNUMERIC | TOKPARAMETER ] TOKTYPE VAR
              | formal_item
              | NUM
              | STR
              )
  