anchor.diff:  -type failure_dest()    :: all | [failure_quadrant()]. 
   -type db_type()         :: wiki | random.
   -type db_parameter()    :: {ftype, failure_type()} |
  -                           {fprob, 0..100} |                                %failure probability
  -                           {fdest, failure_dest()} |                        %quadrants in which failures are inserted / if missing all is assumed
  -                           {fdistribution, db_generator:distribution()} |   %distribution of failures
  -                           {distribution, db_generator:distribution()}.     %data distribution in every quadrant
  +                           {fprob, 0..100} |                  %failure probability
  +                           {fdest, failure_dest()} |          %quadrants in which failures are inserted / if missing all is assumed
  +                           {fdistribution, distribution()} |  %distribution of failures
  +                           {distribution, db_distribution()}. %data distribution in every quadrant
   -type db_status() :: {Entries   :: non_neg_integer(),
                         Existing  :: non_neg_integer(),
                         Missing   :: non_neg_integer(),
  
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
  