anchor.diff:        | Some b ->
           let env, bv = Env.push_bv env b in
           env, S.mk_binder bv in
  -    let asc = snd asc in
  -    let asc, aq = desugar_ascription env_asc asc None in
  +    let asc, aq = desugar_ascription env_asc asc_tc None asc_use_eq in
       //if scrutinee is a name, it may appear in the ascription
       //  substitute it with the (new or annotated) binder
       let asc =
  
positive.code:       let brs, aqs = List.map desugar_branch branches |> List.unzip |> (fun (x, y) -> (List.flatten x, y)) in
        mk <| Tm_match(e, asc_opt, brs, None), join_aqs (aq::aq0::aqs)
  
      | Ascribed(e, t, tac_opt) ->
        let asc, aq0 = desugar_ascription env t tac_opt in
        let e, aq = desugar_term_aq env e in
        mk <| Tm_ascribed(e, asc, None), aq0@aq
  
  
negative.code:             mk_term (Ascribed (
                  mkApp rel [(xt, Nothing); (yt, Nothing)] rel.range,
                  mk_term (Name (Ident.lid_of_str "Type0")) rel.range Expr,
                  None, false)) rel.range Expr)) rel.range Expr
        in
        let rel = eta_and_annot rel in
  
  