unamb: Unambiguous choice

[ bsd3, concurrency, data, library, other ] [ Propose Tags ]

unamb contains the "unambiguous choice" operator unamb, which wraps thread racing up in a purely functional, semantically simple wrapper. Originally a part of Reactive, I moved unamb to its own package in order to encourage experimentation.

Note: unamb correctly implements lub (least upper bound) for flat types only. I suggest using the lub package instead of unamb.

Project wiki page: http://haskell.org/haskellwiki/unamb

© 2008-2014 by Conal Elliott; BSD3 license.

Contributions from: Luke Palmer, Spencer Janssen, Sterling Clover, Bertram Felgenhauer, Peter Verswyvelen, Svein Ove Aas, and Edward Kmett. Please let me know if I've forgotten to list you.

Versions 0.0, 0.0.1, 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.2, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.7
Dependencies base (==4.*), checkers, QuickCheck (>=2) [details]
License BSD-3-Clause
Copyright (c) 2008-2014 by Conal Elliott
Author Conal Elliott
Maintainer conal@conal.net
Category Concurrency, Data, Other
Home page http://haskell.org/haskellwiki/unamb
Source repo head: git clone git://github.com/conal/unamb.git
Uploaded by ConalElliott at Fri Mar 16 01:04:19 UTC 2018
Distributions FreeBSD:0.2.5, NixOS:0.2.7
Executables test-unamb
Downloads 7478 total (55 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-03-16 [all 1 reports]
Hackage Matrix CI





Enable testing


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