Beta versions of Hugs 1.4 have a bug in the way that they treat runST.
Some versions are more lenient than they should be, others are more
strict. A definition like the following:
| unsafeST x = runST x
should simply not be accepted. We are working (hard!) to find the best
fix for this, without breaking other changes that have been made to the
typechecker, and we will try to ensure that it is handled correctly in
the final release of 1.4. In the meantime (and I hope that this won't
be long), if you want a Hugs with a safe version of runST, then you'll
have to stick to 1.3.
All the best,
Mark