-- Traversal schemes defined on top of Data.Generics

bottomup :: Data x => (forall y. Data y => y -> y) -> x -> x
bottomup f = f .  gmapT (bottomup f)
bottomup :: Data x => (forall y. Data y => y -> y) -> x -> x
bottomup f = f .  gmapT (bottomup f)
bottomup f = f .  gmapT (bottomup f)