module Control.Monad.Syntax ( module X , (>>==) , (>>===) , (>>====) , (>>=====) , (>>======) ) where import Control.Monad.Syntax.Two as X import Control.Monad.Syntax.Three as X import Control.Monad.Syntax.Four as X import Control.Monad.Syntax.Five as X import Control.Monad.Syntax.Six as X (>>==) :: Monad m => m b -> (a -> b -> m c) -> a -> m c >>== :: forall (m :: * -> *) b a c. Monad m => m b -> (a -> b -> m c) -> a -> m c (>>==) m b mb a -> b -> m c f a a = a -> b -> m c f a a forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< m b mb infixr 2 >>== (>>===) :: Monad m => m c -> (a -> b -> c -> m d) -> a -> b -> m d >>=== :: forall (m :: * -> *) c a b d. Monad m => m c -> (a -> b -> c -> m d) -> a -> b -> m d (>>===) m c mc a -> b -> c -> m d f a a b b = a -> b -> c -> m d f a a b b forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< m c mc infixr 2 >>=== (>>====) :: Monad m => m d -> (a -> b -> c -> d -> m e) -> a -> b -> c -> m e >>==== :: forall (m :: * -> *) d a b c e. Monad m => m d -> (a -> b -> c -> d -> m e) -> a -> b -> c -> m e (>>====) m d md a -> b -> c -> d -> m e f a a b b c c = a -> b -> c -> d -> m e f a a b b c c forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< m d md infixr 2 >>==== (>>=====) :: Monad m => m e -> (a -> b -> c -> d -> e -> m f) -> a -> b -> c -> d -> m f >>===== :: forall (m :: * -> *) e a b c d f. Monad m => m e -> (a -> b -> c -> d -> e -> m f) -> a -> b -> c -> d -> m f (>>=====) m e me a -> b -> c -> d -> e -> m f f a a b b c c d d = a -> b -> c -> d -> e -> m f f a a b b c c d d forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< m e me infixr 2 >>===== (>>======) :: Monad m => m f -> (a -> b -> c -> d -> e -> f -> m g) -> a -> b -> c -> d -> e -> m g >>====== :: forall (m :: * -> *) f a b c d e g. Monad m => m f -> (a -> b -> c -> d -> e -> f -> m g) -> a -> b -> c -> d -> e -> m g (>>======) m f mf a -> b -> c -> d -> e -> f -> m g f a a b b c c d d e e = a -> b -> c -> d -> e -> f -> m g f a a b b c c d d e e forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< m f mf infixr 2 >>======