2009/11/12 Heinrich Apfelmus <apfelmus@quantentunnel.de>
Interestingly, this is different from  Control.Monad.State.Strict . The
latter never forces the state itself, just the pair constructor of the
(result,state) pair.


Yes. This bit me the first time I came across it. I think we need a Control.Monad.State.StrictOnState with strict behaviour on the state value. I notice this same underlying issue is coming up in more than one thread on these lists.

Matthew