anchor.diff:                permanent, 1000, worker, [sync_server]},
         case supervisor:start_child(sync_server_sup, Spec) of
           already_present -> supervisor:restart_child(sync_server_sup, Name);
  -        _ -> ok
  +        _               -> ok
         end
       end, NewParts).
   
  
positive.code: -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
           terminate/2, code_change/3]).
  
  -record(state, {running,diffs,partitions=[],parts_for_node=[]}).
  
  -include_lib("eunit/include/eunit.hrl").
  
  
negative.code: %% API
  
  start_link() ->
    gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
  
  stop() ->
    gen_server:cast(?MODULE, stop).
  
  load(Nodes, Partitions, PartsForNode) ->
    gen_server:call(?MODULE, {load, Nodes, Partitions, PartsForNode},
                    infinity).
  
  sync(Part, Master, NodeA, NodeB, DiffSize) ->
    gen_server:cast(?MODULE, {sync, Part, Master, NodeA, NodeB, DiffSize}).
  
  done(Part) ->
    gen_server:cast(?MODULE, {done, Part}).
  
  running() ->
    gen_server:call(?MODULE, running).
  
  running(Node) ->
    gen_server:call({?MODULE, Node}, running).
  
  diffs() ->
    gen_server:call(?MODULE, diffs).
  
  diffs(Node) ->
    gen_server:call({?MODULE, Node}, diffs).
  
  loaded() ->
    gen_server:call(?MODULE, loaded).
  
  %% gen_server callbacks
  
  init([]) -> {ok, #state{running=[],diffs=[]}}.
  terminate(_Reason, _State)          -> ok.
  code_change(_OldVsn, State, _Extra) -> {ok, State}.
  handle_info(_Info, State)           -> {noreply, State}.
  
  handle_call(loaded, _From, State) ->
    {reply, sync_server_sup:sync_servers(), State};
  