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