The unamb package

[Tags: bsd3, library]

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.

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

© 2008 by Conal Elliott; BSD3 license.

Contributions from: Luke Palmer, Spencer Janssen, Sterling Clover, Bertram Felgenhauer, Peter Verswyvelen.


[Skip to ReadMe]

Properties

Versions0.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
Change logNone available
Dependenciesbase (>=4), checkers, QuickCheck [details]
LicenseBSD3
Copyright(c) 2008 by Conal Elliott
AuthorConal Elliott
Maintainerconal@conal.net
Stabilityexperimental
CategoryConcurrency, Data, Other
Home pagehttp://haskell.org/haskellwiki/unamb
Executablestest-unamb
UploadedTue Jan 20 20:05:56 UTC 2009 by ConalElliott
DistributionsFreeBSD:0.2.5, NixOS:0.2.5
Downloads3071 total (99 in last 30 days)
Votes
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Flags

NameDescriptionDefaultType
testEnable testingDisabledAutomatic

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

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for unamb-0.1.9

unamb [1] contains the "unambiguous choice" operator "unamb" [2], which
wraps thread racing up in a purely functional, semantically simple
wrapper.  Given any two arguments u and v that agree unless bottom, the
value of unamb u v is the more terminating of u and v.  Operationally, the
value of unamb u v becomes available when the earlier of u and v does.
The agreement precondition ensures unamb's referential transparency.

unamb was originally a part of Reactive [3].  I moved it to its own
package in order to encourage experimentation.

Please share any comments & suggestions on the discussion (talk) page at
[1].

You can configure, build, and install all in the usual way with Cabal
commands.

  runhaskell Setup.lhs configure
  runhaskell Setup.lhs build
  runhaskell Setup.lhs install

References:

[1] http://haskell.org/haskellwiki/unamb
[2] http://conal.net/papers/simply-reactive
[3] http://haskell.org/haskellwiki/reactive