anchor.diff:  			{ok, Session}
   	end.
   
  +%% @doc Remove a session from the ets.
  +-spec destroy (Id :: binary()) -> 'ok'.
   destroy(Id) ->
   	ets:delete(?MODULE, Id).
   
  +%% @doc Extracts the id from a `session()'.
  +-spec get_id(Session :: session()) -> binary().
   get_id({Id, _, _, _}) -> Id.
   
  +%% @doc Extracts the user proplist from a `session()'.
  +-spec get_user(Session :: session()) -> user_data().
   get_user({_, User, _, _}) -> User.
   
  +%% @doc Sets the user of a session, overwriting an existing one.
  +-spec set_user(User :: user_data(), Session :: session()) ->
  +	{'ok', session()}.
   set_user(User, {Id, undefined, Values, _}) ->
   	Session = {Id, User, Values, calendar:local_time()},
   	ets:insert(?MODULE, Session),
  
positive.code: %% Api
  %% =================================================================
  
  start_link() -> start_link([]).
  
  start_link(Opts) ->
  	gen_server:start_link({local, ?MODULE}, ?MODULE, Opts, []).
  
  get_or_create(Id) when is_list(Id) ->
  	get_or_create(list_to_binary(Id));
  
  
negative.code: %% handle_call
  %% =================================================================
  
  %% @hidden
  handle_call(_Msg, _From, State) ->
  	{reply, {error, unhandled}, State}.
  
  