Re: [Haskell-cafe] using IO monad in Iteratee

2011-04-02 Thread Bas van Dijk
On 1 April 2011 21:59, Dmitry Olshansky olshansk...@gmail.com wrote: Is it possible to change enumFile to using MonadIO class? No because it uses the control operation Control.Exception.finally :: IO a - IO b - IO a internally. You can't lift control operations with liftIO :: MonadIO m = IO a -

Re: [Haskell-cafe] using IO monad in Iteratee

2011-04-02 Thread Dmitry Olshansky
Very interesting, thanks. I didn't feel your classes yet... Do you think that provide these instances for Iteratee is possible? 2011/4/2 Bas van Dijk v.dijk@gmail.com On 1 April 2011 21:59, Dmitry Olshansky olshansk...@gmail.com wrote: Is it possible to change enumFile to using MonadIO

Re: [Haskell-cafe] using IO monad in Iteratee

2011-04-02 Thread John Millikin
Use enumHandle. enumFile deals with the common case of read from the filesystem in IO. It can't deal with general MonadIO monads because there'd be no guarantee that the handle would actually be closed (eg, an ErrorT IO might never run the cleanup). If you need a special monad, do something

Re: [Haskell-cafe] using IO monad in Iteratee

2011-04-02 Thread Ertugrul Soeylemez
Bas van Dijk v.dijk@gmail.com wrote: On 1 April 2011 21:59, Dmitry Olshansky olshansk...@gmail.com wrote: Is it possible to change enumFile to using MonadIO class? No because it uses the control operation Control.Exception.finally :: IO a - IO b - IO a internally. You can't lift control

Re: [Haskell-cafe] using IO monad in Iteratee

2011-04-02 Thread Dmitry Olshansky
Ertugrul, thanks for information. I've found several decisions for my real problem (using enumHandle and some more special decision). But I'll be have in mind about monad-control. 2011/4/3 Ertugrul Soeylemez e...@ertes.de Bas van Dijk v.dijk@gmail.com wrote: On 1 April 2011 21:59,

[Haskell-cafe] using IO monad in Iteratee

2011-04-01 Thread Dmitry Olshansky
Dear collegues, I use Iteratee with Monad Transformer stack in this way: type MyMonad a b = Iteratee a (StateT StateType IO) b I've wrote some Enumeratees using this type. Then I want to compose it with standard enumerator like Data.Enumerator.Binary.enumFile. But enumFile use IO monad instead

Re: [Haskell-cafe] using IO monad in Iteratee

2011-04-01 Thread wren ng thornton
On 4/1/11 3:59 PM, Dmitry Olshansky wrote: But enumFile use IO monad instead of MonadIO class. [...] Is it possible to change enumFile to using MonadIO class? Unless its changed significantly since I looked at it last (which it may well have), it's not possible. The problem is that what we'd