base-4.20.0.0: Core data structures and operations
Copyright(c) The University of Glasgow 2001
LicenseBSD-style (see the file libraries/base/LICENSE)
Maintainerlibraries@haskell.org
Stabilitystable
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Data.Bool

Description

The Bool type and related functions.

Synopsis

Booleans

data Bool Source #

Constructors

False 
True 

Instances

Instances details
Bits Bool

Interpret Bool as 1-bit bit-field

@since base-4.7.0.0

Instance details

Defined in GHC.Internal.Bits

FiniteBits Bool

@since base-4.7.0.0

Instance details

Defined in GHC.Internal.Bits

Data Bool

@since base-4.0.0.0

Instance details

Defined in GHC.Internal.Data.Data

Methods

gfoldl :: (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

@since base-2.01

Instance details

Defined in GHC.Internal.Enum

Enum Bool

@since base-2.01

Instance details

Defined in GHC.Internal.Enum

Storable Bool

@since base-2.01

Instance details

Defined in GHC.Internal.Foreign.Storable

Generic Bool 
Instance details

Defined in GHC.Internal.Generics

Associated Types

type Rep Bool

@since base-4.6.0.0

Instance details

Defined in GHC.Internal.Generics

type Rep Bool = D1 ('MetaData "Bool" "GHC.Types" "ghc-prim" 'False) (C1 ('MetaCons "False" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "True" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Bool -> Rep Bool x Source #

to :: Rep Bool x -> Bool Source #

SingKind Bool

@since base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Associated Types

type DemoteRep Bool 
Instance details

Defined in GHC.Internal.Generics

type DemoteRep Bool = Bool

Methods

fromSing :: forall (a :: Bool). Sing a -> DemoteRep Bool

Ix Bool

@since base-2.01

Instance details

Defined in GHC.Internal.Ix

Read Bool

@since base-2.01

Instance details

Defined in GHC.Internal.Read

Show Bool

@since base-2.01

Instance details

Defined in GHC.Internal.Show

Eq Bool 
Instance details

Defined in GHC.Classes

Methods

(==) :: Bool -> Bool -> Bool Source #

(/=) :: Bool -> Bool -> Bool Source #

Ord Bool 
Instance details

Defined in GHC.Classes

SingI 'False

@since base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

sing :: Sing 'False

SingI 'True

@since base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

sing :: Sing 'True

type DemoteRep Bool 
Instance details

Defined in GHC.Internal.Generics

type DemoteRep Bool = Bool
type Rep Bool

@since base-4.6.0.0

Instance details

Defined in GHC.Internal.Generics

type Rep Bool = D1 ('MetaData "Bool" "GHC.Types" "ghc-prim" 'False) (C1 ('MetaCons "False" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "True" 'PrefixI 'False) (U1 :: Type -> Type))
data Sing (a :: Bool) 
Instance details

Defined in GHC.Internal.Generics

data Sing (a :: Bool) where

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

not :: Bool -> Bool Source #

Boolean "not"

otherwise :: Bool Source #

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.

@since base-4.7.0.0

Examples

Expand

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