monad-par: A library for parallel programming based on a monad

[ bsd3, control, library, monads, parallelism ] [ Propose Tags ]
Versions 0.1,,,, 0.3, 0.3.4,,,,,,,,
Dependencies abstract‑deque (>=0.1.4), abstract‑par, array (>=0.3), base (==4.*), chaselev‑deque, containers, deepseq (>=1.1), monad‑par‑extras (>=0.3), mtl (>=, mwc‑random (>=0.11), parallel (>=3.1) [details]
License BSD-3-Clause
Copyright (c) Simon Marlow 2011
Author Simon Marlow, Ryan Newton
Maintainer Simon Marlow <>, Ryan Newton <>
Category Control, Parallelism, Monads
Home page
Uploaded by SimonMarlow at Mon Jul 22 09:14:57 UTC 2013
Distributions Arch:, Debian:, Fedora:, FreeBSD:, LTSHaskell:, NixOS:, Stackage:, openSUSE:
Downloads 39670 total (151 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

The Par monad offers a simple API for parallel programming. The library works for parallelising both pure and IO computations, although only the pure version is deterministic. The default implementation provides a work-stealing scheduler and supports forking tasks that are much lighter weight than IO-threads.

For complete documentation see Control.Monad.Par.

Some examples of use can be found in the examples/ directory of the source package.

Other related packages:

Changes in 0.3.4 relative to 0.3:





Use Chase-Lev Deques for higher-perf work-stealing.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees