definitive-base-2.3: The base modules of the Definitive framework.

Safe HaskellNone
LanguageHaskell2010

Algebra.Monad.Base

Contents

Synopsis

Documentation

Monad utilities

newtype Kleisli m a b Source

Constructors

Kleisli 

Fields

runKleisli :: a -> m b
 

Instances

Monad m => Split (Kleisli m) 
Monad m => Choice (Kleisli m) 
Monad m => Category (Kleisli m) 
Monad m => Deductive (Kleisli m) 
Monad m => Apply (Kleisli m) 
Monad m => Arrow (Kleisli m) 
Functor f => Functor (Kleisli f a) 
Contravariant f => Contravariant (Kleisli f a) 
Isomorphic (a -> m b) (c -> m' d) (Kleisli m a b) (Kleisli m' c d) 

i'Kleisli :: Iso (Kleisli m a b) (Kleisli m' c d) (a -> m b) (c -> m' d) Source

(=<<) :: Monad m => (a -> m b) -> m a -> m b infixr 2 Source

joinMap :: Monad m => (a -> m b) -> m a -> m b Source

(<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c Source

(>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c Source

(>>) :: Applicative f => f a -> f b -> f b infixl 1 Source

(<*=) :: Monad m => m a -> (a -> m b) -> m a infixl 1 Source

only :: (Monoid (m ()), Monad m) => (a -> Bool) -> m a -> m a Source

return :: Unit f => a -> f a Source

foldlM :: (Foldable t, Monad m) => (a -> b -> m a) -> a -> t b -> m a Source

foldrM :: (Foldable t, Monad m) => (b -> a -> m a) -> t b -> a -> m a Source

findM :: (Foldable t, Monad m) => (a -> m (Maybe b)) -> t a -> m (Maybe b) Source

while :: Monad m => m Bool -> m () Source

until :: Monad m => m (Maybe a) -> m a Source

bind2 :: Monad m => (a -> b -> m c) -> m a -> m b -> m c Source

bind3 :: Monad m => (a -> b -> c -> m d) -> m a -> m b -> m c -> m d Source

(>>>=) :: Monad m => (m a, m b) -> (a -> b -> m c) -> m c Source

(>>>>=) :: Monad m => (m a, m b, m c) -> (a -> b -> c -> m d) -> m d Source

mfix_ :: MonadFix m => (a -> m a) -> m () Source

mfixing :: MonadFix f => (b -> f (a, b)) -> f a Source

Monadic Lenses

type Action s t a b = forall m. Monad m => LensLike m s t a b Source

type Action' a b = Action b b a a Source

Instance utilities

newtype Compose' f g a Source

Constructors

Compose' ((g :.: f) a) 

Instances

i'Compose' :: Iso (Compose' f g a) (Compose' h i b) (g (f a)) (i (h b)) Source

coerceJoin :: forall m m' a. Monad m => (forall b. m b -> m' b) -> m' (m' a) -> m' a Source

coerceDuplicate :: forall m m' a. Comonad m => (forall b. m b -> m' b) -> m' a -> m' (m' a) Source