anchor.diff:          | (
                 (expression (COMMA expression)*
                 | "default"
  -              | VAR
  +              #| VAR
                 )
                 COLON (QUESTION SEMICOLON | function_body_statement)
             )*
  
positive.code:         "endaction" [ COLON VAR]
  
      rule Type_item_basic:
          ( "Bit#" | "Int#" | "Uint#" | "ComplexF#" | "Reg#" | "FIFO#" | "Maybe#" | "FixedPoint#" )
             LPAREN expression [ COMMA expression ] RPAREN
          | ("Vector#" | "Tuple2#" | "FixedPoint#")
             LPAREN expression (COMMA expression)* RPAREN
  
negative.code:         | expression [   ( declared_item ( COMMA declared_item )*
                           | ( EQUAL | LEQ | LARROW) assign_value
                           # following weird rules needed since "VAR VAR" is a valid expression!!
                                           ( COMMA declared_item )*
                           |               ( COMMA declared_item )+
                           )
                       ]
          ) SEMICOLON
  