anchor.diff:  
   nextatom
     : ID
  +  | 'this'
     | literal
     | LPAREN_NEW (rawseq | '_') tuple? ')'
     | LSQUARE_NEW ('as' type ':')? rawseq (',' rawseq)* ']'
  
positive.code:   ;
  
  typeargs
    : '[' type (',' type)* ']'
    ;
  
  typeparams
    : ('[' | LSQUARE_NEW) typeparam (',' typeparam)* ']'
    ;
  
  params
    : (param | '...') (',' (param | '...'))*
    ;
  
  typeparam
  
negative.code: 
  atom
    : ID
    | 'this'
    | literal
    | ('(' | LPAREN_NEW) (rawseq | '_') tuple? ')'
    | ('[' | LSQUARE_NEW) ('as' type ':')? rawseq (',' rawseq)* ']'
  