req package:fn

The parts of the path, when split on /, and the query.
Specify the way that Fn can get the FnRequest out of your context. The easiest way to instantiate this is to use the lens, but if you don't want to use lenses, define getRequest and setRequest. Note that requestLens is defined in terms of getRequest and setRequest and vice-versa, so you need to define _one_ of these.
A normal WAI Request and the parsed post body (if present). We can only parse the body once, so we need to have our request (which we pass around) to be able to have the parsed body.
A default request, which is a WAI defaultRequest and a place for an MVar where post info will be placed (if you parse the post body). Warning: If you try to parse the post body (with !=>) without replacing the Nothing placeholder with an actual MVar, it will blow up!