summaryrefslogtreecommitdiff
path: root/testsuite/tests/ado/T13875.hs
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"