anchor.diff:      %% (where {Id, Read} = ReadFuns s.t. Id = V)
       Status = lists:map(fun(V) ->
           Read = lists:nth(1, [ReadF || {Id, ReadF} <- ReadFuns, Id =:= V]),
  -        digraph:add_edge(Dag, V, Dst, #edge_label{pid=Pid,
  -                                                  read=Read,
  -                                                  transform=TransFun,
  -                                                  write=WriteFun})
  +        EdgeResult = digraph:add_edge(Dag, V, Dst, #edge_label{pid=Pid,
  +                                                               read=Read,
  +                                                               transform=TransFun,
  +                                                               write=WriteFun}),
  +
  +        %% Determine depth.
  +        Depth = depth(Dag, Dst, 0),
  +        lager:info("Depth of ~p is ~p", [V, Depth]),
  +
  +        %% Re-create destination vertex with new depth.
  +        VertexResult = digraph:add_vertex(Dag, Dst, Depth),
  +        lager:info("Vertex: ~p re-created with depth ~p; result: ~p",
  +                   [Dst, Depth, VertexResult]),
  +        lager:info("Vertex: ~p edges: ~p",
  +                   [Dst, digraph:edges(Dag, Dst)]),
  +
  +        EdgeResult
       end, Src),
   
       {R, St} = case lists:any(fun is_graph_error/1, Status) of
  
positive.code: 
  v_str(V) when is_pid(V)->
      pid_to_list(V).
  
negative.code:     {reply, {ok, Edges}, State};
  
  handle_call({add_vertices, Vs}, _From, #state{dag=Dag}=State) ->
      [digraph:add_vertex(Dag, V, 0) || V <- Vs],
      {reply, ok, State};
  
  handle_call(to_dot, _From, #state{dag=Dag}=State) ->
  