module Data.StructuralTraversal.Class where import Control.Applicative class StructuralTraversable t where -- Bottom-up traversal traverseUp :: Applicative f => f () -> f () -> (a -> f b) -> t a -> f (t b) -- Top-down traversal traverseDown :: Applicative f => f () -> f () -> (a -> f b) -> t a -> f (t b)