
16 May
2011
16 May
'11
5:20 a.m.
On 16 May 2011 19:07, Michael Vanier
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?
My guess is to aid the foldr fusion RULEs... -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com