úÎIEV.      !"#$%&'()*+,-None KA class for boolean algebras. Instances of this class are expected to obey " all the laws of boolean algebra. Minimal complete definition:  or ,  or  ,  or . 7Truth value, defined as the top of the bounded lattice ;False value, defined as the bottom of the bounded lattice. Logical negation. Logical conjunction. (infxr 3) *Logical inclusive disjunction. (infixr 2) *Logical exclusive disjunction. (infixr 1)  Logical implication. (infixr 1) "Logical biconditional. (infixr 1) Injection from . into a boolean algebra.  /01234     /01234 Safe-Infered Conversion of values to ..  Instances of   that are also ! should obey the following laws:  ' p || q = if toBool p then true else q ( p && q = if toBool p then q else false A simple conditional operator  with the .! argument at the end (infixr 1). >A catamorphism (aka fold) for booleans. This is analogous to  5, 6, and . The first argument is N the false case, the second argument is the true case, and the last argument  is the predicate value. JLisp-style conditionals. If no conditions match, then a runtime exception  is thrown. Here's a trivial example:  % signum x = cond [(x > 0 , 1 )  ,(x < 0 , -1) $ ,(otherwise , 0 )] Analogous to the ) function with a default value supplied, > which will be used when no condition in the list is matched. )Lisp-style conditionals generalized over 7. If no conditions  match, then the result is 8. This is a safer variant of . Here'#s a highly contrived example using 9:   5 signum x = fromMaybe 0 . condPlus $ [(x > 0, 1 ) + ,(x < 0, -1)] !Alternatively, you could use the ) operator from Hoare' s ternary ' conditional choice operator, like so:   signum x = 0 <| condPlus [(x > 0, 1 )  ,(x < 0, -1)] 4Conditional composition. If the predicate is False, : is returned M instead of the second argument. This function, for example, can be used to 5 conditionally add functions to a composition chain. <Composes a predicate function and 2 functions into a single L function. The first function is called when the predicate yields True, the ) second when the predicate yields False. Note that after importing Control.Monad.Instances,  becomes a  special case of .  lifted to ; . Unlike <  , this is O short-circuiting in the monad, such that only the predicate action and one of . the remaining argument actions are executed. %Lifted inclusive disjunction. Unlike = (), This function is 6 short-circuiting in the monad. Fixity is the same as  (infixr 2). Lifted conjunction. Unlike = (), this function is 6 short-circuiting in the monad. Fixity is the same as  (infxr 3). Lifted boolean negation. &Lifted boolean exclusive disjunction.  lifted to ;.. If no conditions match, a runtime exception  is thrown.  lifted to ;. If no conditions match, then 8  is returned. A synonym for > . Generalization of  Generalization of  !Generalization of  " A variant of   with a monadic predicate. # A variant of ! with a monadic predicate. $ A variant of  with a monadic predicate. % lifted to ;. &1Conditional monoid operator. If the predicate is ? , the second  argument is replaced with @%. The fixity of this operator is one  level higher than A. GIt can also be used to chain multiple predicates together, like this: + even (length ls) ?<> not (null ls) ?<> ls 'EAn operator that allows you to write C-style ternary conditionals of  the form:   p ? t ?? f BNote that parentheses are required in order to chain sequences of 7 conditionals together. This is probably a good thing. (CRight bracket of the conditional choice operator. If the predicate  is ? , returns B, otherwise it returns C the right-hand  argument. )GLeft bracket of the conditional choice operator. This is equivalent to  9 *A monadic variant of (. +A monadic variant of ). ,Unicode rebinding of ). -Unicode rebinding of (. %  !"#$%&'()*+,-DEFG!  !"#$%&'()*+,-! &%'()*+-,$ "!#$  !"#$%&'()*+,-DEFGH       !"#$%&'()*+,-./0123456789:;<=><?@<A<B<?C<DE<=F<G<H<=I34J<KL<KM<?N<?OPQRSTcond-0.4Data.Algebra.BooleanControl.Conditional Data.Eithereither Control.MonadguardwhenunlessBitwisegetBitsBooleantruefalsenot&&||xor--><-->fromBoolToBooltoBoolif'??boolcond condDefaultcondPlus?.selectifM<||><&&>notMxorMcondM condPlusM otherwiseMwhenMunlessMguardMselectM?<>?|><||>><<|⊲⊳ghc-prim GHC.TypesBool$fBooleanBitwise $fBooleanEndo $fBooleanDual $fBooleanAll $fBooleanAny $fBooleanBoolbaseGHC.Basefoldr Data.Maybemaybe MonadPlusmzero fromMaybeControl.CategoryidMonadliftM3liftM2returnFalse Data.Monoidmempty<>NothingJust $fToBoolDual $fToBoolAll $fToBoolAny $fToBoolBool