anchor.diff:  
   %% @private
   init([]) ->
  -    {ok, #state{}}.
  +    {ok, #state{dom_lang = dict:new()}}.
   
   %% @private
  -handle_call(_Request, _From, State) ->
  -    Reply = ok,
  +handle_call({add_dom, DomId, Lang}, _From, State) ->
  +    Dict = State#state.dom_lang,
  +    case dict:is_key(DomId, Dict) of
  +        true ->
  +            {reply, error, State};
  +        false ->
  +            NextState = State#state{dom_lang = dict:store(DomId, Lang, Dict)},
  +            {reply, ok, NextState}
  +    end;
  +handle_call({del_dom, DomId}, _From, State) ->
  +    NextState =
  +        State#state{dom_lang = dict:erase(DomId, State#state.dom_lang)},
  +    {reply, ok, NextState};
  +handle_call({dom_lang, DomId}, _From, State) ->
  +    Reply = dict:find(DomId, State#state.dom_lang),
       {reply, Reply, State}.
   
   %% @private
  
positive.code: -behaviour(gen_server).
  
  %% API
  -export([start_link/0]).
  
  %% gen_server callbacks
  
negative.code: 
  -define(SERVER, ?MODULE).
  
  -record(state, {dom_lang}).
  
  %%----------------------------------------------------------------------------
  %% API
  %%----------------------------------------------------------------------------
  
  %% @doc Adds a domain.
  add_dom(DomId, Lang) ->
      gen_server:call(?SERVER, {add_dom, DomId, Lang}).
      
  %% @doc Adds a domain.
  del_dom(DomId) ->
      gen_server:call(?SERVER, {del_dom, DomId}).
      
  %% @doc Returns the language of a domain.
  dom_lang(DomId) ->
      gen_server:call(?SERVER, {dom_lang, DomId}).
  
  start_link() ->
      gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
  