{-# LANGUAGE NoImplicitPrelude #-} module Control.Subcategory.RebindableSyntax ( ifThenElse, Eq(..), Num(..) , (>>=), (>>), fromLabel, return , module Control.Arrow ) where import Control.Subcategory.Applicative import Control.Subcategory.Bind import Control.Subcategory.Functor import Control.Subcategory.Pointed import Control.Arrow import GHC.OverloadedLabels import Prelude (Bool (..), Eq (..), Num (..)) ifThenElse :: Bool -> a -> a -> a ifThenElse :: Bool -> a -> a -> a ifThenElse Bool True a t a _ = a t ifThenElse Bool False a _ a f = a f {-# INLINE ifThenElse #-} (>>=) :: (Dom m a, Dom m b, CBind m) => m a -> (a -> m b) -> m b >>= :: m a -> (a -> m b) -> m b (>>=) = m a -> (a -> m b) -> m b forall (m :: * -> *) a b. (CBind m, Dom m a, Dom m b) => m a -> (a -> m b) -> m b (>>-) {-# INLINE (>>=) #-} (>>) :: (Dom m a, Dom m b, CApplicative m) => m a -> m b -> m b >> :: m a -> m b -> m b (>>) = m a -> m b -> m b forall (f :: * -> *) a b. (CApplicative f, Dom f a, Dom f b) => f a -> f b -> f b (.>) {-# INLINE (>>) #-} return :: (Dom m a, CPointed m) => a -> m a return :: a -> m a return = a -> m a forall (f :: * -> *) a. (CPointed f, Dom f a) => a -> f a cpure {-# INLINE return #-}