Does anyone have any guidelines on when to use ST in an algorithm vs looking for a non-monadic, pure solution?
The reason I ask is that I have just implemented an Earley parser for class (in Python) and would like to re-implement it in Haskell. The algorithm makes heavy use of mutable state, some of which can clearly be refactored out, but some of which can't be done so clearly.
Thanks.
--