Bool package:rio

Case analysis for the Bool type. bool x y p evaluates to x when p is False, and evaluates to y when p is True. This is equivalent to if p then y else x; that is, one can think of it as an if-then-else construct with its arguments reordered.

Examples

Basic usage:
>>> bool "foo" "bar" True
"bar"

>>> bool "foo" "bar" False
"foo"
Confirm that bool x y p and if p then y else x are equivalent:
>>> let p = True; x = "bar"; y = "foo"

>>> bool x y p == if p then y else x
True

>>> let p = False

>>> bool x y p == if p then y else x
True