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.

Download

monadLib is available on hackage.

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