anchor.diff:      [_,_|R] = lists:reverse(string:tokens(P,"/")),
       lists:foldl(fun(X,Acc) -> Acc ++ [$/|X] end, "", lists:reverse(R)).
   
  -id2i(Id) ->
  -    case catch l2i(Id) of
  -	I when is_integer(I) -> I;
  -	{'EXIT', _} ->
  -	    hex2i(Id)
  -    end.
  -
  -hex2i("0x" ++ L) -> erlang:list_to_integer(L, 16).
  -
  -b2l(B) when is_binary(B) -> binary_to_list(B);
  -b2l(L) when is_list(L)   -> L.
  -
  -l2i(L) when is_list(L)    -> list_to_integer(L);
  -l2i(I) when is_integer(I) -> I.
  -
  -l2a(L) when is_list(L) -> list_to_atom(L);
  -l2a(A) when is_atom(A) -> A.
  -
  -%%% Replace all dashes with underscore characters.
  -d2u(L) when is_list(L) ->
  -    repl(L, $-, $_).
  -
  -%%% Replace all dots with underscore characters.
  -o2u(L) when is_list(L) ->
  -    repl(L, $., $_).
  -
  -repl(L,X,Y) when is_list(L) ->
  -    F = fun(Z) when Z == X -> Y;
  -	   (C) -> C
  -	end,
  -    lists:map(F,L).
  -
  
positive.code:          start/0,start_link/0,
           lookup/1
          ]).
  -export([
           load_tables/1,
           mk_dict/1,
           parse_dict/1,
           make/1
          ]).
  
  %% gen_server callbacks
  -export([
  
negative.code: 	    {error, load_table}
      end.
  
  priv_dir() ->
      dir(?MODULE) ++ "/priv".
  
  