Hi, my code has a lot of statements of this kind: if (is_a<mul>(some_ex)) { for (const auto& m : some_ex) { // Do something with m } } else { // Do something with some_ex } Is there a more elegant way of iterating through an expression that avoids having to write the "Do something" part twice? Thanks, Jan