anchor.diff:      let g_binders = Env.all_binders g.context |> Print.binders_to_string ", " in
       let w = bnorm g.context g.witness in
       let t = bnorm g.context g.goal_ty in
  -    Util.format3 "%s |- %s : %s" g_binders (N.term_to_string g.context w) (N.term_to_string g.context t)
  +    Util.format3 "%s |- %s : %s" g_binders (tts g.context w) (tts g.context t)
   
   let tacprint  (s:string)       = BU.print1 "TAC>> %s\n" s
   let tacprint1 (s:string) x     = BU.print1 "TAC>> %s\n" (BU.format1 s x)
  
positive.code:     if trysolve goal solution
      then dismiss
      else fail (BU.format3 "%s does not solve %s : %s"
                (N.term_to_string goal.context solution)
                (N.term_to_string goal.context goal.witness)
                (N.term_to_string goal.context goal.goal_ty))
  
  let dismiss_all : tac<unit> =
      bind get (fun p ->
  
negative.code:     let post = U.mk_app post [S.as_arg U.exp_unit] in
      if not (do_unify goal.context (U.mk_squash post) goal.goal_ty)
      then fail3 "Cannot instantiate lemma %s (with postcondition: %s) to match goal (%s)"
                              (tts goal.context tm)
                              (tts goal.context (U.mk_squash post))
                              (tts goal.context goal.goal_ty)
      else
          let solution = N.normalize [N.Beta] goal.context (S.mk_Tm_app tm uvs None goal.context.range) in
          bind (add_implicits implicits.implicits) (fun _ ->
  