anchor.diff:  %% @private
   cast(Msg) -> gen_server:cast(?MODULE, Msg).
   
  --spec now_diff(erlang:timestamp(), erlang:timestamp()) -> non_neg_integer().
  -%% @private Get the difference in milliseconds between two timestamps
  -now_diff(T1, T2) -> trunc(timer:now_diff(T1, T2) / 1000).
  +-spec call(message()) -> ok.
  +%% @private
  +call(Msg) -> gen_server:call(?MODULE, Msg).
  +
  +-spec elapsed(erlang:timestamp()) -> non_neg_integer().
  +%% @private Get the difference in milliseconds now and a timestamp
  +elapsed(T) -> trunc(timer:now_diff(now(), T) / 1000).
   
   -spec stat(#s{}, counter | timer, string() | atom(), pos_integer(), float()) -> ok.
   %% @private Create a statistic entry with a sample rate
  
positive.code:                  normal -> disconnect.soft;
                   _Other -> disconnect.hard
               end,
      stat(State, timer, duration, now_diff(now(), Started)),
      stat(State, counter, Status, 1),
      {noreply, State}.
  
  
negative.code: %% API
  -export([start_link/2,
           connect/1,
           connected/0,
           counter/2]).
  
  %% Callbacks
  