Thanks for the feedback, Ralf - we agreed with Alastair a month or two
ago on a common set of interfaces for mutable variables and arrays (in
both IO and ST) etc., which I believe is included in the latest Hugs
snapshots. We simply didn't get around to doing it for 2.05, I'm
afraid - hopefully ghc-2.06 will have them included. (GlaExts stays, BTW).
The Idea is to freeze these interfaces (really!) once we're reasonably
sure that people like them.
We didn't discuss this, but perhaps a separate LazyST might be in
order.
--Sigbjorn
Ralf Hinze writes:
> Dear Alastair, dear Simon, dear Sigbjorn,
>
> as I see that you are currently striving for compatibility I'd like to
> mention some further discrepancies regarding the ST monad:
>
> o GHC: ST exports `MutableVar', `MutableArray', `newArray' ...
> except `freezeArray' which hides in `MutableArray'
> (furthermore one must additionally import Array,
> or was it Ix?)
> o Hugs: ST exports `MutVar' but not `MutArr' which resides
> in STArray
>
> It would be wonderful if both GHC and Hugs would use the same module
> structure and the same names.
>
> o GHC provides fixST, but not Hugs, IMHO `fixST' is sometimes really
> useful.
> o Neither makes ST a an instance of Functor.
>
> Cheers, Ralf