anchor.diff:      ets:new(Name, [public, named_table, set]),
       {ok, TRef} = timer:apply_interval(Interval, ?MODULE, reset, [Name]),
       ets:insert(Name, [
  +        {version, 0},
           {limit, Limit},
  +        {fair, Limit},
           {tokens, 0},
           {timer, TRef}]),
       ok.
  
positive.code: %% @private Reset the token counter of a flow.
  -spec reset(atom()) -> true.
  reset(Name) ->
      ets:insert(Name, {tokens, 0}).
  
  
  
  %% @doc Aquire a slot to send or receive N tokens.
  
negative.code: %% multiple intervals.
  
  %% exported functions
  -export([new/3, join/1, wait/2, take/2]).
  
  %% private functions
  -export([reset/1]).
  