yesodweb/persistent — comment on commit e88300b42c489019131c3ae26333db218f6317b9
File: persistent/Database/Persist/Store.hs line 375
By snoyberg:

Even with that approach, we would need to have an extra PersistValue
constructor for JSON content. I think it makes sense to encode the
concept of JSON serialization in Persistent itself, I think it will be
useful for other DBs as well, especially simple key/value stores.

We can't use the Show workaround, and besides: it's *really* hacky.
There's no way to do an automatic packing either. I'm not horribly
opposed to the overlapping instance, I'm sure it'll work out fine.