anchor.diff:  
   -spec cons(oauth1_credentials:id(tmp), oauth1_uri:t()) ->
       t().
  -cons({tmp, <<Token/binary>>}, Uri) ->
  +cons({tmp, <<TokenBin/binary>>}=Token, URI) ->
       #t
       { token = Token
  -    , uri   = Uri
  +    , uri   = oauth1_uri:add_query(URI, <<"oauth_token">>, TokenBin)
       }.
   
   -spec get_uri(t()) ->
  
positive.code: get_uri(#t{uri=URI}) ->
      URI.
  
  -spec set_token_and_verifier(t(), Token, Verifier) ->
      t()
      when Token    :: oauth1_credentials:id(tmp)
         , Verifier :: oauth1_verifier:t()
         .
  set_token_and_verifier( #t{uri=Uri1}=T
                        , {tmp, <<Token/binary>>}
                        , <<Verifier/binary>>
                        ) ->
      QueryParams =
          [ {<<"oauth_token">>    , Token}
          , {<<"oauth_verifier">> , Verifier}
          ],
      Uri2 = oauth1_uri:set_query(Uri1, QueryParams),
      T#t{uri=Uri2}.
  
  -spec store(t()) ->
      hope_result:t(ok, oauth1_storage:error()).
  store(#t{token = <<Token/binary>>, uri=Uri}) ->
      Key   = Token,
      Value = oauth1_uri:to_bin(Uri),
      oauth1_storage:put(?STORAGE_BUCKET_NAME, Key, Value).
  
negative.code: -spec fetch(binary()) ->
      hope_result:t(t(), oauth1_storage:error()).
  fetch(<<Token/binary>>) ->
      case oauth1_storage:get(?STORAGE_BUCKET_NAME, Token)
      of  {error, _}=Error ->
              Error
      ;   {ok, UriBin} ->
              {ok, Uri} = oauth1_uri:of_bin(UriBin),
              T = #t
                  { token = {tmp, Token}
                  , uri   = Uri
                  },
              {ok, T}
  