On Wed, Dec 31, 2003 at 02:54:18AM +0900, Koji Nakahara wrote: > Hi, > > I think the problem is in the State Monad itself; > State Monad is lazy to compute its state. > > I am not a haskell expert, and there may be better ideas. But anyhow, > when I use these >>>= and >>> instead of >>= and >>, > your example runs fine. I hope it becomes some help. > > m >>>= k = State $ \s -> let (a, s') = runState m s > in s `seq` runState (k a) s' -- force evaluation of the > state > > m >>> k = m >>>= \_ -> k
Ahh, right. So I didn't have to use UnboxedState. StrictState would do. Best regards, Tom -- .signature: Too many levels of symbolic links _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe