anchor.diff:      [{?B2L(K), ?B2L(V)} || {K, V} <- BodyQs].
   
   request_body(ReqKey) ->
  -    request_body(ReqKey, string).
  +    request_body(ReqKey, binary).
   
   request_body(ReqKey, string) ->
       ?B2L(request_body(ReqKey, binary));
  
positive.code:     {RequestCache, Req} = get_key(ReqKey),
      case cowboy_req:stream_body(Req) of
          {ok, Data, NewReq} ->
  	    put_key(ReqKey, RequestCache#request_cache{request = NewReq}),
              Data;
          {done, NewReq} ->
  	    put_key(ReqKey, RequestCache#request_cache{request = NewReq}),
              <<"">>;
          {error, Reason} ->
              exit({error, Reason}) %% exit(normal) instead?
  
negative.code:     {RequestCache, Req} = get_key(ReqKey),
       %% We cache the body here because we can't request the body twice in cowboy or it'll crash
      {Body, NewReq} =
      case RequestCache#request_cache.body of
          not_loaded ->
              {ok, B, R} = cowboy_req:body(infinity, Req),
              {B, R};
          B -> {B, Req}
      end,
      put_key(ReqKey, RequestCache#request_cache{body = Body, request = NewReq}),
      Body.
  
  