anchor.diff:      Index.
   
   -spec init_ring([node()], pos_integer()) -> ring().
  -init_ring([_] = Nodes, LabelAssociatedNodesCount) ->
  -    #ring{nodes_assigned_per_label = LabelAssociatedNodesCount, all_nodes = Nodes};
  -init_ring(Nodes, LabelAssociatedNodesCount) ->
  +init_ring([_] = Nodes, NodesAssignedPerLabel) ->
  +    #ring{nodes_assigned_per_label = NodesAssignedPerLabel, all_nodes = Nodes};
  +init_ring(Nodes, NodesAssignedPerLabel) ->
       NodeCount = length(Nodes),
       [Node0 | _] = Nodes,
       InitialCHash = chash:fresh(NodeCount, Node0),
  
positive.code: %%% Auxiliary functions for managing consistent hashing ring and mapping
  %%% terms (usually UUIDs) to nodes in the ring.
  %%% Most functions use record ring (stored in environment variable) that represents information about cluster.
  %%% It is assumed that particular number of nodes is associated with each label.
  %%% Ring record is an internal structure of the module - it can only be copied as indivisible whole between nodes.
  %%% @end
  %%%--------------------------------------------------------------------
  
negative.code: -record(ring, {
      chash :: chash:chash() | undefined,
      failed_nodes = [] :: [node()],
      nodes_assigned_per_label = 1 :: pos_integer(), % Number of nodes assigned to each label
      all_nodes :: [node()] % cached list of nodes to return it faster (it is also possible to get all nodes from chash)
  }).
  
  