@alexmiller Thanks for the excellent, detailed analysis.
My assumption is that specs will be the foundation for better error messages. But we haven’t been able to really confirm this since most of core remains un-specced. It may be true that spec errors (or libraries that build upon spec like Expound) still fail to generate good errors in common cases and more changes or features are necessary.
These specs are especially important for beginners since they won’t know how to spec their own functions initially. A larger set of specs would make a REPL like https://gist.github.com/bhb/2686b023d074ac052dbc21f12f324f18 much more useful.
There have been a few 3rd-party attempts to build a set of specs for core, but as you’ve noted, these are incomplete and buggy. Do you have any sense of when a broader set of specs may be released? From my perspective, I’d learn much more about error messages from an update to core.specs.alpha than from any particular spec bug fix (or even a major reimplementation of spec).
Thanks for all your hard work on spec and elsewhere!