Usually in monad tutorials, the >>= operator for the list monad is defined as:

m >>= k = concat (map k m)  -- or concatMap k m

but in the GHC sources it's defined as:

m  >>=  k  =  foldr  ((++)  .  k)  []  m

As far as I can tell, this definition is equivalent to the previous one 
(correct me if I'm wrong), so I was wondering why this definition was chosen 
instead of the other one.  Does anybody know?

Thanks in advance,

Mike






_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to