right now both implement the same logic. as a general principle, it's bad to repeat the same logic in multiple places.
it seems Deparser does a more complete traversal of the objects, shouldn't we implement all toString() with their corresponding Deparsers ?