Control.Monad proposal: Add whenJust

Andreas Abel andreas.abel at
Thu May 16 09:44:35 CEST 2013


Currently something is broken since in the presence of

   import Data.Traversable (mapM)

the rest of the import list looks like this:

   import Prelude hiding (mapM)
   import Control.Monad.Identity hiding (mapM)
   import Control.Monad.State hiding (mapM)
   import Control.Monad.Error hiding (mapM)
   import Control.Monad.Reader hiding (mapM)

I don't know why all these modules export a mapM that only works for 
lists, rather than the generic mapM from Traversable.


On 16.05.13 9:22 AM, Ganesh Sittampalam wrote:
> -1 for the reasons given by Henning.
> Also more polymorphic types generally cause worse error messages.
> On 15/05/2013 17:14, Edward Kmett wrote:
>> Personally, I'd be all for just moving Foldable (and Traversable) into
>> the Prelude and retiring the monomorphic versions of the functions they
>> supply. Both abstractions have born the test of time, and its hard to
>> even envision Haskell without them at this point.
>> I'm somewhat leery that we coud get this proposal past the "but it makes
>> it harder to introduce people to Haskell" backlash, but I'd
>> wholeheartedly support it.
>> -Edward
>> On Wed, May 15, 2013 at 10:25 AM, Ben Millwood <haskell at
>> <mailto:haskell at>> wrote:
>>      On Wed, May 15, 2013 at 08:01:52AM +0300, Roman Cheplyaka wrote:
>>          * Ben Millwood <haskell at
>>          <mailto:haskell at>> [2013-05-12 10:11:01+0100]
>>              You can mostly minimise harm by only hiding specific things, but
>>              that's still more effort than I feel like I should have to
>>              go to. I
>>              think if we decide that the Foldable approach is useful
>>              enough to go
>>              in base, we should not make it a second-class citizen.
>>          ... except it is in base already :)
>>          Roman
>>      Yeah, sorry, to clarify: *since* we think it is important enough to
>>      go in base, we should make it easy to use as well.

Andreas Abel  <><      Du bist der geliebte Mensch.

Theoretical Computer Science, University of Munich
Oettingenstr. 67, D-80538 Munich, GERMANY

andreas.abel at

More information about the Libraries mailing list