blob: 5d3c38c355d14fd85f96c033997e644afac6665c (
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
TYPE SIGNATURES
meth1 :: forall a. C1 a => a -> a
meth2 :: forall a b. (C2 a b, a ~ b) => a -> b
meth3 :: forall a b. C3 a b => a -> F3 b -> F3 b
meth4 :: forall a b. C4 a b => a -> F4 b -> F4 b
TYPE CONSTRUCTORS
class C1 a where
meth1 :: a -> a
{-# MINIMAL meth1 #-}
class C2 a b where
meth2 :: a ~ b => a -> b
{-# MINIMAL meth2 #-}
class C3 a b where
type family F3 b :: * open
meth3 :: a -> F3 b -> F3 b
{-# MINIMAL meth3 #-}
class C4 a b where
meth4 :: a -> F4 b -> F4 b
{-# MINIMAL meth4 #-}
type family F4 a :: * open
type Syn1 a = F4 a
type Syn2 a = [a]
COERCION AXIOMS
axiom Roles3.N:C1 :: C1 a = a -> a -- Defined at Roles3.hs:6:1
axiom Roles3.N:C2 ::
C2 a b = a ~ b => a -> b -- Defined at Roles3.hs:9:1
axiom Roles3.N:C3 ::
C3 a b = a -> F3 b -> F3 b -- Defined at Roles3.hs:12:1
axiom Roles3.N:C4 ::
C4 a b = a -> F4 b -> F4 b -- Defined at Roles3.hs:18:1
Dependent modules: []
Dependent packages: [base-4.10.0.0, ghc-prim-0.5.0.0,
integer-gmp-1.0.0.1]
==================== Typechecker ====================
Roles3.$tcC4
= GHC.Types.TyCon
6800596812149592130##
15513203864133461281##
Roles3.$trModule
(GHC.Types.TrNameS "C4"#)
0
krep
krep [InlPrag=[~]]
= GHC.Types.KindRepFun
(GHC.Types.KindRepTYPE GHC.Types.LiftedRep)
(GHC.Types.KindRepFun
(GHC.Types.KindRepTYPE GHC.Types.LiftedRep)
(GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint []))
Roles3.$tcC3
= GHC.Types.TyCon
5076086601454991970##
10299714674904836194##
Roles3.$trModule
(GHC.Types.TrNameS "C3"#)
0
krep
krep [InlPrag=[~]]
= GHC.Types.KindRepFun
(GHC.Types.KindRepTYPE GHC.Types.LiftedRep)
(GHC.Types.KindRepFun
(GHC.Types.KindRepTYPE GHC.Types.LiftedRep)
(GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint []))
Roles3.$tcC2
= GHC.Types.TyCon
7902873224172523979##
11840994447152209031##
Roles3.$trModule
(GHC.Types.TrNameS "C2"#)
0
krep
krep [InlPrag=[~]]
= GHC.Types.KindRepFun
(GHC.Types.KindRepTYPE GHC.Types.LiftedRep)
(GHC.Types.KindRepFun
(GHC.Types.KindRepTYPE GHC.Types.LiftedRep)
(GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint []))
Roles3.$tc'C:C2
= GHC.Types.TyCon
11218882737915989529##
9454910899374397367##
Roles3.$trModule
(GHC.Types.TrNameS "'C:C2"#)
2
krep
krep [InlPrag=[~]]
= GHC.Types.KindRepFun
(GHC.Types.KindRepFun
(GHC.Types.KindRepTyConApp
Data.Type.Equality.$tc~
((:)
(GHC.Types.KindRepTYPE GHC.Types.LiftedRep)
((:) (GHC.Types.KindRepVar 0) ((:) (GHC.Types.KindRepVar 1) []))))
(GHC.Types.KindRepFun
(GHC.Types.KindRepVar 0) (GHC.Types.KindRepVar 1)))
(GHC.Types.KindRepTyConApp
Roles3.$tcC2
((:) (GHC.Types.KindRepVar 0) ((:) (GHC.Types.KindRepVar 1) [])))
Roles3.$tcC1
= GHC.Types.TyCon
11013585501375994163##
16371608655219610659##
Roles3.$trModule
(GHC.Types.TrNameS "C1"#)
0
krep
krep [InlPrag=[~]]
= GHC.Types.KindRepFun
(GHC.Types.KindRepTYPE GHC.Types.LiftedRep)
(GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint [])
Roles3.$tc'C:C1
= GHC.Types.TyCon
4508088879886988796##
13962145553903222779##
Roles3.$trModule
(GHC.Types.TrNameS "'C:C1"#)
1
krep
krep [InlPrag=[~]]
= GHC.Types.KindRepFun
(GHC.Types.KindRepFun
(GHC.Types.KindRepVar 0) (GHC.Types.KindRepVar 0))
(GHC.Types.KindRepTyConApp
Roles3.$tcC1 ((:) (GHC.Types.KindRepVar 0) []))
Roles3.$trModule
= GHC.Types.Module
(GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "Roles3"#)
|