anchor.diff:  %%% Internal functions
   %%%===================================================================
   
  --spec format_schedules([task()]) -> binary().
  -format_schedules(Tasks) ->
  -    lists:foldl(fun(X, Acc) -> Line = format_schedule(X),
  +-spec format_tasks([task()]) -> binary().
  +format_tasks(Tasks) ->
  +    lists:foldl(fun(X, Acc) -> Line = format_task(X),
                                  << Acc/binary, Line/binary >>
                   end, <<>>, Tasks). 
   
  --spec format_schedule(task()) -> binary().
  -format_schedule({TaskName, {Schedule, Detail}}) ->
  +-spec format_task(task()) -> binary().
  +format_task({TaskName, {Schedule, Detail}}) ->
       <<TaskName/binary, "\t\t", Schedule/binary, "\t\t", Detail/binary, "\n">>.
  
positive.code: 
  -record(state, {
            nodes = dict:new() :: dict:dict(node(), node_status()),
            tasks = dict:new() :: dict:dict(task_name(), {schedule(), detail()})
           }).
  
  -type task_name() :: binary().
  %% TODO: specifies the proprietary schedule time format.
  -type schedule() :: term().
  -type detail() :: binary().
  -type task() :: {task_name(), {schedule(), detail()}}.
  -type node_status() :: joined | lost | joinning | leaving.
  
  
negative.code: %% @end
  %%--------------------------------------------------------------------
  handle_cast(_Msg, State) ->
      {noreply, State}.
  
  %%--------------------------------------------------------------------
  