Module

Control.Monad.Indexed

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

#IxMonad Source

class IxMonad :: forall ix. (ix -> ix -> Type -> Type) -> Constraintclass (IxApplicative m, IxBind m) <= IxMonad m 

#iap Source

iap :: forall m a b x y z. IxMonad m => m x y (a -> b) -> m y z a -> m x z b

#iwhenM Source

iwhenM :: forall m x y. IxMonad m => m x y Boolean -> m y y Unit -> m x y Unit

#iunlessM Source

iunlessM :: forall m x y. IxMonad m => m x y Boolean -> m y y Unit -> m x y Unit

Re-exports from Control.Applicative.Indexed

#IxApplicative Source

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

Members

  • ipure :: forall a x. a -> m x x a

#iwhen Source

iwhen :: forall m x. IxApplicative m => Boolean -> m x x Unit -> m x x Unit

#iunless Source

iunless :: forall m x. IxApplicative m => Boolean -> m x x Unit -> m x x Unit

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

#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 Control.Apply.Indexed.iapplySecond (left-associative / precedence 4)

Re-exports from Control.Bind.Indexed

#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

#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

#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

#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.ibindFlipped (right-associative / precedence 1)

#(<=<:) Source

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

#(:>>=) Source

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

#(:>=>) Source

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

Re-exports from Data.Functor.Indexed

#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

#(<$:) Source

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

#(:$>) Source

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