anchor.diff:          bind (add_goals [g1; g2]) (fun _ ->
           ret (S.bv_to_name v_p, S.bv_to_name v_q)))
       | _ ->
  -        fail (BU.format1 "Not a disjunction: %s" (Print.term_to_string typ)))
  +        fail1 "Not a disjunction: %s" (Print.term_to_string typ))
   
   // Should probably be moved somewhere else
   type order = | Lt | Eq | Gt
  
positive.code:         Failed (msg, ps)
      )
  
  let trytac (t : tac<'a>) : tac<option<'a>> =
      mk_tac (fun ps ->
              let tx = UF.new_transaction () in
  
negative.code:         match (U.un_uinst hd).n, args with
          | Tm_fvar fv, [_; (l, _); (r, _)] when S.fv_eq_lid fv SC.eq2_lid ->
              if not (TcRel.teq_nosmt g.context l r)
              then fail2 "trefl: not a trivial equality (%s vs %s)" (Print.term_to_string l) (Print.term_to_string r)
              else
              begin
                  let t_unit = FStar.TypeChecker.Common.t_unit in
  