Hi everybody,
I'm playing around with concatMap in stream fusion (the vector package
to be exact).
concatMapM :: Monad m = (a-m (Stream m b)) - Stream m a - Stream m b
concatMapM f (Stream ...) = ...
I can get my concatMap to behave nicely and erase all Stream and Step
constructors but due to
I'm pleased to announce the first release of my new monad-levels
library (aka Yet Another Monad Transformer Library ;-)
http://hackage.haskell.org/package/monad-levels
I've written more about the motivations of the library here: