SemiGroup instance for QueryString?
The use case is to support conditional or iterative building of queries, for instance, appending an AND ... clause to a WHERE ... clause.
Maybe there is a better way that I haven't noticed.
Granted, not all concatenations of QueryStrings would be valid, but that is (I think) true of newly constructed QueryStrings as well, as they are not compile-time validated.