That said, this is the general operating strategy in the Rust ecosystem: got a cool feature you think would be useful? Try implementing it via a crate/macro hackery to see if would indeed be useful.
It's one of the reason I'm a big fan of Rust - between the macros and the typesytem, you can generally prototype language level changes. No, the prototype won't be as nice to use as the real thing, but I think that's for the best.
As an example, you can write a crate to introduce named argument support for calling and defining functions. Lots of fun.
An aside: the author is one of the macro experts in the Rust ecosystem.
That said, this is the general operating strategy in the Rust ecosystem: got a cool feature you think would be useful? Try implementing it via a crate/macro hackery to see if would indeed be useful.
It's one of the reason I'm a big fan of Rust - between the macros and the typesytem, you can generally prototype language level changes. No, the prototype won't be as nice to use as the real thing, but I think that's for the best.
As an example, you can write a crate to introduce named argument support for calling and defining functions. Lots of fun.
An aside: the author is one of the macro experts in the Rust ecosystem.