higherorder-0.0: Data/Bool/Higher.hs
module Data.Bool.Higher ((??),bool) where
import Data.Bool
(??) :: a -> a -> Bool -> a
(a ?? b) p | p = a
| not p = b
bool :: (a -> b) -> (a -> b) -> (a -> Bool) -> a -> b
bool true false p v = false v ?? true v $ p v