Safe-Inferred Algebra for Bool data type. +The first field of the pair represents the   value, ! the second field represents the   value. 'Defines the fold over a boolean value. +Returns its first argument when applied to  , - returns its second argument when applied to  . Comparable to the   or  % functions for their respective data  types. Boolean operation for monoids. +Returns its first argument when applied to  ,  returns   when applied to  . 5Boolean operation for monads, with a monoid default. *Return its first argument when applied to  ,  returns ` return mempty' when applied to  . Boolean operation for arrows. +Returns its first argument when applied to  ,  returns  when applied to  . "Boolean operation for categories. +Returns its first argument when applied to  ,  returns Control.Category. when applied to  . Boolean operation for monads. +Returns its first argument when applied to  ,  returns  when applied to  . Control.Monad. can be expressed in terms of  , like so: ) when :: Monad m => Bool -> m () -> m () # when b m = (const m `whenM` b) () Catamorphism for booleans. Anamorphism for booleans.       bool-extras-0.3.0Data.Bool.Extras BoolAlgebraboolmwhenmwhenMwhenAwhenCwhenMcataanaghc-prim GHC.TypesFalseTruebase Data.Maybemaybe Data.Eithereither Data.Monoidmempty Control.ArrowreturnAControl.CategoryidGHC.Basereturn Control.Monadwhen