anchor.diff:  -export_type([ring_generation/0]).
   
   %% Basic API
  --export([init/2, cleanup/0, get_assigned_node/1, get_routing_info/1, get_routing_info/2,
  -    get_all_nodes/0, get_all_nodes/1]).
  +-export([init/2, replicate_ring_to_nodes/1, cleanup/0,
  +    get_assigned_node/1, get_routing_info/1, get_routing_info/2,
  +    get_all_nodes/0, get_all_nodes/1, get_failed_nodes/0]).
   %% Changes of initialized ring
   -export([report_node_failure/1, report_node_recovery/1,
       set_nodes_assigned_per_label/1, get_nodes_assigned_per_label/0]).
  
positive.code:         false ->
              Ring = init_ring(Nodes, NodesAssignedPerLabel),
              ok = set_ring(Ring),
              ok = replicate_ring_to_nodes(Nodes, ?CURRENT_RING, Ring);
          _ ->
              ok
      end.
  
  -spec cleanup() -> ok.
  cleanup() ->
  
negative.code:             error(Error)
      end.
  
  get_failed_nodes() ->
      #ring{failed_nodes = FailedNodes} = get_ring(?CURRENT_RING),
      FailedNodes.
  
  %%%===================================================================
  %%% Changes of initialized ring
  %%%===================================================================
  