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