anchor.diff:  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
   -spec uniform_key_list([{Interval, ToAdd}], Acc::Result, OutputType) -> Result when
  -    is_subtype(Interval,   intervals:interval()),
  +    is_subtype(Interval,   intervals:continuous_interval()),
       is_subtype(ToAdd,      non_neg_integer()),
       is_subtype(OutputType, list_key_val | list_key),
       is_subtype(Result,     [result()]).
  
positive.code: 
  % @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()].
  get_db(I, Count, Distribution) ->
      get_db(I, Count, Distribution, []).
  
  -spec get_db(intervals:interval(), non_neg_integer(), distribution(), [option()]) -> [result()].
  get_db(Interval, ItemCount, Distribution, Options) ->
      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.
  
negative.code: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec non_uniform_key_list(Interval, Step::Int, ToAdd::Int, Fun, Acc::Result, OutputType) -> Result when
      is_subtype(Interval,    intervals:continuous_interval()),
      is_subtype(Int,         pos_integer()),
      is_subtype(Fun,         random_bias:distribution_fun()),
      is_subtype(OutputType,  list_key_val | list_key),
  