Just a thought, but maybe default to do: `visitMarginGroup(MargingGroup node) => visitDeclarationGroup(node);` 

Basically I'm thinking that in places in your subclasses where you do override visitDeclarationGroup, and not visitMarginGroup, then you get by default the new behavior defined for declaration groups?