I was surprised but pleased to see this was a declarative macro rather than a proc macro. While proc macros are more powerful, there's a surprising amount of expressive power in the declarative ones, and I'm fond of playing around with them to figure out how to stretch them beyond where it seems like they should be able to get (and maybe shouldn't be used for in real code, but that doesn't make it less fun for playing around!)
call/ec at the type level is the surprising part here, most compile-time Lisp implementations stop at basic eval but escape continuations need real control flow reasoning through trait resolution
This is impressive! I'm supposed to do work today, but now I just want to play with this thing
I'm honestly a bit shocked this was done entirely using declarative macros. Normally when I see such arbitrary syntax I assume it's implemented as a proc macro.
[dead]
That is incredible, but I must ask: Beside really getting to know Rust's trait and type system, and besides experimental / educational tinkering, could this have any practical use case?