This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
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).