anchor.diff:        | Tm_uvar (uv, k) ->
           let ttm = Term.mk_Term_uvar (Unionfind.uvar_id uv) in
           let t_has_k, decls = encode_term_pred None k env ttm in //TODO: skip encoding this if it has already been encoded before
  -        let d = Term.Assume(t_has_k, Some "Uvar typing", Some (varops.fresh (Util.format1 "@uvar_typing_%s" (Util.string_of_int <| Unionfind.uvar_id uv)))) in
  +        let d = Term.Assume(t_has_k, Some "Uvar typing", Some (varops.mk_unique (Util.format1 "uvar_typing_%s" (Util.string_of_int <| Unionfind.uvar_id uv)))) in
           ttm, decls@[d]
   
         | Tm_app _ ->
  
positive.code:      new_fvar=new_fvar;
       fresh=fresh;
       string_const=string_const;
       next_id=next_id}
  
   let unmangle (x:bv) : bv = {x with ppname=Util.unmangle_field_name x.ppname}
  (* ---------------------------------------------------- *)
  
negative.code:                      | Some t -> t, []
                       | None ->
                          let cvar_sorts = List.map snd cvars in
                          let fsym = varops.mk_unique ("Tm_abs_" ^ (Util.digest_of_string tkey.hash)) in
                          let fdecl = Term.DeclFun(fsym, cvar_sorts, Term_sort, None) in
                          let f = Term.mkApp(fsym, List.map mkFreeV cvars) in
                          let app = mk_Apply f vars in
  