[Haskell-cafe] Doing without IORef
Brandon S. Allbery KF8NH
allbery at ece.cmu.edu
Thu Apr 3 11:58:13 EDT 2008
On Apr 3, 2008, at 6:03 , Jinwoo Lee wrote:
> Recently I wrote a code that uses readline library
> (System.Console.Readline).
> I had to maintain a state (file path) and do IO throughout the
> code, so I decided to use StateT monad.
>
> The problem was that in order to retrieve the current state (file
> path) inside the handler that had been registered by using bindKey
> function of readline, I had to resort back to using IORef rather
> than using the state stored in the StateT monad. It's because the
> handler for bindKey should have the type of Int -> Char -> IO Int.
You can hide the IORef inside the StateT... but this is one of
several cases where I *really* wish the callbacks were MonadIO a
=> ... -> a t.
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university KF8NH
More information about the Haskell-Cafe
mailing list