Copyright | (c) The University of Glasgow 2001 |
---|---|

License | BSD-style (see the file libraries/base/LICENSE) |

Maintainer | libraries@haskell.org |

Stability | experimental |

Portability | portable |

Safe Haskell | Trustworthy |

Language | Haskell2010 |

The `Bool`

type and related functions.

# Booleans

data Bool :: *

## Operations

bool :: a -> a -> Bool -> a Source

Case analysis for the `Bool`

type.

evaluates to `bool`

x y p`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:

`>>>`

"bar"`bool "foo" "bar" True`

`>>>`

"foo"`bool "foo" "bar" False`

Confirm that

and `bool`

x y p`if p then y else x`

are
equivalent:

`>>>`

`let p = True; x = "bar"; y = "foo"`

`>>>`

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

`>>>`

`let p = False`

`>>>`

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

*Since: 4.7.0.0*