@hackage unamb0.2

Unambiguous choice

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

  • Installation

  • Dependencies (1)

  • Dependents (1)

    @hackage/lub
  • Package Flags

      test
       (off by default)

      Enable testing