summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_fail/T7453.hs
blob: b79ac9a0b985db492b39ef7b408649667420a675 (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

module T7453 where

newtype Id a = Id { runId :: a }

-- cast1 :: a -> b
cast1 v = runId z
    where z :: Id t
          z = aux
              where aux = Id v

-- cast2 :: a -> b
cast2 v = z ()
    where z :: () -> t
          z = aux
              where aux = const v

-- cast3 :: a -> b
cast3 v = z
    where z :: t
          z = v
              where aux = const v

cast1' :: a -> b
cast1' = cast1

cast2' :: a -> b
cast2' = cast2

cast3' :: a -> b
cast3' = cast3