blob: df35331a4aa195d92183799d5fcacf1d9e36e2fd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
{-# LANGUAGE ApplicativeDo #-}
module Main where
import Control.Exception
import Control.Monad
import Data.Maybe
import System.Exit
test0 :: Maybe ()
test0 = do
() <- Just undefined
() <- Just undefined
return ()
test1 :: Maybe ()
test1 = do
(_,_) <- Just undefined
return ()
test2 :: Maybe (Int,Int)
test2 = do
x <- return 1
() <- Just undefined
y <- return 2
return (x,y)
main = do
b <- (print (isJust test0) >> return True)
`catch` \ErrorCall{} -> return False
when b $ die "failed0"
b <- (print (isJust test1) >> return True)
`catch` \ErrorCall{} -> return False
when b $ die "failed1"
b <- (print (isJust test2) >> return True)
`catch` \ErrorCall{} -> return False
when b $ die "failed2"
|