deriveJSON now takes an Option record instead of a single function. It might be
nicer to define a function that takes the fieldLabelModifier function rather
than doing it inline everywhere but I didn't know where a good place to put that
would be.
* It uses slow String's instead of Text.
* It does not allow to encode infohash and peer ids properly.
* It does not provide API for query string parsing.
So it is better to use http-types package.