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
- 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-instancesto 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.
Download
These are the sources for the different versions of the library.- Source: monadLib-3.3.0.tar.gz (MonadLib.hs)
- Source: monadLib-3.1.0.tar.gz
- Source: monadLib-3.0.0.tar.gz
- Source: monadLib-2.0.1.tar.gz
- Source: monadLib-2.0.tar.gz
- Source: monadLib-1.4-src.tar.gz
- Source: monadLib-1.3.1-src.tar.gz
- Source: monadLib-1.2.2.tar.gz
- Source: monadLib-1.1-src.tar.gz
- Source: monadLib-1.0-src.tar.gz
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.Documentation
- The library interface for the current version.
- The slides for a talk I gave about monadLib.