MonadCompose-0.6.0.0: MonadCompose.cabal
name: MonadCompose
version: 0.6.0.0
synopsis: Methods for composing monads.
description: Methods for composing monads.
The IO monad transformer solves the problem of combining two IO-performing monad transformers, so that neither one needs to provide a MonadIO interface, and both can be transformed separately.
Most known monads have a distributive law. The Distributive module implements distributivity for monad transformers.
A monad transformer can transform another monad, but if you have two monads both lacking a transformer, there is little you can do in general. However, you can compose them in a coproduct construction. The PlusMonad module implements a similar plan, but differs from coproducts in that it doesn't compress together contiguous uses of a monad. Another mystery is how to get the other distributive law (m(x + y) -> mx + my).
I would like the auto-lifter and the Plus monad to work together, but I can't figure out how to coax IncoherentInstances to support it.
homepage: http://alkalisoftware.net
license: BSD3
license-file: LICENSE
author: James Candy
maintainer: info@alkalisoftware.net
-- copyright:
category: Monad
build-type: Simple
cabal-version: >=1.8
library
exposed-modules: Control.Monad.IOT, Control.Monad.Distributive, Control.Monad.PlusMonad, Control.Monad.Lifter
-- other-modules:
build-depends: base >=4 && <=5, ghc-prim ==0.3.*, mtl ==2.1.*, mmorph ==1.0.*, monad-products, transformers, MaybeT