{-# LANGUAGE NoImplicitPrelude #-} module Precursor.Data.Bool ( -- * Booleans Bool(..) -- ** Operations , (&&) , (||) , not , otherwise , bool , ifThenElse ) where import Data.Bool hiding (bool) -- | Used for desugaring @if@ expressions. -- -- >>> ifThenElse True 1 0 -- 1 -- >>> ifThenElse False 1 0 -- 0 ifThenElse :: Bool -> a -> a -> a ifThenElse True t _ = t ifThenElse False _ f = f -- | Fold over a 'Bool'. -- -- >>> bool 1 0 True -- 1 -- >>> bool 1 0 False -- 0 bool :: a -> a -> Bool -> a bool t _ True = t bool _ f False = f