Module

Control.Bind.Indexed

Package
purescript-indexed-monad
Repository
garyb/purescript-indexed-monad

#IxBind Source

class IxBind :: forall ix. (ix -> ix -> Type -> Type) -> Constraintclass (IxApply m) <= IxBind m  where

Members

  • ibind :: forall a b x y z. m x y a -> (a -> m y z b) -> m x z b

#(:>>=) Source

Operator alias for Control.Bind.Indexed.ibind (left-associative / precedence 1)

#ibindFlipped Source

ibindFlipped :: forall m a b x y z. IxBind m => (a -> m y z b) -> m x y a -> m x z b

#(=<<:) Source

Operator alias for Control.Bind.Indexed.ibindFlipped (right-associative / precedence 1)

#composeiKleisli Source

composeiKleisli :: forall m a b c x y z. IxBind m => (a -> m x y b) -> (b -> m y z c) -> a -> m x z c

#(:>=>) Source

Operator alias for Control.Bind.Indexed.composeiKleisli (right-associative / precedence 1)

#composeiKleisliFlipped Source

composeiKleisliFlipped :: forall m a b c x y z. IxBind m => (b -> m y z c) -> (a -> m x y b) -> a -> m x z c

#(<=<:) Source

Operator alias for Control.Bind.Indexed.composeiKleisliFlipped (right-associative / precedence 1)

#IxDiscard Source

class IxDiscard a  where

Members

  • idiscard :: forall k f b (x :: k) (y :: k) (z :: k). IxBind f => f x y a -> (a -> f y z b) -> f x z b

Instances

#ijoin Source

ijoin :: forall m z y x a. IxBind m => m x y (m y z a) -> m x z a

Re-exports from Control.Apply.Indexed

#IxApply Source

class IxApply :: forall ix. (ix -> ix -> Type -> Type) -> Constraintclass (IxFunctor m) <= IxApply m  where

Members

  • iapply :: forall a b x y z. m x y (a -> b) -> m y z a -> m x z b

#IxFunctor Source

class IxFunctor :: forall ix. (ix -> ix -> Type -> Type) -> Constraintclass IxFunctor f  where

Members

  • imap :: forall a b x y. (a -> b) -> f x y a -> f x y b

#ivoidRight Source

ivoidRight :: forall f a b x y. IxFunctor f => a -> f x y b -> f x y a

#ivoidLeft Source

ivoidLeft :: forall f a b x y. IxFunctor f => f x y a -> b -> f x y b

#ivoid Source

ivoid :: forall f a x y. IxFunctor f => f x y a -> f x y Unit

#iapplySecond Source

iapplySecond :: forall m a b x y z. IxApply m => m x y a -> m y z b -> m x z b

#iapplyFirst Source

iapplyFirst :: forall m a b x y z. IxApply m => m x y a -> m y z b -> m x z a

#(<*:) Source

Operator alias for Control.Apply.Indexed.iapplyFirst (left-associative / precedence 4)

#(<$:) Source

Operator alias for Data.Functor.Indexed.ivoidRight (left-associative / precedence 4)

#(:*>) Source

Operator alias for Control.Apply.Indexed.iapplySecond (left-associative / precedence 4)

#(:$>) Source

Operator alias for Data.Functor.Indexed.ivoidLeft (left-associative / precedence 4)