anchor.diff:  handle_call({add_edges, Src, Dst, Pid, ReadFuns, TransFun, {Dst, WriteFun}},
               _From, #state{dag=Dag, process_map=Pm}=State) ->
   
  -    %% Add vertices only if they are either sources or sinks. (See add_if)
  +    %% Add vertices only if they sources, sinks or sql vertices.
       %% All user-defined variables are tracked through the `declare` function.
  -    lists:foreach(fun(V) -> add_if_pid(Dag, V) end, Src),
  -    add_if_pid(Dag, Dst),
  +    lists:foreach(fun(V) -> add_extra_values(Dag, V) end, Src),
  +    add_extra_values(Dag, Dst),
   
       %% For all V in Src, make edge (V, Dst) with label {Pid, Read, Trans, Write}
       %% (where {Id, Read} = ReadFuns s.t. Id = V)
  
positive.code:         end
      end, digraph:out_edges(G, V1)).
  
  %% @doc Add a vertex only if it is a pid
  %%
  %%      We only add it if it isn't already present on the dag,
  %%      as adding the same vertex multiple times removes any
  %%      metadata (labels).
  %%
  -spec add_if_pid(digraph:graph(), pid()) -> ok.
  add_if_pid(Dag, Pid) when is_pid(Pid) ->
     case digraph:vertex(Dag, Pid) of
        false -> digraph:add_vertex(Dag, Pid);
        _ -> ok
     end;
  
  add_if_pid(_, _) ->
      ok.
  
  to_dot(Graph) ->
  
negative.code:     erlang:integer_to_list(erlang:phash2(Id));
  
  v_str(V) when is_pid(V)->
      pid_to_list(V);
  
  v_str(V) when is_binary(V) ->
      binary_to_list(V).
  