anchor.diff:  
   handle_call(get_process_map, _From, #state{process_map=PM}=State) ->
       {reply, {ok, dict:to_list(PM)}, State};
  +
  +handle_call(contract, _From, #state{dag=Dag}=State) ->
  +    lists:foreach(fun(P) ->
  +        contract(Dag, P)
  +    end, contraction_paths(Dag)),
  +    {reply, ok, State};
   
   %% @doc Check if linking the given vertices will introduce a cycle in the graph.
   %%
  
positive.code: maybe_unnecessary(G, V) ->
      digraph:in_degree(G, V) =:= 1.
  
  %%%===================================================================
  %%% .DOT export functions
  %%%===================================================================
  
negative.code: process_map() ->
      gen_server:call(?MODULE, get_process_map, infinity).
  
  contract() ->
      gen_server:call(?MODULE, contract, infinity).
  
  %%%===================================================================
  %%% gen_server callbacks
  %%%===================================================================
  