Type classes, pickling combinators, and GHC.Generics implementations for Query Strings