Michael Snoyman wrote: > On Wed, Dec 21, 2011 at 12:35 PM, Kannan Goundan <kan...@cakoose.com> > wrote: >> I'm using the Data.Enumerator library. I'm trying to write a "map" >> function that converts an Enumerator of one type to another. Something >> like: >> >> mapEnum :: Monad m => >> (a -> b) -> >> Enumerator a m r -> >> Enumerator b m r >> >> Any hints? >> >> (My exact use case is that I have a ByteString enumerator and I need to >> pass it to something that requires a Blaze.Builder enumerator.) >> >> >> _______________________________________________ Haskell-Cafe mailing >> list >> Haskell-Cafe@haskell.org >> http://www.haskell.org/mailman/listinfo/haskell-cafe > > You can use the Data.Enumerator.List.map function to create an > Enumeratee, and then the Data.Enumerator.$= operators to join them > together. Something like: > > mapEnum f enum = enum $= EL.map f
I tried something like that but the resulting type isn't quite what I'm looking for. mapEnum :: Monad m => (a -> b) -> Enumerator a m (Step b m r) -> Enumerator a m r (BTW, Michael, my exact use case is that I have ByteString enumerators, but your HTTP-Enumerator library wants Blaze.Builder enumerators :-) _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe