6 data Result = Died Exception | Finished
8 -- Test stack overflow catching. Should print "Died: stack overflow".
11 let x = sum [1..100000] -- relies on sum being implemented badly :-)
12 result <- newEmptyMVar
13 forkIO (catchAllIO (x `seq` putMVar result Finished)
14 (\e -> putMVar result (Died e)))
15 res <- takeMVar result
17 Died e -> putStr ("Died: " ++ show e ++ "\n")
18 Finished -> putStr "Ok.\n"