monadLib
Welcome! This is a library written in the programming language
Haskell.
It can be used by Haskell programmers to quickly construct
monads---abstract data types that capture common programming idioms.
The library provides a number of building blocks called monad transformers,
that can be combined to construct quickly very complicated monads.
-Iavor
News
- 11 Aug 2008: There is a page for monadLib on the Haskell wiki.
- 5 Feb 2008: Version 3.4.4 is now available.
Some changes: a new backtracking transformer called ChoiceT, strictness tweaks,
Applicative and Alternative instances, instances of ExceptionM for IO.
- 17 Sep 2007: Version 3.3.0 is now available.
It adds an identity transformer (useful as a place-holder) and functions
to "derive" basic functions.
- 18 Jan 2007: Version 3.1.0 is now available. It features a new strict identity monad called 'Lift'.
- 02 Jan 2007: Version 3.0.0 is now available.
Note that, while similar, it is not a drop-in replacement for Version 2.
- 02 Jan 2007: Happy New Year!
- 12 December 2006: A new major release is coming soon!
- 12 December 2006: To compile monadLib with GHC 6.6 you need to add the flag
-fallow-undecidable-instances
to the cabal file.
- 19 April 2006: Version 2.0.1 released (small changes in Monad.Combinators).
- 12 April 2006: A new look for the web site.
- 19 March 2006: Version 2.0 released.
Installation
Prerequisites
The library is distributed in source form and is written entirely in Haskell.
It uses the following Haskell extensions:
- Multi parameter classes
- Rank 2 polymorphism
- Functional dependencies
Quick Start
The simplest (but perhaps not nicest) way to get started is to copy the source files to your project directory. Up to version 2 the directory structure
mattered. As of version 3, the library is in a single file so you just need
to place
MonadLib.hs in a location where your Haskell
implementation will find it.
Cabal
From version 1.2.2 the library supports the Cabal infrastructure.
See the INSTALL file that comes with the source code for details.