Safe-Infered A simple conditional function.  with the  ! argument at the end (infixr 1). JA catamorphism for the Bool type. This is analogous to foldr, maybe, and K either. The first argument is 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 . <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.  lifted to  . Unlike liftM3  , 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 liftM2 (%), This function is short-circuiting % in the monad. Fixity is the same as  (infixr 2). Lifted boolean and. Unlike liftM2 (), this function is 6 short-circuiting in the monad. Fixity is the same as  (infxr 3).  lifted to .. If no conditions match, a runtime exception  is thrown.  lifted to . If no conditions match, then    is returned.           cond-0.0 Control.Condif'??boolcondcondPlusselectifM<||><&&>condM condPlusMghc-prim GHC.TypesBoolbase Control.Monad MonadPlusmzeroGHC.BaseMonad GHC.Classes||&&