anchor.diff:          false ->
               erlang:monitor(process, Pid),
   
  +
               %% For all V in Src, append Pid -> {V, Dst}
               %% in the process map.
               ProcessMap = lists:foldl(fun(El, D) ->
  
positive.code: %%
  %%      We monitor all edge Pids to know when they die or get restarted.
  %%
  handle_call({add_edges, Src, Dst, Pid, ReadFuns, TransFun, {Dst, WriteFun}}, _From, State) ->
  
      Dag      = State#state.dag,
      Pm       = State#state.process_map,
  
negative.code: 
      St = case CtStep of
          ?CONTRACTION_INTERVAL ->
                %% @todo Contraction step
                %%
                %%       How do we prevent a contraction from happening
                %%       as part of the edges created from another contraction?
                %%
                %%       If the dag starts a new contraction step as part of
                %%       another contraction, multiple path contractions may
                %%       happen, leading to multiple edges between vertices.
                %%
                %%       Either make contractions manual, or measure the
                %%       probability of a vertex to be updated if it has been
                %%       changed recently. Paths that contain "active" vertices
                %%       won't be contracted, as they are determined to be changed
                %%       often. Only contract paths that are relatively stable
                %%       (haven't changed in X ticks).
                %%
                %%       Another option is to implement a special function to
                %%       create edges in the graph that don't count towards
                %%       the contraction step count.
                %%
                St0#state{contraction_step=0};
          _ ->
              St0#state{contraction_step = CtStep + 1}
      end,
      {R, St#state{optimized_map = NewOptMap, pid_table = NewPidTable}}.
  
  
  is_graph_error({error, _}) ->
      true;
  