anchor.diff:  	 true -> io_lib:write_string(atom_to_list(X), $'); % stupid emacs '
   	 false -> io_lib:format("~w", [X])
          end || X <- set_to_list(Set)],
  -  sequence(L, [], " | ").
  +  string:join(L, " | ").
   
   set_min([H|_]) -> H.
   
  
positive.code: t_form_to_string({type, _L, timeout, []}) -> "timeout()";
  t_form_to_string({type, _L, tuple, any}) -> "tuple()";
  t_form_to_string({type, _L, tuple, Args}) ->
    "{" ++ sequence(t_form_to_string_list(Args), ",") ++ "}";
  t_form_to_string({type, _L, union, Args}) ->
    sequence(t_form_to_string_list(Args), " | ");
  t_form_to_string({type, _L, Name, []} = T) ->
    try t_to_string(t_from_form(T))
    catch throw:{error, _} -> atom_to_list(Name) ++ "()"
  
negative.code: 
  record_to_string(Tag, [_|Fields], FieldNames, RecDict) ->
    FieldStrings = record_fields_to_string(Fields, FieldNames, RecDict, []),
    "#" ++ atom_to_list(Tag) ++ "{" ++ string:join(FieldStrings, ",") ++ "}".
  
  record_fields_to_string([F|Fs], [{FName, _DefType}|FDefs], RecDict, Acc) ->
    NewAcc =
  