Proposal: add Control.Monad.whenJust ∷ (Monad m) ⇒ Maybe α→(α→ m ()) → m ()

Liyang HU haskell.org at liyang.hu
Wed Nov 30 17:51:03 CET 2011


Mikhail Vorozhtsov <mikhail.vorozhtsov <at> gmail.com> writes:
> On 11/30/2011 02:11 PM, Liyang HU wrote:
> >> whenJust :: (Monad m) =>  Maybe a ->  (a ->  m ()) ->  m ()
> We already have it. See Data.Foldable.forM_

Good point! Hadn't crossed my mind that Maybe is Foldable; kind of obvious 
really.

Evan Laforge <qdunkan <at> gmail.com> writes:
> I prefer it to Foldable.forM_ because it's explicit about the type it
> takes, forM_ sounds too much like a loop.

Well, forM_ is just mapM_ flipped, and shurely we map over Maybe all the time?

I'm much less inclined towards my proposal now, with the possible proviso that 
some people might find Foldable confusing. Also, if we go down the route of 
whenJust, why not whenLeft and whenRight (and so on) too?

Cheers,
/Liyang




More information about the Libraries mailing list