anchor.diff:    | Exp_app(e, args) ->
         if is_infix_prim_op e && List.length args = 2 then
           Util.format3 "(%s %s %s)" (List.nth args 0 |> arg_to_string) (e|> infix_prim_op_to_string) (List.nth args 1 |> arg_to_string)
  -      else if is_uni_prim_op e && List.length args = 1 then
  -        Util.format2 "(%s %s)" (e|> uni_prim_op_to_string) (List.nth args 0 |> arg_to_string)
  +      else if is_unary_prim_op e && List.length args = 1 then
  +        Util.format2 "(%s %s)" (e|> unary_prim_op_to_string) (List.nth args 0 |> arg_to_string)
         else Util.format2 "(%s %s)" (e|> exp_to_string) (args_to_string args)
     | Exp_match(e, pats) -> Util.format2 "(match %s with %s)" 
       (e |> exp_to_string) 
  
positive.code: let find_lid (x:lident) xs : string =
    snd (find (fun p -> lid_equals x (fst p)) xs)
  
  let infix_prim_op_to_string e = find_lid (get_lid e) infix_prim_ops
  
  let uni_prim_op_to_string e = find_lid (get_lid e) prim_uni_ops
  
  let rec sli (l:lident) : string = 
    if !Options.print_real_names
  
negative.code:   | Typ_const v -> sli v.v //Util.format2 "%s:%s" (sli v.v) (kind_to_string x.tk)
    | Typ_fun(binders, c) ->     Util.format2 "(%s -> %s)"  (binders_to_string " -> " binders) (comp_typ_to_string c)
    | Typ_refine(xt, f) ->       Util.format3 "%s:%s{%s}" (strBvd xt.v) (xt.sort |> typ_to_string) (f|> formula_to_string)
    | Typ_app(t, args) ->
        let args' = List.filter (fun a -> not (snd a)) args in (* drop implicit arguments for type operators *)
        if is_infix_type_op t && List.length args' = 2 then
          Util.format3 "(%s %s %s)" (List.nth args' 0 |> arg_to_string) (t |> infix_type_op_to_string) (List.nth args' 1 |> arg_to_string)
        else if is_unary_type_op t && List.length args' = 1 then
          Util.format2 "(%s %s)" (t|> unary_type_op_to_string) (List.nth args' 0 |> arg_to_string)
        else Util.format2 "(%s %s)"   (t |> typ_to_string) (args |> args_to_string)
    | Typ_lam(binders, t2) ->      Util.format2 "(fun %s => %s)" (binders_to_string " " binders) (t2|> typ_to_string)
    | Typ_ascribed(t, k) ->
      if !Options.print_real_names  
  