anchor.diff:      | proc_type
       | path
       | '_'
  -] { printf("ty\n"); }
       ;
   
   /// 8.1.3 Tuple types - handled in ty
  
positive.code:     | item_or_view_item
      | expr
      ;
  let : LET pat [ ':' ty ]? [ '=' expr ]? { printf("let\n"); } ;
  
  /// 7.2 Expressions
  expr : binops [ [ '=' | BINOPEQ ] expr ]? { printf("expr\n"); } ;
  bottom_expr
      : [ '(' [ ')' | expr [ ',' expr ]* ')' ]
      | /* UNSAFE */ block // ambiguity: UNSAFE could start "unsafe fn" in item_or_view_item
  //    | lambda_expr // ambiguity with the trailing expr
  //    | proc_decl expr // ambiguity with the trailing expr
  
negative.code: 
  // 8.1 Types
  ty
      : '(' [ ')' | ty [ ',' ty ]+ ')' ]
      | '~' ty
      | '*' MUT? ty
      | '[' ty fixed_vstore ']'
  