module Control.Monad.Syntax.Four where (====<<) :: Monad m => (a -> b -> c -> d -> m e) -> m a -> b -> c -> d -> m e ====<< :: forall (m :: * -> *) a b c d e. Monad m => (a -> b -> c -> d -> m e) -> m a -> b -> c -> d -> m e (====<<) a -> b -> c -> d -> m e mf m a x b b c c d d = m a x forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>= (\a a -> a -> b -> c -> d -> m e mf a a b b c c d d) infixr 1 ====<< (=.==<<) :: Monad m => (a -> b -> c -> d -> m e) -> m b -> a -> c -> d -> m e =.==<< :: forall (m :: * -> *) a b c d e. Monad m => (a -> b -> c -> d -> m e) -> m b -> a -> c -> d -> m e (=.==<<) a -> b -> c -> d -> m e mf m b x a a c c d d = m b x forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>= (\b b -> a -> b -> c -> d -> m e mf a a b b c c d d) infixr 1 =.==<< (==.=<<) :: Monad m => (a -> b -> c -> d -> m e) -> m c -> a -> b -> d -> m e ==.=<< :: forall (m :: * -> *) a b c d e. Monad m => (a -> b -> c -> d -> m e) -> m c -> a -> b -> d -> m e (==.=<<) a -> b -> c -> d -> m e mf m c x a a b b d d = m c x forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>= (\c c -> a -> b -> c -> d -> m e mf a a b b c c d d) infixr 1 ==.=<< (===.<<) :: Monad m => (a -> b -> c -> d -> m e) -> m d -> a -> b -> c -> m e ===.<< :: forall (m :: * -> *) a b c d e. Monad m => (a -> b -> c -> d -> m e) -> m d -> a -> b -> c -> m e (===.<<) a -> b -> c -> d -> m e mf m d x a a b b c c = m d x forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>= a -> b -> c -> d -> m e mf a a b b c c infixr 1 ===.<<