anchor.diff:              []
       end.
   
  -inherits(File)
  -  when is_atom(File) ->
  -    inherits(atom_to_list(File));
  -
  -inherits(File) ->
  -    {Name, _} = make_name(File),
  -    {inherits, File ++ "/" ++ Name}.
  -
  -make_name(File) ->
  -    {R, [$_|N]} = lists:splitwith(fun(C) -> C /= $_ end, File),
  +inherits(Dict)
  +  when is_atom(Dict) ->
  +    inherits(atom_to_list(Dict));
  +
  +inherits(Dict) ->
  +    {Name, _} = make_name(Dict),
  +    {Dict, Name}.
  +
  +make_name(Dict) ->
  +    {R, [$_|N]} = lists:splitwith(fun(C) -> C /= $_ end, Dict),
       {string:join(["diameter_gen", N, R], "_"), "diameter_" ++ N}.
   
   %% ===========================================================================
  
positive.code:             throw({compile, No})
      end.
  
  opts(Dict) ->
      case lists:keyfind(list_to_atom(Dict), 1, ?INHERITS) of
          {_, Is} ->
              lists:map(fun inherits/1, Is);
  
negative.code: dict(_Config) ->
      Dirs = [filename:join(H ++ ["examples", "dict"])
              || H <- [[code:lib_dir(diameter)], [here(), ".."]]],
      [] = [{F,D,RC} || {_,F} <- sort(find_files(Dirs, ".*\\.dia")),
                        D <- ?DICT0,
                        RC <- [make(F,D)],
                        RC /= ok].
  
  sort([{_,_} | _] = Files) ->
      lists:sort(fun({A,_},{B,_}) ->
  