Data.Bool
| Copyright | (c) The University of Glasgow 2001 |
|---|---|
| License | BSD-style (see the file libraries/base/LICENSE) |
| Maintainer | libraries@haskell.org |
| Stability | stable |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Contents
Description
The Bool type and related functions.
Booleans
Instances
| Bits Bool Source |
Interpret Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Bits Methods(.&.) :: Bool -> Bool -> Bool Source (.|.) :: Bool -> Bool -> Bool Source xor :: Bool -> Bool -> Bool Source complement :: Bool -> Bool Source shift :: Bool -> Int -> Bool Source rotate :: Bool -> Int -> Bool Source setBit :: Bool -> Int -> Bool Source clearBit :: Bool -> Int -> Bool Source complementBit :: Bool -> Int -> Bool Source testBit :: Bool -> Int -> Bool Source bitSizeMaybe :: Bool -> Maybe Int Source isSigned :: Bool -> Bool Source shiftL :: Bool -> Int -> Bool Source unsafeShiftL :: Bool -> Int -> Bool Source shiftR :: Bool -> Int -> Bool Source unsafeShiftR :: Bool -> Int -> Bool Source rotateL :: Bool -> Int -> Bool Source | |||||
| FiniteBits Bool Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Bits MethodsfiniteBitSize :: Bool -> Int Source countLeadingZeros :: Bool -> Int Source countTrailingZeros :: Bool -> Int Source | |||||
| Data Bool Source | Since: base-4.0.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Bool -> c Bool Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Bool Source toConstr :: Bool -> Constr Source dataTypeOf :: Bool -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Bool) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Bool) Source gmapT :: (forall b. Data b => b -> b) -> Bool -> Bool Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Bool -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Bool -> r Source gmapQ :: (forall d. Data d => d -> u) -> Bool -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Bool -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Bool -> m Bool Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Bool -> m Bool Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Bool -> m Bool Source | |||||
| Bounded Bool Source | Since: base-2.1 |
||||
| Enum Bool Source | Since: base-2.1 |
||||
| Storable Bool Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Foreign.Storable | |||||
| Generic Bool Source | |||||
Defined in GHC.Internal.Generics | |||||
| SingKind Bool | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Ix Bool Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Ix | |||||
| Read Bool Source | Since: base-2.1 |
||||
| Show Bool Source | Since: base-2.1 |
||||
| Eq Bool Source | |||||
| Ord Bool Source | |||||
| SingI 'False | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| SingI 'True | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| Lift Bool Source | |||||
| type DemoteRep Bool Source | |||||
Defined in GHC.Internal.Generics | |||||
| type Rep Bool Source | Since: base-4.6.0.0 |
||||
| data Sing (a :: Bool) Source | |||||
Operations
(&&) :: Bool -> Bool -> Bool infixr 3 Source
Boolean "and", lazy in the second argument
(||) :: Bool -> Bool -> Bool infixr 2 Source
Boolean "or", lazy in the second argument
Boolean "not"
otherwise is defined as the value True. It helps to make guards more readable. eg.
f x | x < 0 = ...
| otherwise = ...
bool :: a -> a -> Bool -> a Source
Case analysis for the Bool type. bool f t p evaluates to f when p is False, and evaluates to t when p is True.
This is equivalent to if p then t else f; 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 f t p and if p then t else f are equivalent:
>>> let p = True; f = "bar"; t = "foo" >>> bool f t p == if p then t else f True >>> let p = False >>> bool f t p == if p then t else f True
Since: base-4.7.0.0
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/Data-Bool.html