anchor.diff:                   {goal with witness=None;
                               goal_ty=a}) in
             bind dismiss (fun _ ->
  -          bind (add_goals new_goals) (fun _ ->
  -          show))
  +          add_goals new_goals)
           | _ ->
             fail "Cannot split this goal; expected a conjunction")
   
  
positive.code:     BU.print1 ">>>>>%s\n" msg;
      Failed(msg, p))
  
  let show = kernel_tac "show" (fun p -> debug p "debug"; Success((), p))
  ////////////////////////////////////////////////////////////////////
  (* Some TRUSTED internal utilities *)
  
  
negative.code:     : tac<'a>
      = kernel_tac "or_else" (fun p ->
  //        let tx = Unionfind.new_transaction () in
          match t1.tac_f p with
          | Failed _ ->
  //          Unionfind.rollback tx;
            t2.tac_f p
          | q -> q)
  
  