anchor.diff:  -spec atom_to_string(atom()) -> string().
   
   atom_to_string(Atom) ->
  -  flat_format("~w", [Atom]).
  +  erl_types_flat_fmt:flat_format("~w", [Atom]).
   
   %%=============================================================================
   %% 
  
positive.code: t_form_to_string({ann_type, _L, [Var, Type]}) ->
    t_form_to_string(Var) ++ "::" ++ t_form_to_string(Type);
  t_form_to_string({paren_type, _L, [Type]}) ->
    flat_format("(~s)", [t_form_to_string(Type)]);
  t_form_to_string({remote_type, _L, [{atom, _, Mod}, {atom, _, Name}, Args]}) ->
    ArgString = "(" ++ string:join(t_form_to_string_list(Args), ",") ++ ")",
    flat_format("~w:~w", [Mod, Name]) ++ ArgString;
  t_form_to_string({type, _L, arity, []}) -> "arity()";
  t_form_to_string({type, _L, binary, []}) -> "binary()";
  t_form_to_string({type, _L, binary, [Base, Unit]} = Type) ->
  
negative.code: set_size(Set) ->
    ordsets:size(Set).
  
  set_to_string(F, Set) ->
    L = [case is_atom(X) of
  	 true -> F:text(io_lib:write_string(atom_to_list(X), $')); % stupid emacs '
  	 false -> F:flat_format("~w", [X])
         end || X <- set_to_list(Set)],
    F:join(L, F:text(" | ")).
  
  set_min([H|_]) -> H.
  
  set_max(Set) ->
    hd(lists:reverse(Set)).
  
  %%=============================================================================
  %% 
  