Types which can, and commonly are, converted to
Query are in this class.
You can use lists of simple key value pairs, with
ByteString (strict, or lazy:
String as the key/value types. You can also have the value
type lifted into a Maybe to support keys without values; and finally it is possible to put
each pair into a Maybe for key-value pairs that aren't always present.
Types which, in a Query-like key-value list, are used in the Key position.
Types which, in a Query-like key-value list, are used in the Value position.