Hi.
Short story ----------- fixST does not work in Win32 implementation. Hugs version ------------ I installed hugs from the Windows Installer package found at http://www.cse.ogi.edu/PacSoft/projects/Hugs/downloads/hugs98-Feb2001.msi The same problem seems to be present also in the February 2000 release. Specs ----- I am running Windows 2000 Professional (Service Pack 2) on an Athlon Thunderbird machine. Details ------- When using (strict) ST i get the following: ST> runST (fixST (\_ -> return 1)) Show_default_show (Make.Show (Show_default_show (Make.Show ({Interrupted!} ST> $$ () ST> $$ Program error: {_Gc Black Hole} ST> $$ () ST> $$ () ST> $$ 1 ST> $$ Unexpected signal C:\Source\Haskell> It is also possible to get a control stack overflow. Another fascinating example is the following: funny = do ones <- fixST (\xs -> return (1:xs)) return (take 10 ones) Main> runST funny Program error: Prelude.take: negative argument Main> After doing this a few times you get an Unexpected signal. The LazyST module is a little more well-behaved (?). Instead of the unexpected signal you get control stack overflow in the first example, and the second example always gives the program error. If you define the above examples as functions (non-updatable) test1 _ = fixST (\_ -> return 1) funny _ = do xs <- fixST (\xs -> return (1:xs)) return (take 10 xs) Main> runST (test1 ()) 1 Main> runST (funny ()) Program error: Prelude.take: negative argument The first example works while the second still gives an error. Now (of course) you get the same result every time. If you redefine funny using ($) in the fixST application it works a little better: funny' _ = do xs <- fixST $ \xs -> return (1:xs) return (take 10 xs) Main> runST (funny' ()) [1 Program error: Prelude.take: negative argument Best Regards Ulf Norell /----------------\ /-----------------------\ ( Ulf Norell | 031-18 68 74 ) ( Uppstigen 108-21 | 073-676 40 54 ) ( 412 80 G�teborg | [EMAIL PROTECTED] ) \----------------/ \-----------------------/ _______________________________________________ Hugs-Bugs mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/hugs-bugs
