anchor.diff:    | literal
     | LPAREN_NEW (rawseq | '_') tuple? ')'
     | LSQUARE_NEW ('as' type ':')? rawseq (',' rawseq)* ']'
  -  | 'object' ('is' types)? members 'end'
  +  | 'object' ('is' type)? members 'end'
     | 'lambda' typeparams? ('(' | LPAREN_NEW) params? ')' (':' type)? '?'? '=>' rawseq 'end'
     | '@' (ID | STRING) typeargs? ('(' | LPAREN_NEW) positional? named? ')' '?'?
     ;
  
positive.code:   | literal
    | ('(' | LPAREN_NEW) (rawseq | '_') tuple? ')'
    | ('[' | LSQUARE_NEW) ('as' type ':')? rawseq (',' rawseq)* ']'
    | 'object' ('is' types)? members 'end'
    | 'lambda' typeparams? ('(' | LPAREN_NEW) params? ')' (':' type)? '?'? '=>' rawseq 'end'
    | '@' (ID | STRING) typeargs? ('(' | LPAREN_NEW) positional? named? ')' '?'?
    ;
  
negative.code:   : ID ':' type ('=' infix)?
    ;
  
  antlr_0
    : binop
    | 'as' type
  