[Haskell-cafe] ANNOUNCE: enumerator 0.4.8

Michael Snoyman michael at snoyman.com
Tue Mar 29 07:55:44 CEST 2011


On Tue, Mar 29, 2011 at 7:50 AM, John Millikin <jmillikin at gmail.com> wrote:
> Since the release, a couple people have sent in feature requests, so I'm
> going to put out 0.4.9 in a day or so.
>
> New features will be:
>
> - tryIO: runs an IO computation, and converts any exceptions into
> ``throwError`` calls (requested by Kazu Yamamoto)
>
> - checkContinue: encapsulates a common pattern (loop (Continue k) = ...)
> when defining enumerators
>
> - mapAccum and mapAccum: sort of like map and mapM, except the step function
> is stateful (requested by Long Huynh Huu)
>
> Anyone else out there sitting on a request? Please send them in -- I am
> always happy to receive them, even if they must be declined.
>
> ---
>
> Also, I would like to do a quick poll regarding operators.
>
> 1. It has been requested that I add operator aliases for joinI and joinE.
>
> 2. There have been complaints that the library defines too many operators
> (currently, 5).
>
> Do any existing enumerator users, or anyone for that matter, have an opinion
> either way?
>
> The proposed operators are:
>
> ----------------------------------------------------------------------
> infixr 0 =$
> infixr 0 $=
>
> (=$) :: Monad m => Enumeratee ao ai m b -> Iteratee ai m b -> Iteratee ao m
> b
> enum =$ iter = joinI (enum $$ iter)
>
> ($=) :: Monad m => Enumerator ao m (Step ai m b) -> Enumeratee ao ai m b ->
> Enumerator ai m b
> ($=) = joinE
> ----------------------------------------------------------------------

The operators sound good to me. My only request would be to put in a
usage example in the documentation. I'd be happy to write one if you'd
like. Personally, I think that =$ will *greatly* clean up my code.

Michael



More information about the Haskell-Cafe mailing list