anchor.diff:  
   -spec do_get_num_cores(state()) -> {ok, cores()}.
   do_get_num_cores(#state{nodes = Nodes}) ->
  -    {ok, lists:sum([N#dnode.slots || N <- gb_trees:values(Nodes)])}.
  +    {ok, lists:sum([Slots || #dnode{slots = Slots} <- gb_trees:values(Nodes)])}.
   
   -spec do_kill_job(jobname()) -> ok.
   do_kill_job(JobName) ->
  
positive.code:     catch gen_server:call(scheduler, {new_job, JobName, JobCoord}).
  
  -spec do_new_task(task(), state()) -> ok | failed.
  do_new_task(Task, S) ->
      NodeStats = [case gb_trees:lookup(Node, S#state.nodes) of
                       none -> {false, Input};
                       {value, N} -> {N#dnode.num_running, Input}
                   end || {_Url, Node} = Input <- Task#task.input],
  
negative.code: 
  -spec do_get_nodeinfo(state()) -> {ok, [nodeinfo()]}.
  do_get_nodeinfo(#state{nodes = Nodes}) ->
      Info = [#nodeinfo{name = Host,
                        slots = Slots,
                        num_running = NumRunning,
                        stats_ok = StatsOk,
                        stats_failed = StatsFailed,
                        stats_crashed = StatsCrashed,
                        connected = ConnectionStatus =:= up,
                        blacklisted = Blacklisted}
              || #dnode{host = Host,
                        slots = Slots,
                        num_running = NumRunning,
                        stats_ok = StatsOk,
                        stats_failed = StatsFailed,
                        stats_crashed = StatsCrashed,
                        connection_status = ConnectionStatus,
                        manual_blacklist = Blacklisted} <- gb_trees:values(Nodes)],
      {ok, Info}.
  
  -spec do_get_purged(state()) -> {{ok, [binary()]}, state()}.
  