Proposal: Data.Bool.implies

Niklas Hambüchen mail at nh2.me
Mon Jan 18 02:17:44 UTC 2016


I propose to add to Data.Bool:

    -- | Boolean implication.
    implies :: Bool -> Bool -> Bool
    implies True  x = x
    implies False _ = True

    infix 4 `implies` -- same as (==)

The request for this is quite old (see e.g.
http://neilmitchell.blogspot.de/2007/02/logical-implication-in-haskell.html).

I believe that by not trying to use an operator for it, and keeping it
in Data.Bool, we can avoid doing anything wrong.

A quick superficial search on Stackage Hoogle suggests that adding this
function should create no breakage (4 packages define their own function
called `implies`, none of them import Data.Bool).

`infix` instead of `infixl` or `infixr` to force you to bracket it; for
the same reason it has the same precedence as `==`.


More information about the Libraries mailing list