anchor.diff:          bind (if not (istrivial goal.context (U.mk_squash pre))
                 then add_irrelevant_goal goal.context pre goal.opts
                 else ret ()) (fun _ ->
  -        add_goals sub_goals))))))
  +        add_goals sub_goals)))))))
   
   let destruct_eq' (typ : typ) : option<(term * term)> =
       match U.destruct_typ_as_formula typ with
  
positive.code:         with NoUnif -> run t' ps)
  
  let apply (uopt:bool) (tm:term) : tac<unit> =
      bind cur_goal (fun goal ->
      let tm, typ, guard = goal.context.type_of goal.context tm in
      // Focus helps keep the goal order
  
negative.code:                     (N.term_to_string goal.context (bnorm goal.context typ))
                      (N.term_to_string goal.context goal.goal_ty)))
  
  let exact (tm:term) : tac<unit> =
      bind (mlog (fun () -> BU.print1 "exact: tm = %s\n" (Print.term_to_string tm))) (fun _ ->
      focus (__exact tm)
      )
  
  let exact_lemma (t:term) : tac<unit> =
      bind cur_goal (fun goal ->
  