summaryrefslogtreecommitdiff
path: root/testsuite/tests/gadt/gadt-dim3.hs
blob: ae43147c928f2b75219c228729df8d5363a3fab3 (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
{-# LANGUAGE GADTs #-}

module ShouldSucceed5 where 


data T a where 
  C :: T Bool 
  D :: T Int 


data Y a where 
  E :: Y Bool 


-- should succeed, the first branch is simply inaccessible 
foo :: T Bool -> Bool 
foo (D) = True 
foo (C) = False 

-- should succeed, the branch is inaccessible and not even type checked
baz :: Y Int -> Int 
baz (E) = "dimitris!"   

-- should fail => it is an attempt to call an inaccessible branch
test = baz (E)