First of all, sorry for the long absence. Time......
I've spent a lot of thoughts on the new Yttrium design. It's a kind of an architectural playground to try out new ideas. I think I found several interesting approaches to solve very specific problems, although some of them are slightly complex - I hope it's not that much over-engineered after all (of course I prefer simple solutions, too).
I plan to introduce several Yttrium concepts in the next few posts. The intention is a) to help you understand Yttrium and b) to present and document the chosen high level concepts and design patterns and ask for feedback. There is a huge lack of documentation around Yttrium and Math.NET in general, so those posts may become part of some documentation system later on.
The first post will be about the new traversing system (see MathNet.Symbolics.Backend.Traversing).