anchor.diff:  -define(MAX_RATE_PERIOD, 20).
   
   %% ====================================================================
  -% @doc Convenience initializer for init/1
  -% @end
  +
  +%% @doc Convenience initializer for {@link init/1}
  +%% @end
   init() -> init(?RATE_FUDGE).
   
  -% @doc Initialize the rate tuple.
  -%    Takes a single integer, fudge, which is the fudge factor used to start up.
  -%    It fakes the startup of the rate calculation.
  -% @end
  +%% @doc Initialize the rate tuple.
  +%% <p>Takes a single integer, fudge, which is the fudge factor used to start up.
  +%% It fakes the startup of the rate calculation.</p>
  +%% @end
   -spec init(integer()) -> #peer_rate{}.
   init(Fudge) ->
       T = now_secs(),
  
positive.code: eta(unknown, _DownloadRate) ->
      unknown.
  
  format_eta(Left, DownloadRate) ->
      case eta(Left, DownloadRate) of
  	{DaysLeft, {HoursLeft, MinutesLeft, SecondsLeft}} ->
  
negative.code:                          rate_since = lists:max([RateSince, T - ?MAX_RATE_PERIOD])}
      end.
  
  %% @doc Calculate estimated time of arrival.
  %% @end
  -type eta() :: {integer(), {integer(), integer(), integer()}}.
  -spec eta(integer(), float()) -> eta() | unknown.
  eta(_Left, DR) when DR == 0 ->
  