úÎW Rî4      !"#$%&'()*+,-./0123None+24B!A newtype wrapper that derives a ( instance from any type that is both a 4 instance and a 56 instance, such that boolean logic operations on the \ wrapper correspond to bitwise logic operations on the inner type. It should be noted that  is defined as  0 and  is defined as  .ŽIn addition, a number of other classes are automatically derived from the inner type. These classes were chosen on the basis that many other 4@ instances defined in base are also instances of these classes.lA class for boolean algebras. Instances of this class are expected to obey all the laws of boolean algebra.Minimal complete definition:  or ,  or  ,  or .6Truth 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) *The logical conjunction of several values. *The logical disjunction of several values.2The negated logical conjunction of several values.  =  .  IThe logical conjunction of the mapping of a function over several values.IThe logical disjunction of the mapping of a function over several values.2The negated logical disjunction of several values.  =  .  Injection from 6 into a boolean algebra. 789:;<=    789:;<=   None24 Conversion of values to 6. 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 falseA simple conditional operator with the 6 argument at the end (infixr 1).?A catamorphism (aka fold) for booleans. This is analogous to >, ?, and . The first argument is the false case, the second argument is the true case, and the last argument is the predicate value.oLisp-style conditionals. If no conditions match, then a runtime exception is thrown. Here's a trivial example: m signum x = cond [(x > 0 , 1 ) ,(x < 0 , -1) ,(otherwise , 0 )] Analogous to the f function with a default value supplied, which will be used when no condition in the list is matched.)Lisp-style conditionals generalized over @.. If no conditions match, then the result is A. This is a safer variant of .(Here's a highly contrived example using B:  h signum x = fromMaybe 0 . condPlus $ [(x > 0, 1 ) ,(x < 0, -1)] !Alternatively, you could use the /E operator from Hoare's ternary conditional choice operator, like so: R signum x = 0 <| condPlus [(x > 0, 1 ) ,(x < 0, -1)] 4Conditional composition. If the predicate is False, CŽ is returned instead of the second argument. This function, for example, can be used to conditionally add functions to a composition chain.°Composes a predicate function and 2 functions into a single 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 D . Unlike E ˆ, this is short-circuiting in the monad, such that only the predicate action and one of the remaining argument actions are executed.%Lifted inclusive disjunction. Unlike F (K), This function is short-circuiting in the monad. Fixity is the same as  (infixr 2).Lifted conjunction. Unlike F (K), this function is short-circuiting in the monad. Fixity is the same as  (infxr 3). Lifted boolean negation.!%Lifted boolean exclusive disjunction." lifted to D9. If no conditions match, a runtime exception is thrown.# lifted to D. If no conditions match, then A is returned.$A synonym for G .%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 D.,1Conditional monoid operator. If the predicate is H(, the second argument is replaced with I8. The fixity of this operator is one level higher than J. FIt can also be used to chain multiple predicates together, like this: )even (length ls) ?<> not (null ls) ?<> ls-OAn operator that allows you to write C-style ternary conditionals of the form:  p ? t ?? fxNote that parentheses are required in order to chain sequences of conditionals together. This is probably a good thing..GRight bracket of the conditional choice operator. If the predicate is K , returns L, otherwise it returns M the right-hand argument./HLeft bracket of the conditional choice operator. This is equivalent to B0A monadic variant of ..1A monadic variant of /.2Unicode rebinding of /. 3Unicode rebinding of ..% !"#$%&'()*+,-./0123NOPQ! !"#$%&'()*+,-./0123! !"#$,+-./0132%*&(')$ !"#$%&'()*+,-./0123NOPQ  ,-./0123R       !"#$%&'()*+,-./0123456789:;9<=>?@ABCDEFG9HI9JK9L9M9JN9OP9HQ9R9S9HT>?U9VW9VX>?Y9JZ9J[\]^_` cond-0.4.1.1Data.Algebra.BooleanControl.Conditional Data.Eithereither Control.MonadguardwhenunlessBitwisegetBitsBooleantruefalsenot&&||xor--><-->andornandallanynorfromBoolToBooltoBoolif'??boolcond condDefaultcondPlus?.selectifM<||><&&>notMxorMcondM condPlusM otherwiseMwhenMunlessMguardMselectM?<>?|><||>><<|⊲⊳base Data.BitsBitsGHC.NumNumghc-prim GHC.TypesBool$fBooleanBitwise $fBoolean(,) $fBooleanEndo $fBooleanDual $fBooleanAll $fBooleanAny $fBooleanBoolGHC.Basefoldr Data.Maybemaybe MonadPlusmzero fromMaybeControl.CategoryidMonadliftM3liftM2returnFalse Data.Monoidmempty<>TrueNothingJust $fToBoolDual $fToBoolAll $fToBoolAny $fToBoolBool