On Sunday, 14 August 2016 at 18:05:12 UTC, ZombineDev wrote: [...]
OTOH, they're used in more places in their standard library, than mixins are used in Phobos, because of the lack of variadic templates, because in Rust you can't generalize over mutability, like you can in D with `inout` and also because of the stupidly designed trait system (e.g. see [9]).
I'm confused by your example. How exactly is Rust's trait system 'stupidly designed'?
[...]
From my understanding of Rust macros, they're kind of like the AliasSeq algorithms in std.meta (because they're declarative), but instead of operating on sequences (e.g. template arguments lists) they operate on Rust's AST (e.g. statements and expressions).
The AliasSeq algorithms are defined recursively for obvious reasons, but they rely on branching and a lot of obviously not declarative code in their definition. :?
[...]
[9]: https://github.com/rust-lang/rust/blob/master/src/libcore/slice.rs#L804
