Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
A symmetric version of the Kleisli monad transformer arrow.
This admits three isomorphic MonadBijection
types:
MonadArrow
(BiArrow
) m a bBijection
(MonadFunction
m) a bm a
BiArrow
m b
The Alimarine paper just calls it "MoT" for Monad Transformer.
Synopsis
- newtype MonadArrow a m b c = MonadArrow {
- runMonadArrow :: a (m b) (m c)
- type MonadFunction = MonadArrow (->)
- type MonadBijection m = MonadArrow (<->) m
- type MonadBijection' m = Bijection (MonadFunction m)
- type MonadBijection'' m a b = m a <-> m b
- monadBijection :: MonadBijection' m a b <-> MonadBijection m a b
- monadBijection' :: MonadBijection'' m a b <-> MonadBijection' m a b
Documentation
newtype MonadArrow a m b c Source #
Bidirectional Kleisli
-like monad arrow transformer.
MonadArrow | |
|
Instances
type MonadFunction = MonadArrow (->) Source #
Specialization of MonadArrow
to function arrows.
type MonadBijection m = MonadArrow (<->) m Source #
type MonadBijection' m = Bijection (MonadFunction m) Source #
type MonadBijection'' m a b = m a <-> m b Source #
monadBijection :: MonadBijection' m a b <-> MonadBijection m a b Source #
Convert between isomorphic representations of MonadBijection
s.
monadBijection' :: MonadBijection'' m a b <-> MonadBijection' m a b Source #
Convert between isomorphic representations of MonadBijection
s.