[[Category:Packages]] == Abstract == '''unamb''' is a package containing the ''unambiguous choice'' operator unamb, 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. For more info about unamb and its use, see the paper ''[http://conal.net/papers/simply-reactive/ Simply Efficient Functional Reactivity]'', sections 10 and 11. unamb was originally a part of [[Reactive]]. I moved it to its own package in order to encourage experimentation. Besides this wiki page, here are more ways to find out about unamb: * Read [http://code.haskell.org/unamb/doc/html/ the library documentation]. * Get the code repository: '''darcs get http://code.haskell.org/unamb'''. * Install from [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/unamb Hackage]. * See the [[unamb/Versions| version history]]. Please leave comments at the [[Talk:unamb|Talk page]].