anchor.diff:  
   % @doc This will generate a list of [ItemCount] keys with requested distribution 
   %      in the given interval.
  --spec get_db(intervals:interval(), non_neg_integer(), distribution()) -> [result()].
  +-spec get_db(intervals:continuous_interval(), non_neg_integer(), db_distribution()) -> [result()].
   get_db(I, Count, Distribution) ->
       get_db(I, Count, Distribution, []).
   
  --spec get_db(intervals:interval(), non_neg_integer(), distribution(), [option()]) -> [result()].
  +-spec get_db(intervals:continuous_interval(), non_neg_integer(), db_distribution(), [option()]) -> [result()].
   get_db(Interval, ItemCount, Distribution, Options) ->
  +    ?ASSERT(intervals:is_continuous(Interval)),
       OutputType = proplists:get_value(output, Options, list_key),
       case Distribution of
  -        random -> log:log(error, "random_data_distribution is not implemented");
           uniform -> uniform_key_list([{Interval, ItemCount}], [], OutputType);
           {non_uniform, Fun} -> non_uniform_key_list(Interval, 1, ItemCount, Fun, [], OutputType)
       end.
  
positive.code: -export_type([distribution/0, db_type/0, db_parameter/0, db_status/0, failure_type/0]).
  -endif.
  
  -type distribution() :: random |
                          uniform |
                          {non_uniform, random_bias:distribution_fun()}.
  -type result() :: ?RT:key() | 
                    {?RT:key(), db_dht:value()}.
  -type option() :: {output, list_key_val | list_key}.
  
negative.code:     {_, LKey, RKey, _} = intervals:get_bounds(I),
      Add = erlang:round(V * ToAdd),
      NAcc = if Add >= 1 ->
                    StepSize = (RKey - LKey) / ToAdd,
                    SubI = intervals:new('(',
                                         LKey + erlang:trunc((Step - 1) * StepSize),
                                         LKey + ?IIF((X = erlang:trunc(Step * StepSize)) >= ?PLUS_INFINITY, ?MINUS_INFINITY, X),
                                         ']'),
                    uniform_key_list([{SubI, Add}], Acc, AccType);
                true -> Acc
  