I'm working on arity errors in Garden, my toy programming language.
Rather than just saying "expected 3, got 4 arguments", I'm trying to report where the extra argument is, or what extra argument was expected.
tap> is an elegant Clojure debugging feature: it passes the argument to any functions registered with add-tap.
You might set up a custom printer for your data type, or save values for later examination, and you can easily disable the tap too.
Rust's editions make it much easier to change syntax over changing APIs. This is probably true in other languages too.
It's a really compelling argument for keeping your stdlib small when your language reaches 1.0.