anchor.diff:                    let c, g =
                       let lc = maybe_return eff_last c_last in
                       let c, g = TcComm.lcomp_comp lc in
  -                    c, TcComm.weaken_guard_formula g (U.mk_conj g_last neg_last) in
  +                    c, TcComm.weaken_guard_formula g (U.mk_conj (U.b2t g_last) neg_last) in
   
                     lcases,
                     neg_branch_conds,
  
positive.code:               lcases
                |> List.map (fun (g, _, _, _) -> g)
                |> List.fold_left (fun (conds, acc) g ->
                    let cond = U.mk_conj acc (U.mk_neg g) in
                    (conds@[cond]), cond) ([U.t_true], U.t_true)
                |> fst
                |> (fun l -> List.splitAt (List.length l - 1) l)  //the length of the list is at least 1
  
negative.code:   let md     = Env.get_effect_decl env C.effect_PURE_lid in
    mk_comp md u t wp []
  
  (*
   * The formula in lcases is the individual branch guard, a boolean
   *)
  let bind_cases env0 (res_t:typ)
    (lcases:list<(formula * lident * list<cflag> * (bool -> lcomp))>)
    (scrutinee:bv) : lcomp =
  