name: MHask version: 0.2.0.0 synopsis: The category of monads description: MHask is the category where . * The objects are Haskell types of kind @(* → *)@ that have an instance of `Prelude.Monad' . * An arrow from object m to object n is a Haskell function of the form @(forall x. m x → n x)@ . * Arrow composition is merely a specialization of Haskell function composition . * The identity arrow for the object m is the `Prelude.id' function in Haskell, specialized to @(forall x. m x → m x)@ . It is assumed that any instances of the classes provided here also have an instance for Monad of the form @instance (Monad m) ⇒ Monad (t m)@, thus guaranteeing that @(t m)@ (or @(t i j m)@ for the indexed types) is always a Monad. If it were valid Haskell, I'd write: . > class (forall m. Monad m ⇒ Monad (t m)) ⇒ Functor t . 'MHask.Functor.Functor' should actually be called Endofunctor, because if m is an object in MHask, then an instance t of `Functor' can map object m to object (t m), and arrows from m to n get mapped to arrows from (t m) to (t n). homepage: https://github.com/DanBurton/MHask#readme license: BSD3 license-file: LICENSE author: Dan Burton maintainer: danburton.email@gmail.com category: Control build-type: Simple cabal-version: >=1.8 source-repository head type: git location: git://github.com/DanBurton/MHask.git source-repository this type: git location: git://github.com/DanBurton/MHask.git tag: MHask-0.2.0.0 library exposed-modules: MHask, MHask.Comonad, MHask.Monad, MHask.Copointed, MHask.Pointed, MHask.Util, MHask.Functor, MHask.Indexed.Comonad, MHask.Indexed.Monad, MHask.Indexed.Copointed, MHask.Indexed.Pointed, MHask.Indexed.Functor build-depends: base >= 2 && < 4.7, transformers >= 0.3