cvs commit: hugs98/src Makefile.in MkDepend.in array.c builtin.c
iomonad.c observe.c prelude.h printer.c stmonad.c hugs98/src/unix
convert_libraries hugs98/src/bcc32 Makefile hugs98/src/djgpp2 Makefile
hugs98/src/dotnet Makefile hugs98/src/msc Makefile ...
ross@glass.cse.ogi.edu
ross@glass.cse.ogi.edu
Mon, 12 May 2003 01:48:17 -0700
ross 2003/05/12 01:48:16 PDT
Modified files:
src Makefile.in MkDepend.in array.c builtin.c
iomonad.c observe.c prelude.h printer.c
src/unix convert_libraries
src/bcc32 Makefile
src/djgpp2 Makefile
src/dotnet Makefile
src/msc Makefile
src/winhugs Makefile
libraries/Hugs IOExts.hs LazyST.hs Memo.hs ST.hs
Removed files:
src stmonad.c
Log:
Change the representation of the strict ST monad to
newtype ST s a = ST (forall r. (a -> r) -> r)
which is a generalization of the new representation of IO monad:
newtype IO a = IO ((a -> IOResult) -> IOResult)
This simplifies conversion between these monads, and enables them to
share monad and state primitives, so that stmonad.c is no longer required
(except for a couple of primitives to support Hugs.Memo, which have
moved to iomonad.c).
The lazy ST monad has the same representation as before, but is now
defined in Hugs.LazyST, with conversions to and from the strict ST monad.
We now use the fptools/libraries definitions of the operations on this
monad, using the corresponding operations on the strict monad and these
conversions. The resulting interface matches that of GHC.
Revision Changes Path
1.56 +1 -1 hugs98/src/Makefile.in
1.4 +38 -39 hugs98/src/MkDepend.in
1.8 +2 -58 hugs98/src/array.c
1.59 +2 -13 hugs98/src/builtin.c
1.49 +60 -2 hugs98/src/iomonad.c
1.2 +2 -2 hugs98/src/observe.c
1.45 +2 -4 hugs98/src/prelude.h
1.10 +3 -3 hugs98/src/printer.c
1.69 +2 -2 hugs98/src/unix/convert_libraries
1.11 +2 -2 hugs98/src/bcc32/Makefile
1.10 +2 -2 hugs98/src/djgpp2/Makefile
1.10 +39 -40 hugs98/src/dotnet/Makefile
1.35 +39 -40 hugs98/src/msc/Makefile
1.24 +39 -40 hugs98/src/winhugs/Makefile
1.14 +0 -4 hugs98/libraries/Hugs/IOExts.hs
1.8 +25 -98 hugs98/libraries/Hugs/LazyST.hs
1.3 +4 -11 hugs98/libraries/Hugs/Memo.hs
1.10 +43 -40 hugs98/libraries/Hugs/ST.hs