anchor.diff:    UFailed (Thunk.mkv s)
   
   let ufailed_thunk (s: unit -> string) : univ_eq_sol =
  -  UFailed (Thunk.mk s)
  +  UFailed (mklstr s)
   
   let rec really_solve_universe_eq pid_orig wl u1 u2 =
       let u1 = N.normalize_universe wl.tcenv u1 in
  
positive.code:     Failed (prob, reason)
  
  let giveup_lit env (reason : string) prob =
      giveup env (Thunk.mk (fun () -> reason)) prob
  
  (* ------------------------------------------------*)
  (* </worklist ops>                                 *)
  
negative.code:         in
          match quasi_pattern env lhs with
          | None ->
             let msg = mklstr (fun () ->
                          BU.format1 "first_order heuristic cannot solve %s; lhs not a quasi-pattern"
                            (prob_to_string env orig)) in
             giveup_or_defer env orig wl msg
  