anchor.diff:      then Util.format2 "%s<%s>" (term_to_string t) (univs_to_string us)
       else term_to_string t
     | _ -> tag_of_term x
  -
  -and term_to_string t = term_to_string' t
  -//  Util.format2 "%s {%s}" (term_to_string' t) (Range.string_of_use_range t.pos)
   
   and  pat_to_string x = match x.v with
       | Pat_cons(l, pats) -> Util.format2 "(%s %s)" (fv_to_string l) (List.map (fun (x, b) -> let p = pat_to_string x in if b then "#"^p else p) pats |> String.concat " ")
  
positive.code: // VALS_HACK_HERE
  
  let sli (l:lident) : string =
     let s = 
         if (Options.print_real_names())
         then l.str
         else l.ident.idText in
      Util.format3 "%s@{def=%s;use=%s}" s 
          (Range.string_of_range (Ident.range_of_lid l))
          (Range.string_of_use_range (Ident.range_of_lid l))
  
  let lid_to_string (l:lid) = sli l
  
  
negative.code:    function in normalize.fs instead, since elaboration
     (higher-order unification) produces types containing lots of
     redexes that should first be reduced. *)
  let rec term_to_string x =
    let x = Subst.compress x in
    match x.n with
    | Tm_delayed _ ->   failwith "impossible"
  