Dictionary Validation

This is also probably not complete. More questions incoming...
You could possibly do it with a Prism from monocle, but you couldn't do it with scalaz or shapeless lenses. And I am not sure that it would be better. If you want to have a go, pull in monocle and have an experiment but it won't be trivial because you basically need to re-implement pattern matching on our data types.