> In the Rack middleware in the chain, each piece of the middleware receives a
> hash which encapsulates the response/requests, and the middleware mutates
> this hash depending on the functionality it adds.
Could each middleware layer return the updated hash value? Racket has
functional hash tables alongside mutable ones.
http://docs.racket-lang.org/reference/hashtables.html#(def._((quote._~23~25kernel)._hash-set))