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

Reply via email to