
On Tue, Mar 29, 2011 at 7:50 AM, John Millikin
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