| Hugs 1.4 doesn't like the demos/ldfs.hs: it says there's a type error in
| the runST application. (Try `hugs ldfs'...) It that a bug?
Yes, there is a bug in the way that the runST construct is handled in the
current betas of Hugs 1.4. We hope to have this ironed out real soon now.
| (By the way, what's the type of runST?)
Like "if" or "where", "runST" is a keyword in a language construct, and
not a value that would have a type. There is, however, a typing rule for
the runST contruct, roughly something like:
A |- E : forall s . ST s a
----------------------------
A |- runST E : a
Unfortunately, the original Launchbury/Peyton Jones rules for typing runST
did not specify how class constraints/predicates in languages like Haskell
should be dealt with in typing runST. There are several different choices,
and the error you've seen is probably just an indication that we didn't
pick the most flexible option.
All the best,
Mark