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
|