darcs patch: Add justIf to Data.Maybe

Yitzchak Gale gale at sefer.org
Tue Aug 25 07:11:38 EDT 2009


Johan Tibell wrote:
> Are all these small little functions
> really worth it?
> They're trivially defined using the current API...
> let developers use composition to define the rest?

I completely agree with you. But in this case, even
though these functions really are trivial, they come
up *all* the time, and there is just something awkward
about them.

We certainly won't add more than one of the two:

justIf x b = guard b >> return x
check p x = guard (p x) >> return x

justIf = flip $ check . const
check = ap justIf

Perhaps the following is a bit of an explanation
of why they feel awkward:

<yitz> @pl \ p x -> guard (p x) >> return x
<lambdabot> (`ap` return) . (((>>) . guard) .)

<yitz> @pl \ p x -> if p x then return x else mzero
<lambdabot> flip flip mzero . (`ap` return) . (if' .)

Please note that if we choose to add justIf, it should
be spelled with an uppercase 'I' to be consistent with
Haskell conventions.

Thanks,
Yitz


More information about the Libraries mailing list