anchor.diff:  
   atomtype
     : 'this'
  -  | 'box'
  +  | cap
     | ('(' | LPAREN_NEW) (infixtype | '_') tupletype? ')'
     | nominal
     ;
  
positive.code: 
  nextatom
    : ID
    | literal
    | LPAREN_NEW (rawseq | '_') tuple? ')'
    | LSQUARE_NEW ('as' type ':')? rawseq (',' rawseq)* ']'
  
negative.code: 
  atom
    : ID
    | 'this'
    | literal
    | ('(' | LPAREN_NEW) (rawseq | '_') tuple? ')'
    | ('[' | LSQUARE_NEW) ('as' type ':')? rawseq (',' rawseq)* ']'
  