module Bool where

import Prelude ( Bool(True, False) )


ifThenElse :: Bool -> a -> a -> a ;
ifThenElse :: forall a. Bool -> a -> a -> a
ifThenElse Bool
True  a
y a
_ = a
y ;
ifThenElse Bool
False a
_ a
n = a
n ;


not :: Bool -> Bool ;
not :: Bool -> Bool
not Bool
False = Bool
True ;
not Bool
True = Bool
False ;

-- the same as (/=) for Bool
xor :: Bool -> Bool -> Bool ;
xor :: Bool -> Bool -> Bool
xor Bool
False Bool
True = Bool
True ;
xor Bool
True Bool
False = Bool
True ;
xor Bool
_ Bool
_ = Bool
False ;


infixr 3 && ;

(&&) :: Bool -> Bool -> Bool ;
Bool
False && :: Bool -> Bool -> Bool
&& Bool
_ = Bool
False ;
Bool
True && Bool
x = Bool
x ;


infixr 2 || ;

(||) :: Bool -> Bool -> Bool ;
Bool
True || :: Bool -> Bool -> Bool
|| Bool
_ = Bool
True ;
Bool
False || Bool
x = Bool
x ;