Copyright | (c) Fumiaki Kinoshita 2014 |
---|---|
License | BSD3 |
Maintainer | Fumiaki Kinoshita <fumiexcel@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Automated effect elevator
- rung :: (forall x. f x -> g x) -> (Gondola g :* fs) -> Gondola g :* (f : fs)
- newtype Gondola f g = Gondola {
- runGondola :: forall a. g a -> f a
- class Tower f where
- type Floors1 f = f : Floors f
- stairs1 :: Tower f => Gondola f :* Floors1 f
- type Elevate f g = (Tower g, f ∈ Floors1 g)
- elevate :: Elevate f g => f a -> g a
- liftGondolas :: (Monad m, Tower m, MonadTrans t) => Gondola (t m) :* Floors1 m
Documentation
Gondola | |
|
A class of types which have bases.
Nothing
Tower [] | |
Tower IO | |
Tower Maybe | |
Tower Identity | |
Tower ((->) r) | |
Tower (Either e) | |
Tower (ST s) | |
Forall (* -> *) Functor xs => Tower (League xs) | |
Generate (* -> *) xs => Tower (Union xs) | |
(Monad m, Tower m) => Tower (MaybeT m) | |
(Monad m, Tower m) => Tower (ListT m) | |
(Monoid w, Monad m, Tower m) => Tower (WriterT w m) | |
(Monoid w, Monad m, Tower m) => Tower (WriterT w m) | |
(Monad m, Tower m) => Tower (ExceptT e m) | |
(Monad m, Tower m) => Tower (StateT s m) | |
(Monad m, Tower m) => Tower (StateT s m) | |
(Monad m, Tower m) => Tower (ReaderT r m) |
liftGondolas :: (Monad m, Tower m, MonadTrans t) => Gondola (t m) :* Floors1 m Source