anchor.diff:              let id = Ident.gen Range.dummyRange in
               let branch = mk_term (Const FStar.Const.Const_unit) Range.dummyRange Expr in
               let bv_pat = mk_pattern (PatVar (id, None)) (range_of_id id) in
  -            let bv_pat = mk_pattern (PatAscribed (bv_pat, (unit_ty, None))) (range_of_id id) in
  +            let bv_pat = mk_pattern (PatAscribed (bv_pat, (unit_ty (range_of_id id), None)))
  +                                    (range_of_id id) in
               bv_pat, branch
           in
           let body = mk_term (Match (main, [pat, None, branch])) main.range Expr in
  
positive.code: 
  let replace_unit_pattern p = match p.pat with
    | PatConst FStar.Const.Const_unit ->
      mk_pattern (PatAscribed (mk_pattern (PatWild None) p.prange, (unit_ty, None))) p.prange
    | _ -> p
  
  let rec destruct_app_pattern env is_top_level p = match p.pat with
  
negative.code:     | LetOpen(_, t) -> is_comp_type env t
      | _ -> false
  
  let unit_ty rng = mk_term (Name C.unit_lid) rng Type_level
  
  type env_t = Env.env
  type lenv_t = list<bv>
  