enum Bool
Error ReportCollection examples

Logical Boolean

An enum for Boolean true/false decisions.

# Methods

## method ACCEPTS

Used for smartmatch comparison. When the right side is `True` returns always `True`, when the right side of the match is `False` returns always `False`. In particular, `ACCEPTS` returns always the instance on which it is invoked, that is the right side of a smartmatch. As an example:

## routine succ

Returns `True`.

`succ` is short for "successor"; it returns the next enum value. Bool is a special enum with only two values, `False` and `True`. When sorted, `False` comes first, so `True` is its successor. And since `True` is the "highest" Bool enum value, its own successor is also `True`.

## routine pred

Returns `False`.

`pred` is short for "predecessor"; it returns the previous enum value. Bool is a special enum with only two values, `False` and `True`. When sorted, `False` comes first, so `False` is the predecessor to `True`. And since `False` is the "lowest" Bool enum value, its own predecessor is also `False`.

## routine enums

Returns a Hash of enum-pairs. Works on both the `Bool` type and any key.

## routine pick

Returns `True` or `False` if called without any argument. Otherwise returns `\$count` elements chosen at random (without repetition) from the `enum`. If `*` is passed as `\$count`, or `\$count` is greater than or equal to two, then both elements are returned in random order.

## routine roll

Returns `True` or `False` if called without any argument. Otherwise returns `\$count` elements chosen at random. Note that each random choice from the `enum` is made independently, like a separate coin toss where each side of the coin represents one of the two values of the `enum`. If `*` is passed as `\$count` an infinite Seq of `Bool`s is returned.

## routine Int

Returns the value part of the `enum` pair.

## routine Numeric

Returns the value part of the `enum` pair.

# Operators

## prefix ?

Coerces its argument to `Bool`.

## prefix so

Coerces its argument to `Bool`, has looser precedence than `prefix:<?> `.