indexed-0.1.3: Haskell98 indexed functors, monads, comonads
Copyright(C) 2008 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerReiner Pope <reiner.pope@gmail.com>
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Data.Functor.Indexed

Description

 
Synopsis

Documentation

class IxFunctor (f :: k -> k1 -> Type -> Type) where Source #

Methods

imap :: forall a b (j :: k) (k2 :: k1). (a -> b) -> f j k2 a -> f j k2 b Source #

class IxFunctor w => IxCopointed (w :: k -> k -> Type -> Type) where Source #

Methods

iextract :: forall (i :: k) a. w i i a -> a Source #

class IxFunctor m => IxPointed (m :: k -> k -> Type -> Type) where Source #

Methods

ireturn :: forall a (i :: k). a -> m i i a Source #

class IxPointed m => IxApplicative (m :: k -> k -> Type -> Type) where Source #

Methods

iap :: forall (i :: k) (j :: k) a b (k1 :: k). m i j (a -> b) -> m j k1 a -> m i k1 b Source #

(<<$>>) :: forall {k1} {k2} f a b (j :: k1) (k3 :: k2). IxFunctor f => (a -> b) -> f j k3 a -> f j k3 b infixl 4 Source #

Infix alias of imap. Or, (<$>) for IxFunctor. Should be interchangeable with (<$>), but requires IxFunctor constraints instead of (possibly many) Functor constraints.

(<<*>>) :: forall {k1} f (i :: k1) (j :: k1) a b (k2 :: k1). IxApplicative f => f i j (a -> b) -> f j k2 a -> f i k2 b infixl 4 Source #

Infix alias of iap. Or, (<*>) for IxApplicative.

(<<*) :: forall {k1} f (i :: k1) (j :: k1) a (k2 :: k1) b. IxApplicative f => f i j a -> f j k2 b -> f i k2 a infixl 4 Source #

(*>>) :: forall {k1} f (i :: k1) (j :: k1) a (k2 :: k1) b. IxApplicative f => f i j a -> f j k2 b -> f i k2 b infixl 4 Source #