SUSE Package Hub 15 one-click install Install ghc-bool-extras NOTE: This one-click installation requires that the SUSE Package Hub extension to already be enabled. See http://packagehub.suse.com/how-to-use/ for information on enabling the Package Hub extension If the extension is not enabled, this installation will fail while trying to enable an invalid repo. This package might depend on packages from SUSE Linux Enterprise modules. If those modules are not enabled, a package dependency error will be encountered. SUSE-PackageHub-15-Standard-Pool Package Hub 15 Dummy repo - this will fail ghc-bool-extras A fold function for Bool The `bool' function allows folding over boolean values. This is comparable to the `maybe' or `either' functions on their respective types. The `bool' function is a replacement for the build-in 'if then else'-syntax. However, since it is a function, it can be partially applied and passed around to higher order functions, like so: > ghci> :m + Data.Bool.Extras > ghci> let yesOrNo = bool "no" "yes" > ghci> map yesOrNo [True, False, True] > ["yes", "no", "yes"] Note that the arguments to `bool' are in the opposite order of the 'if then else'-syntax; First the false value, then the true value, and finally the boolean. SUSE Package Hub 15 one-click install Install ghc-bool-extras NOTE: This one-click installation requires that the SUSE Package Hub extension to already be enabled. See http://packagehub.suse.com/how-to-use/ for information on enabling the Package Hub extension If the extension is not enabled, this installation will fail while trying to enable an invalid repo. This package might depend on packages from SUSE Linux Enterprise modules. If those modules are not enabled, a package dependency error will be encountered. SUSE-PackageHub-15-Standard-Pool Package Hub 15 Dummy repo - this will fail ghc-bool-extras A fold function for Bool The `bool' function allows folding over boolean values. This is comparable to the `maybe' or `either' functions on their respective types. The `bool' function is a replacement for the build-in 'if then else'-syntax. However, since it is a function, it can be partially applied and passed around to higher order functions, like so: > ghci> :m + Data.Bool.Extras > ghci> let yesOrNo = bool "no" "yes" > ghci> map yesOrNo [True, False, True] > ["yes", "no", "yes"] Note that the arguments to `bool' are in the opposite order of the 'if then else'-syntax; First the false value, then the true value, and finally the boolean.