anchor.diff:  %%
   
   -spec drop(
  -    { Name :: binary(), any(), any() },
  +    { Name :: binary(), any(), any(), Path :: binary() },
       any()
     ) -> Req :: any().
   
   drop({Name, _Secret, _MaxAge}, Req) ->
  +  drop({Name, _Secret, _MaxAge, <<"/">>}, Req);
  +
  +drop({Name, _Secret, _MaxAge, Path}, Req) ->
     % write already expired session cookie
     cowboy_req:set_resp_cookie(Name, <<>>, [
         http_only,
  -      {max_age, 0}
  +      {max_age, 0},
  +      {path, Path}
       ], Req).
   
   %%
  
positive.code: %%
  
  -spec get(
      { Name :: binary(), Secret :: binary(), MaxAge :: non_neg_integer() },
      any()
    ) -> { Session :: any(), Cookie :: binary(), Req :: any() }.
  
  get({Name, Secret, MaxAge}, Req) ->
    % get cookie
    {Cookie, Req2} = cowboy_req:cookie(Name, Req),
    % deserialize cookie into session
  
negative.code: 
  -spec set(
      Session :: any(),
      { Name :: binary(), Secret :: binary(),
        MaxAge :: non_neg_integer(), Path :: binary() },
      Req :: any()
    ) -> { Cookie :: binary(), Req :: any() }.
  
  set(Session, {Name, Secret, MaxAge}, Req) ->
    set(Session, {Name, Secret, MaxAge, <<"/">>}, Req);
  
  set(Session, {Name, Secret, MaxAge, Path}, Req) ->
    % serialize session
    Cookie = encode_base64(Session, Secret),
    % N.B. base64 may end with equal signs which are invalid for cookie value
    % so we always quote the value.
    Req2 = cowboy_req:set_resp_cookie(Name, << $", Cookie/binary, $" >>, [
        http_only,
        {max_age, MaxAge},
        {path, Path}
      ], Req),
    {Cookie, Req2}.
  
  