packages feed

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