ref: 35ed3c006dbbc7cf3dc0dfbff24ee87ea4ebf2f6
dir: /tests/Catch.hs/
module Catch(main) where
import Prelude
import Control.Exception
f :: [Int] -> Int
f (_:_) = 99
class C a where
m :: a -> Int
instance C ()
main :: IO ()
main = do
x <- catch (return ("o" ++ "k")) (\ _ -> return "what?")
putStrLn $ show x
y <- catch (do { error "bang!"; return "yyy" }) (\ (Exn s) -> return s)
putStrLn $ show y
z <- catch (do { print (f []); return "zzz" }) (\ (Exn s) -> return s)
putStrLn $ show z
w <- catch (do { print (m ()); return "www" }) (\ (Exn s) -> return s)
putStrLn $ show w