MHask: The category of monads

[ bsd3, control, library ] [ Propose Tags ]

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."

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.2.0.0, 0.3.0.0
Dependencies base (>=4.6 && <4.7), 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
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 2922 total (5 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]