Thanks, this looks quite useful. I should be able to look it over in full tomorrow.
I need this for my fix to Transformer. In fact, this is the only thing I need, rather than an overload of traverse for DynTypedMatcher. Do you want me to split this into its own patch and send to you? Or, vice versa?
Also, whay const DynTypedMatcher &InnerMatcher? Given that it is immediately copied, why not just DynTypedMatcher InnerMatcher, which at least allows the caller to move-construct the argument and avoid the copy?
Yes, if you could split what ever you need out and incorporate it into your work I think that would be useful.
I can rebase the rest of this once your fix is in.