Proposal: Add concatMapM function (#2042)

Twan van Laarhoven twanvl at
Tue Jan 29 07:11:45 EST 2008

Twan van Laarhoven wrote:
> I have noticed that many projects include a 'concatMapM' function:
>   concatMapM :: (Monad m) => (a -> m [b]) -> [a] -> m [b]
> Trac ticket:
> Deadline for discussion: 2 weeks from now, January 28

Deadline <= now, so here is a summary of the discussion:

   1. In favor:
      - Twan van Laarhoven
      - Isaac Dupree
      - Don Stewart
      - Neil Mitchell

   2. Sidetracked with discussion of generalizations:
      - Yitzchak Gale
      - apfelmus
      - Ross Paterson

   3. Opposed to any additions to the base library:
      - Bulat Ziganshin

I think we should ignore the generalization to genericSuperDuperConcatMapMXYZ 
for now :). On the other hand, Bulat raises a valid point. Adding things to the 
base library might break some programs, although they will be easy enough to 
fix. But what do we do with Bulat's point in this specific case? I see two options:

   a. Don't add anything to the base libraries anymore, ever.

   b. Go ahead and add the function. Most users will see the change as they 
upgrade to ghc 6.10, which might break other minor things anyway.


More information about the Libraries mailing list