> I wonder if this output from 4.08.2 is sane:
> 
> $ ./main.exe
> IO Monad
> [3,4,1,3,8,0,0,1,0,1]
> ST Monad
> [51130784,51130912,51131040,51131168,51131296,51131424,5113155
> 2,51131680,511
> 31808,51131936]
> unsafePerformIO
> [4,4,4,4,4,4,4,4,4,4]

There was a bug in unsafeIOToST in 4.08.2 (and 5.00.2) which is the
cause of the strange output above.  The bug will be fixed in the
upcoming 5.02, or alternatively you can use the correct definition in
your code:

  import PrelST
  import PrelBase ( unsafeCoerce# )

  unsafeIOToST        :: IO a -> ST s a
  unsafeIOToST (IO io) = ST $ \ s -> (unsafeCoerce# io) s

Cheers,
        Simon

_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to