anchor.diff:  %%                                  {error, invalid_path}.
   %% @end
   %%--------------------------------------------------------------------
  --spec new_session(binary(), binary()) -> {ok, binary()} |
  -                                         {error, invalid_user} |
  -                                         {error, invalid_path}.
  +-spec new_session(User, Path) -> {ok, SessionToken} |
  +                                 {error, invalid_user} |
  +                                 {error, invalid_path}
  +                                     when User :: binary(),
  +                                          Path :: binary(),
  +                                          SessionToken :: binary().
   new_session(User, Path) ->
       gen_server:call(?MODULE, {proc_req, new_session, {User, Path}}).
   
  
positive.code: %% @spec end_session() -> ok | {error, invalid_token}.
  %% @end
  %%--------------------------------------------------------------------
  -spec end_session(binary()) -> ok | {error, invalid_token}.
  end_session(SessionToken) ->
      gen_server:call(?MODULE, {proc_req, end_session, SessionToken}).
  
  
negative.code:             {error, Reason}
      end.
  
  -spec priv_generate_token(User, Path) -> {Token, Public, Secret}
                                               when User :: binary(),
                                                    Path :: binary(),
                                                    Token :: binary(),
                                                    Public :: binary(),
                                                    Secret :: binary().
  priv_generate_token(User, Path) ->
      Secret = enacl_p:randombytes(macaroon:suggested_secret_length()),
      Public = <<User/binary,Path/binary>>,
  