recursion-schemes-ix-0.1.0.0: Recursion schemes over indexed Functors
Safe HaskellNone
LanguageHaskell2010

Data.IMonad

Contents

Synopsis

Documentation

class IFunctor f => IMonad f where Source #

Minimal complete definition

ipure, (ijoin | ibind)

Methods

ipure :: a ~~> f a Source #

ijoin :: f (f a) ~~> f a Source #

ibind :: (a ~~> f b) -> f a ~~> f b Source #

Instances

Instances details
IMonad (IIdentity :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IIdentity

Methods

ipure :: forall (a :: k0 -> Type). a ~~> IIdentity a Source #

ijoin :: forall (a :: k0 -> Type). IIdentity (IIdentity a) ~~> IIdentity a Source #

ibind :: forall (a :: k0 -> Type) (b :: k0 -> Type). (a ~~> IIdentity b) -> IIdentity a ~~> IIdentity b Source #

IMonad (Sum a :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IMonad

Methods

ipure :: forall (a0 :: k0 -> Type). a0 ~~> Sum a a0 Source #

ijoin :: forall (a0 :: k0 -> Type). Sum a (Sum a a0) ~~> Sum a a0 Source #

ibind :: forall (a0 :: k0 -> Type) (b :: k0 -> Type). (a0 ~~> Sum a b) -> Sum a a0 ~~> Sum a b Source #

IFunctor f => IMonad (IFree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

ipure :: forall (a :: k0 -> Type). a ~~> IFree f a Source #

ijoin :: forall (a :: k0 -> Type). IFree f (IFree f a) ~~> IFree f a Source #

ibind :: forall (a :: k0 -> Type) (b :: k0 -> Type). (a ~~> IFree f b) -> IFree f a ~~> IFree f b Source #

Re-exports

type (~~>) a b = forall ix. SingI ix => a ix -> b ix infixr 4 Source #

Indexed function type

class IFunctor f where Source #

Functor in the category of dependent types

Methods

imap :: (a ~~> b) -> f a ~~> f b Source #

Instances

Instances details
IFunctor (IIdentity :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IIdentity

Methods

imap :: forall (a :: k0 -> Type) (b :: k0 -> Type). (a ~~> b) -> IIdentity a ~~> IIdentity b Source #

IFunctor (Product a :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor

Methods

imap :: forall (a0 :: k0 -> Type) (b :: k0 -> Type). (a0 ~~> b) -> Product a a0 ~~> Product a b Source #

IFunctor (Sum a :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor

Methods

imap :: forall (a0 :: k0 -> Type) (b :: k0 -> Type). (a0 ~~> b) -> Sum a a0 ~~> Sum a b Source #

IFunctor f => IFunctor (IFree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

imap :: forall (a :: k0 -> Type) (b :: k0 -> Type). (a ~~> b) -> IFree f a ~~> IFree f b Source #

IFunctor f => IFunctor (ICofree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.ICofree

Methods

imap :: forall (a :: k0 -> Type) (b :: k0 -> Type). (a ~~> b) -> ICofree f a ~~> ICofree f b Source #