Add ifThenElse and (?) to Data.Bool

winter drkoster at
Thu Nov 17 02:43:16 UTC 2016

It seems this’s a very old request, see <>. I’d like to see following:

ifThenElse :: Bool -> a -> a -> a
ifThenElse True  x _ = x
ifThenElse False _ y = y

infixr 1 ?
(?) :: Bool -> a -> a -> a
(?) = ifThenElse

in Date.Bool module, it will have advantages that:

+ It’s more composable than syntax.  
+ Write (xxx ? yyy $ zzz) instead of (if xxx then yyy else zzz) is more consistent with (f . g $ x) style, and save key strokes.
+ In module with RebindableSyntax enabled, you can import ifThenElse to get default behavior.

Whether or not to be exported by Prelude is another question, but Data.Bool seems a good place to start with.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Libraries mailing list