anchor.diff:  is_whitespace($\n) -> true;
   is_whitespace(_) -> false.
   
  -%% @doc Check if a character is a seperator.
  +%% @doc Check if a character is a separator.
   -spec is_separator(char()) -> boolean().
   is_separator(C) when C < 32 -> true;
   is_separator($\s) -> true;
  
positive.code: is_separator($}) -> true;
  is_separator(_) -> false.
  
  %% @doc Check if a binary has an ASCII seperator character.
  -spec has_seperator(binary()) -> boolean().
  has_seperator(<<>>) ->
  	false;
  has_seperator(<<$/, Rest/binary>>) ->
  	has_seperator(Rest);
  has_seperator(<<C, Rest/binary>>) ->
  	case is_separator(C) of
  		true ->
  			true;
  		false ->
  			has_seperator(Rest)
  	end.
  
  %% @doc Convert to a binary and raise an error if quoting is required. Quoting
  %% is broken in different ways for different browsers. Its better to simply
  %% avoiding doing it at all.
  %% @end
  -spec quote(term()) -> binary().
  quote(V0) ->
  	V = any_to_binary(V0),
  	case has_seperator(V) of
  		true ->
  			erlang:error({cookie_quoting_required, V});
  		false ->
  			V
  	end.
  
  -spec add_seconds(integer(), calendar:datetime()) -> calendar:datetime().
  add_seconds(Secs, LocalTime) ->
  
negative.code: 	catch error:{cookie_quoting_required, <<":wq">>} -> ok
  	end,
  	?assertEqual(<<"foo">>,quote(foo)),
  	_ = try quote(<<"/test/slashes/">>)
  	catch error:{cookie_quoting_required, <<"/test/slashes/">>} -> ok
  	end,
  	ok.
  
  parse_cookie_test() ->
  