-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell98 indexed functors, monads, comonads -- -- Haskell98 indexed functors, monads, comonads @package indexed @version 0.1 -- | TODO: figure out a meaningful way for indexed monads to transform -- indexed monads module Control.Monad.Indexed.Trans class IxMonadTrans t ilift :: (IxMonadTrans t, Monad m) => m a -> t m i i a module Data.Functor.Indexed class IxFunctor f imap :: IxFunctor f => (a -> b) -> f j k a -> f j k b class IxFunctor w => IxCopointed w iextract :: IxCopointed w => w i i a -> a class IxFunctor m => IxPointed m ireturn :: IxPointed m => a -> m i i a class IxPointed m => IxApplicative m iap :: IxApplicative m => m i j (a -> b) -> m j k a -> m i k b module Control.Monad.Indexed class IxFunctor f imap :: IxFunctor f => (a -> b) -> f j k a -> f j k b class IxFunctor m => IxPointed m ireturn :: IxPointed m => a -> m i i a class IxPointed m => IxApplicative m iap :: IxApplicative m => m i j (a -> b) -> m j k a -> m i k b class IxApplicative m => IxMonad m ibind :: IxMonad m => (a -> m j k b) -> m i j a -> m i k b class IxMonad m => IxMonadZero m imzero :: IxMonadZero m => m i j a class IxMonadZero m => IxMonadPlus m implus :: IxMonadPlus m => m i j a -> m i j a -> m i j a ijoin :: IxMonad m => m i j (m j k a) -> m i k a (>>>=) :: IxMonad m => m i j a -> (a -> m j k b) -> m i k b (=<<<) :: IxMonad m => (a -> m j k b) -> m i j a -> m i k b iapIxMonad :: IxMonad m => m i j (a -> b) -> m j k a -> m i k b module Control.Monad.Indexed.Fix class IxMonad m => IxMonadFix m imfix :: IxMonadFix m => (a -> m i i a) -> m i i a module Control.Comonad.Indexed class IxFunctor f imap :: IxFunctor f => (a -> b) -> f j k a -> f j k b class IxFunctor w => IxCopointed w iextract :: IxCopointed w => w i i a -> a class IxCopointed w => IxComonad w iextend :: IxComonad w => (w j k a -> b) -> w i k a -> w i j b iduplicate :: IxComonad w => w i k a -> w i j (w j k a)