{-# LANGUAGE NoImplicitPrelude, UnicodeSyntax #-}
module Control.Monad.Unicode ( (≫=), (≫), (=≪), (↣), (↢) ) where
import Control.Monad ( Monad, (>>=), (>>), (=<<), (>=>), (<=<) )
infixl 1 ≫=
infixl 1 ≫
infixr 1 =≪
infixl 1 ↣
infixr 1 ↢
(≫=) ∷ Monad m ⇒ m α → (α → m β) → m β
≫= :: forall (m :: * -> *) α β. Monad m => m α -> (α -> m β) -> m β
(≫=) = m α -> (α -> m β) -> m β
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
(>>=)
{-# INLINE (≫=) #-}
(≫) ∷ Monad m ⇒ m α → m β → m β
≫ :: forall (m :: * -> *) α β. Monad m => m α -> m β -> m β
(≫) = m α -> m β -> m β
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
(>>)
{-# INLINE (≫) #-}
(=≪) ∷ Monad m ⇒ (α → m β) → m α → m β
=≪ :: forall (m :: * -> *) α β. Monad m => (α -> m β) -> m α -> m β
(=≪) = (α -> m β) -> m α -> m β
forall (m :: * -> *) α β. Monad m => (α -> m β) -> m α -> m β
(=<<)
{-# INLINE (=≪) #-}
(↣) ∷ Monad μ ⇒ (α → μ β) → (β → μ γ) → α → μ γ
↣ :: forall (μ :: * -> *) α β γ.
Monad μ =>
(α -> μ β) -> (β -> μ γ) -> α -> μ γ
(↣) = (α -> μ β) -> (β -> μ γ) -> α -> μ γ
forall (μ :: * -> *) α β γ.
Monad μ =>
(α -> μ β) -> (β -> μ γ) -> α -> μ γ
(>=>)
{-# INLINE (↣) #-}
(↢) ∷ Monad μ ⇒ (β → μ γ) → (α → μ β) → α → μ γ
↢ :: forall (μ :: * -> *) β γ α.
Monad μ =>
(β -> μ γ) -> (α -> μ β) -> α -> μ γ
(↢) = (β -> μ γ) -> (α -> μ β) -> α -> μ γ
forall (μ :: * -> *) β γ α.
Monad μ =>
(β -> μ γ) -> (α -> μ β) -> α -> μ γ
(<=<)
{-# INLINE (↢) #-}