Data.Unamb

Purely functional unambiguous choice

Some useful special applications of unamb

Some related imperative tools

Exception thrown if neither value evaluates

data BothBottom