anchor.diff:  
   media_range_type(<< $/, R/bits >>, Acc, T) -> media_range_subtype(R, Acc, T, <<>>);
   %% Special clause for badly behaving user agents that send * instead of */*.
  -media_range_type(<< _, R/bits >>, Acc, <<"*">>) -> media_range_before_param(R, Acc, <<"*">>, <<"*">>, []);
  +media_range_type(<< $;, R/bits >>, Acc, <<"*">>) -> media_range_before_param(R, Acc, <<"*">>, <<"*">>, []);
   media_range_type(<< C, R/bits >>, Acc, T) when ?IS_TOKEN(C) ->
   	case C of
   		?INLINE_LOWERCASE(media_range_type, R, Acc, T)
  
positive.code: -ifdef(TEST).
  media_type_parameter() ->
  	frequency([
  		{90, {token(), oneof([token(), quoted_string()])}},
  		{10, {<<"charset">>, oneof([token(), quoted_string()])}}
  	]).
  
  media_type() ->
  	?LET({T, S, P},
  		{token(), token(), list(media_type_parameter())},
  		{T, S, P, iolist_to_binary([T, $/, S, [[$;, K, $=, V] || {K, V} <- P]])}
  	).
  
  prop_parse_content_type() ->
  
negative.code: parse_accept(<<"*/*">>) ->
  	[{{<<"*">>, <<"*">>, []}, 1000, []}];
  parse_accept(Accept) ->
  	media_range_list(Accept, []).
  
  media_range_list(<<>>, Acc) -> lists:reverse(Acc);
  media_range_list(<< $\s, R/bits >>, Acc) -> media_range_list(R, Acc);
  