{-# LANGUAGE NoImplicitPrelude #-} module Papa.Base.Implement.Data.Traversable( mapM , forM , sequence ) where import Control.Applicative(Applicative) import Data.Traversable(Traversable(traverse, sequenceA)) mapM :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) mapM = traverse forM :: (Traversable t, Applicative f) => t a -> (a -> f b) -> f (t b) forM a f = traverse f a sequence :: (Traversable t, Applicative f) => t (f a) -> f (t a) sequence = sequenceA