anchor.diff:              sig_from_headers(GetHeader, I+1, [Part|Acc])
       end.
   
  +%-spec time_in_bounds(undefined | string() | binary(), pos_integer()) -> boolean().
   time_in_bounds(undefined, _Skew) ->
       false;
   time_in_bounds(ReqTime, Skew) ->
       Now = calendar:now_to_universal_time(erlang:now()),
       time_in_bounds(time_iso8601_to_date_time(ReqTime), Now, Skew).
   
  +-spec time_in_bounds(erlang_time(), erlang_time(), pos_integer() ) -> boolean().
   time_in_bounds(T1, T2, Skew) ->
       S1 = calendar:datetime_to_gregorian_seconds(T1),
       S2 = calendar:datetime_to_gregorian_seconds(T2),
  
positive.code: -include_lib("public_key/include/public_key.hrl").
  
  -type calendar_time() :: { non_neg_integer(),  non_neg_integer(),  non_neg_integer() }.
  -type calendar_date() :: { non_neg_integer(),  non_neg_integer(),  non_neg_integer() }.
  
  -type http_body() :: binary() | pid().
  -type user_id() :: binary().
  
negative.code: 
  
  
  %% @doc Converts Erlang time-tuple to iso8601 formatted date string.
  %%
  %% Example output looks like <<"2003-12-13T18:30:02Z">>
  -spec(time_iso8601(erlang_time() | 'now') -> binary()).
  time_iso8601(now) ->
      time_iso8601(calendar:universal_time());
  time_iso8601({{Year, Month, Day}, {Hour, Min, Sec}}) ->
  