deepcontrol-0.4.1.1: Provide more deeper level style of programming than the usual Control.xxx modules express

Copyright(c) 2007 Magnus Therning, (C) 2015 KONISHI Yohsuke
LicenseBSD-style (see the file LICENSE)
Maintainerocean0yohsuke@gmail.com
Stabilityexperimental
Portability---
Safe HaskellNone
LanguageHaskell2010

DeepControl.Monad.Trans.Identity

Contents

Description

 

Synopsis

Documentation

Level-2

lift functions

mapIdentityT2 :: (m1 (m2 a) -> n1 (n2 b)) -> IdentityT2 m1 m2 a -> IdentityT2 n1 n2 b Source

liftCallCC2 :: CallCC2 m1 m2 a b -> CallCC (IdentityT2 m1 m2) a b Source

liftCatch2 :: Catch2 e m1 m2 a -> Catch e (IdentityT2 m1 m2) a Source

Level-3

newtype IdentityT3 f1 f2 f3 a Source

Constructors

IdentityT3 

Fields

runIdentityT3 :: f1 (f2 (f3 a))
 

Instances

MonadTransCover3 IdentityT3 Source 
MonadTransFold3 IdentityT3 Source 
MonadTrans3Down IdentityT3 Source 
MonadTrans3 IdentityT3 Source 
(Monad m1, Monad2 m2, Monad3 m3) => Monad (IdentityT3 m1 m2 m3) Source 
(Functor f1, Functor f2, Functor f3) => Functor (IdentityT3 f1 f2 f3) Source 
(Applicative m1, Applicative m2, Applicative m3) => Applicative (IdentityT3 m1 m2 m3) Source 
(Foldable f1, Foldable f2, Foldable f3) => Foldable (IdentityT3 f1 f2 f3) Source 
(Traversable f1, Traversable f2, Traversable f3) => Traversable (IdentityT3 f1 f2 f3) Source 
(Alternative m1, Alternative m2, Alternative m3) => Alternative (IdentityT3 m1 m2 m3) Source 
(MonadPlus m1, Alternative m2, Monad2 m2, Alternative m3, Monad3 m3) => MonadPlus (IdentityT3 m1 m2 m3) Source 
(MonadIO m1, Monad m1, Monad2 m2, Monad3 m3) => MonadIO (IdentityT3 m1 m2 m3) Source 
(Commutative f1, Commutative f2, Commutative f3) => Commutative (IdentityT3 f1 f2 f3) Source 
Eq (f1 (f2 (f3 a))) => Eq (IdentityT3 f1 f2 f3 a) Source 
Ord (f1 (f2 (f3 a))) => Ord (IdentityT3 f1 f2 f3 a) Source 
Read (f1 (f2 (f3 a))) => Read (IdentityT3 f1 f2 f3 a) Source 
Show (f1 (f2 (f3 a))) => Show (IdentityT3 f1 f2 f3 a) Source 
type Trans3Down IdentityT3 = IdentityT2 Source 

lift functions

mapIdentityT3 :: (m1 (m2 (m3 a)) -> n1 (n2 (n3 b))) -> IdentityT3 m1 m2 m3 a -> IdentityT3 n1 n2 n3 b Source

liftCallCC3 :: CallCC3 m1 m2 m3 a b -> CallCC (IdentityT3 m1 m2 m3) a b Source

liftCatch3 :: Catch3 e m1 m2 m3 a -> Catch e (IdentityT3 m1 m2 m3) a Source

Level-4

newtype IdentityT4 f1 f2 f3 f4 a Source

Constructors

IdentityT4 

Fields

runIdentityT4 :: f1 (f2 (f3 (f4 a)))
 

Instances

MonadTransCover4 IdentityT4 Source 
MonadTransFold4 IdentityT4 Source 
MonadTrans4Down IdentityT4 Source 
MonadTrans4 IdentityT4 Source 
(Monad m1, Monad2 m2, Monad3 m3, Monad4 m4) => Monad (IdentityT4 m1 m2 m3 m4) Source 
(Functor f1, Functor f2, Functor f3, Functor f4) => Functor (IdentityT4 f1 f2 f3 f4) Source 
(Applicative m1, Applicative m2, Applicative m3, Applicative m4) => Applicative (IdentityT4 m1 m2 m3 m4) Source 
(Foldable f1, Foldable f2, Foldable f3, Foldable f4) => Foldable (IdentityT4 f1 f2 f3 f4) Source 
(Traversable f1, Traversable f2, Traversable f3, Traversable f4) => Traversable (IdentityT4 f1 f2 f3 f4) Source 
(Alternative m1, Alternative m2, Alternative m3, Alternative m4) => Alternative (IdentityT4 m1 m2 m3 m4) Source 
(MonadPlus m1, Alternative m2, Monad2 m2, Alternative m3, Monad3 m3, Alternative m4, Monad4 m4) => MonadPlus (IdentityT4 m1 m2 m3 m4) Source 
(MonadIO m1, Monad m1, Monad2 m2, Monad3 m3, Monad4 m4) => MonadIO (IdentityT4 m1 m2 m3 m4) Source 
(Commutative f1, Commutative f2, Commutative f3, Commutative f4) => Commutative (IdentityT4 f1 f2 f3 f4) Source 
Eq (f1 (f2 (f3 (f4 a)))) => Eq (IdentityT4 f1 f2 f3 f4 a) Source 
Ord (f1 (f2 (f3 (f4 a)))) => Ord (IdentityT4 f1 f2 f3 f4 a) Source 
Read (f1 (f2 (f3 (f4 a)))) => Read (IdentityT4 f1 f2 f3 f4 a) Source 
Show (f1 (f2 (f3 (f4 a)))) => Show (IdentityT4 f1 f2 f3 f4 a) Source 
type Trans4Down IdentityT4 = IdentityT3 Source 

lift functions

mapIdentityT4 :: (m1 (m2 (m3 (m4 a))) -> n1 (n2 (n3 (n4 b)))) -> IdentityT4 m1 m2 m3 m4 a -> IdentityT4 n1 n2 n3 n4 b Source

liftCallCC4 :: CallCC4 m1 m2 m3 m4 a b -> CallCC (IdentityT4 m1 m2 m3 m4) a b Source

liftCatch4 :: Catch4 e m1 m2 m3 m4 a -> Catch e (IdentityT4 m1 m2 m3 m4) a Source

Level-5

newtype IdentityT5 f1 f2 f3 f4 f5 a Source

Constructors

IdentityT5 

Fields

runIdentityT5 :: f1 (f2 (f3 (f4 (f5 a))))
 

Instances

MonadTransCover5 IdentityT5 Source 
MonadTransFold5 IdentityT5 Source 
MonadTrans5Down IdentityT5 Source 
MonadTrans5 IdentityT5 Source 
(Monad m1, Monad2 m2, Monad3 m3, Monad4 m4, Monad5 m5) => Monad (IdentityT5 m1 m2 m3 m4 m5) Source 
(Functor f1, Functor f2, Functor f3, Functor f4, Functor f5) => Functor (IdentityT5 f1 f2 f3 f4 f5) Source 
(Applicative m1, Applicative m2, Applicative m3, Applicative m4, Applicative m5) => Applicative (IdentityT5 m1 m2 m3 m4 m5) Source 
(Foldable f1, Foldable f2, Foldable f3, Foldable f4, Foldable f5) => Foldable (IdentityT5 f1 f2 f3 f4 f5) Source 
(Traversable f1, Traversable f2, Traversable f3, Traversable f4, Traversable f5) => Traversable (IdentityT5 f1 f2 f3 f4 f5) Source 
(Alternative m1, Alternative m2, Alternative m3, Alternative m4, Alternative m5) => Alternative (IdentityT5 m1 m2 m3 m4 m5) Source 
(MonadPlus m1, Alternative m2, Monad2 m2, Alternative m3, Monad3 m3, Alternative m4, Monad4 m4, Alternative m5, Monad5 m5) => MonadPlus (IdentityT5 m1 m2 m3 m4 m5) Source 
(MonadIO m1, Monad m1, Monad2 m2, Monad3 m3, Monad4 m4, Monad5 m5) => MonadIO (IdentityT5 m1 m2 m3 m4 m5) Source 
(Commutative f1, Commutative f2, Commutative f3, Commutative f4, Commutative f5) => Commutative (IdentityT5 f1 f2 f3 f4 f5) Source 
Eq (f1 (f2 (f3 (f4 (f5 a))))) => Eq (IdentityT5 f1 f2 f3 f4 f5 a) Source 
Ord (f1 (f2 (f3 (f4 (f5 a))))) => Ord (IdentityT5 f1 f2 f3 f4 f5 a) Source 
Read (f1 (f2 (f3 (f4 (f5 a))))) => Read (IdentityT5 f1 f2 f3 f4 f5 a) Source 
Show (f1 (f2 (f3 (f4 (f5 a))))) => Show (IdentityT5 f1 f2 f3 f4 f5 a) Source 
type Trans5Down IdentityT5 = IdentityT4 Source 

lift functions

mapIdentityT5 :: (m1 (m2 (m3 (m4 (m5 a)))) -> n1 (n2 (n3 (n4 (n5 b))))) -> IdentityT5 m1 m2 m3 m4 m5 a -> IdentityT5 n1 n2 n3 n4 n5 b Source

liftCallCC5 :: CallCC5 m1 m2 m3 m4 m5 a b -> CallCC (IdentityT5 m1 m2 m3 m4 m5) a b Source

liftCatch5 :: Catch5 e m1 m2 m3 m4 m5 a -> Catch e (IdentityT5 m1 m2 m3 m4 m5) a Source