Hmm, I wonder whether this explains part of why the core clj team hasn't wanted to put too much focus on improving error messages: http://blog.cognitect.com/blog/2016/5/23/introducing-clojurespec