anchor.diff:               let lbs, body = SS.close_let_rec [lb] body in
                let tm = mk (Tm_let ((true, lbs), body)) None goal.witness.pos in
                BU.print_string "calling teq_nosmt\n";
  -             let res = Rel.teq_nosmt goal.context goal.witness tm in
  +             let res = trysolve goal tm in
                if res
                then bind (replace_cur ({ goal with context = env';
                                                    goal_ty = bnorm env' (comp_to_typ c);
  
positive.code:         if Util.set_mem x fns_ty (* || Util.set_mem x fns_tm *)
          then fail "Cannot clear; variable appears in goal"
          else bind (new_uvar env' goal.goal_ty) (fun u ->
               if not (Rel.teq_nosmt goal.context goal.witness u)
               then fail "clear: unification failed"
               else let new_goal = {goal with context = env'; witness = bnorm env' u} in
                    bind dismiss (fun _ ->
  
negative.code:         else let env' = Env.push_binders goal.context [b] in
               let typ' = comp_to_typ c in
               bind (new_uvar env' typ') (fun u ->
               if trysolve goal (U.abs [b] u None)
               then bind (replace_cur ({ goal with context = env';
                                                   goal_ty = bnorm env' typ';
                                                   witness = bnorm env' u})) (fun _ ->
  