úÎ4©2e      Safe-InferedA simple conditional function.  with the ! argument at the end (infixr 1). CA catamorphism (aka fold) for the Bool type. This is analogous to  , , 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 )] )Lisp-style conditionals generalized over . If no conditions  match, then the result is . This is a safer variant of . Here'#s a highly contrived example using :   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 boolean or. Unlike  ( %), This function is short-circuiting % in the monad. Fixity is the same as   (infixr 2). Lifted boolean and. Unlike  (!), this function is 6 short-circuiting in the monad. Fixity is the same as ! (infxr 3). Lifted boolean negation.  lifted to .. If no conditions match, a runtime exception  is thrown.  lifted to . If no conditions match, then   is returned. A synonym for " #.  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 ). 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 *, otherwise it returns + the right-hand  argument. GLeft bracket of the conditional choice operator. This is equivalent to   Unicode rebinding of . Unicode rebinding of .     ,      !"#$"%&"%'"()"#*"%+"%,-.-/"#0 1"%2"%3"%4 5"67"68"9":;cond-0.2Control.Conditional Data.Maybemaybe Data.Eithereither fromMaybeif'??boolcondcondPlus?.selectifM<||><&&>notMcondM condPlusM otherwiseMwhenMunlessMguardMselectM?<>?|><|⊲⊳ghc-prim GHC.TypesBoolbaseGHC.Basefoldr Control.Monad MonadPlusmzeroControl.CategoryidMonadliftM3liftM2 GHC.Classes||&&returnTruewhenunlessguardFalse Data.Monoidmempty<>NothingJust