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

[ bsd3, control, library, monads, parallelism ] [ Propose Tags ]

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:

Versions [faq] 0.1,,,, 0.3, 0.3.4,,,,,,,,,, 0.3.5 (info)
Dependencies abstract-deque (>=0.1.4), abstract-par, array (>=0.3), base (>=4.9 && <5), chaselev-deque, containers, deepseq (>=1.1), monad-par-extras (>=0.3), mtl (>=, mwc-random (>=0.11), par-classes, parallel (>=3.1) [details]
License BSD-3-Clause
Copyright (c) Simon Marlow 2011
Author Simon Marlow, Ryan Newton
Maintainer Simon Marlow <>, Ryan Newton <>
Revised Revision 1 made by phadej at 2019-11-04T09:09:45Z
Category Control, Parallelism, Monads
Home page
Source repo head: git clone
Uploaded by SimonMarlow at 2019-11-04T08:35:42Z
Distributions Arch:0.3.5, Debian:, Fedora:0.3.5, FreeBSD:, LTSHaskell:, NixOS:0.3.5, Stackage:
Downloads 53650 total (518 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-11-04 [all 1 reports]


[Index] [Quick Jump]



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


Provide instances for the new par-classes generic Par programming interface.


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


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees