anchor.diff:  -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 distribution()    :: random |
  +                           uniform |
  +                           {non_uniform, random_bias:distribution_fun()}.
  +-type db_distribution() :: uniform |
  +                           {non_uniform, random_bias:distribution_fun()}.
   -type result() :: ?RT:key() | 
                     {?RT:key(), db_dht:value()}.
   -type option() :: {output, list_key_val | list_key}.
  
positive.code:     {_, LKey, RKey, _} = intervals:get_bounds(I),
      Add = erlang:round(V * ToAdd),
      NAcc = if Add >= 1 ->
                    StepSize = erlang:round((RKey - LKey) / ToAdd),
                    SubI = intervals:new('(',
                                         LKey + ((Step - 1) * StepSize),
                                         LKey + (Step * StepSize),
                                         ']'),
                    uniform_key_list([{SubI, Add}], Acc, AccType);
                true -> Acc
  
negative.code: -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, 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(),
  