anchor.diff:  
   %% Internal functions
   
  +collect_status(Nodes) ->
  +    receive
  +        {heartbeat, Name, Status} ->
  +            Nodes1 = update_status(Name, Status, Nodes),
  +            collect_status(Nodes1)
  +    after 0 ->
  +            Nodes
  +    end.
  +
  +
   update_status(Name, Status, Dict) ->
       Node = [{last_heard, erlang:now()} | Status],
       dict:store(Name, Node, Dict).
  
positive.code:     heartbeat(node(), Status).
  
  heartbeat(Node, Status) ->
      gen_server:cast({global, ?MODULE}, {heartbeat, Node, Status}).
  
  get_nodes() ->
      try gen_server:call({global, ?MODULE}, get_nodes) of
  
negative.code: -module(ns_doctor).
  
  -define(STALE_TIME, 5000000). % 5 seconds in microseconds
  
  -include("ns_common.hrl").
  
  -behaviour(gen_server).
  -export([start_link/0]).
  