# MHask: The category of monads

MHask is the category where

The objects are Haskell types of kind (* -> *) that have an instance of 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 id function in Haskell, specialized to (forall x. m x -> m x)

Functor should actually be called Endofunctor, because if m is an object in MHask, then an instance t of Functor can transform object m into object (t m). You will see *a lot* of constraints in the type classes defined herein. Though daunting at first, you will soon realize that they are *all* Prelude.Monad constraints, and their interpretation is simply a guarantee that "the objects of MHask are types of kind (* -> *) that have an instance of Monad."

Versions [RSS] [faq] | 0.1.0.0, 0.2.0.0, 0.3.0.0 |
---|---|

Dependencies | base (==4.6.*), transformers (>=0.3) [details] |

License | BSD-3-Clause |

Author | Dan Burton |

Maintainer | danburton.email@gmail.com |

Category | Control |

Home page | https://github.com/DanBurton/MHask#readme |

Uploaded | by DanBurton at 2013-07-31T23:33:22Z |

Distributions | NixOS:0.3.0.0 |

Downloads | 2635 total (12 in the last 30 days) |

Rating | (no votes yet) [estimated by Bayesian average] |

Your Rating | |

Status | Docs uploaded by user Build status unknown [no reports yet] |

## Modules

[Index]

## Downloads

- MHask-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)