@@ -18,14 +18,6 @@ class Monad m => MonadPlus (m : Type -> Type) where
18 mplus : m a -> m a -> m a
18 mplus : m a -> m a -> m a
19 mzero : m a
19 mzero : m a
21−sequence : Monad m => List (m a) -> m (List a)
22−sequence [] = return []
23−sequence (x :: xs) = [ x' :: xs' | x' <- x, xs' <- sequence xs ]
25−sequence_ : Monad m => List (m a) -> m ()
26−sequence_ [] = return ()
27−sequence_ (x :: xs) = do x; sequence_ xs
29mapM : Monad m => (a -> m b) -> List a -> m (List b)
21mapM : Monad m => (a -> m b) -> List a -> m (List b)
30mapM f xs = sequence (map f xs)
22mapM f xs = sequence (map f xs)