introduce scope for locals (were later shadowed)
rename parameters shadowing members
rename variables shadowing others or members
more anti-shadowing / reuse variable
fix (many!) -Wold-style-cast warnings
fix -W[sign-]conversion warnings (explicit casts)
fix shadowing warnings by enlarging scope

(Even better would be *smaller* scopes, but that would mean more restructuring.)
fix wrong #undef (PUSH instead of PULL)
fix unused parameter warnings (e.g. in visitors)
fix more -W[sign-]conversion warnings