TcTypeable: Try to reuse KindReps
[ghc.git] / testsuite / tests / roles / should_compile / Roles3.stderr
1 TYPE SIGNATURES
2   meth1 :: forall a. C1 a => a -> a
3   meth2 :: forall a b. (C2 a b, a ~ b) => a -> b
4   meth3 :: forall a b. C3 a b => a -> F3 b -> F3 b
5   meth4 :: forall a b. C4 a b => a -> F4 b -> F4 b
6 TYPE CONSTRUCTORS
7   class C1 a where
8     meth1 :: a -> a
9     {-# MINIMAL meth1 #-}
10   class C2 a b where
11     meth2 :: a ~ b => a -> b
12     {-# MINIMAL meth2 #-}
13   class C3 a b where
14     type family F3 b :: * open
15     meth3 :: a -> F3 b -> F3 b
16     {-# MINIMAL meth3 #-}
17   class C4 a b where
18     meth4 :: a -> F4 b -> F4 b
19     {-# MINIMAL meth4 #-}
20   type family F4 a :: * open
21   type Syn1 a = F4 a
22   type Syn2 a = [a]
23 COERCION AXIOMS
24   axiom Roles3.N:C1 :: C1 a = a -> a -- Defined at Roles3.hs:6:1
25   axiom Roles3.N:C2 ::
26     C2 a b = a ~ b => a -> b -- Defined at Roles3.hs:9:1
27   axiom Roles3.N:C3 ::
28     C3 a b = a -> F3 b -> F3 b -- Defined at Roles3.hs:12:1
29   axiom Roles3.N:C4 ::
30     C4 a b = a -> F4 b -> F4 b -- Defined at Roles3.hs:18:1
31 Dependent modules: []
32 Dependent packages: [base-4.10.0.0, ghc-prim-0.5.0.0,
33                      integer-gmp-1.0.0.1]
34
35 ==================== Typechecker ====================
36 Roles3.$tcC4
37   = GHC.Types.TyCon
38       6800596812149592130##
39       15513203864133461281##
40       Roles3.$trModule
41       (GHC.Types.TrNameS "C4"#)
42       0
43       $krep
44 Roles3.$tcC3
45   = GHC.Types.TyCon
46       5076086601454991970##
47       10299714674904836194##
48       Roles3.$trModule
49       (GHC.Types.TrNameS "C3"#)
50       0
51       $krep
52 Roles3.$tcC2
53   = GHC.Types.TyCon
54       7902873224172523979##
55       11840994447152209031##
56       Roles3.$trModule
57       (GHC.Types.TrNameS "C2"#)
58       0
59       $krep
60 Roles3.$tc'C:C2
61   = GHC.Types.TyCon
62       11218882737915989529##
63       9454910899374397367##
64       Roles3.$trModule
65       (GHC.Types.TrNameS "'C:C2"#)
66       2
67       $krep
68 Roles3.$tcC1
69   = GHC.Types.TyCon
70       11013585501375994163##
71       16371608655219610659##
72       Roles3.$trModule
73       (GHC.Types.TrNameS "C1"#)
74       0
75       $krep
76 Roles3.$tc'C:C1
77   = GHC.Types.TyCon
78       4508088879886988796##
79       13962145553903222779##
80       Roles3.$trModule
81       (GHC.Types.TrNameS "'C:C1"#)
82       1
83       $krep
84 $krep [InlPrag=[~]] = GHC.Types.KindRepVar 0
85 $krep [InlPrag=[~]] = GHC.Types.KindRepVar 1
86 $krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
87 $krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
88 $krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
89 $krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
90 $krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
91 $krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
92 $krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
93 $krep [InlPrag=[~]]
94   = GHC.Types.KindRepTyConApp
95       Data.Type.Equality.$tc~ ((:) $krep ((:) $krep ((:) $krep [])))
96 $krep [InlPrag=[~]]
97   = GHC.Types.KindRepTyConApp Roles3.$tcC2 ((:) $krep ((:) $krep []))
98 $krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep
99 $krep [InlPrag=[~]]
100   = GHC.Types.KindRepTyConApp Roles3.$tcC1 ((:) $krep [])
101 Roles3.$trModule
102   = GHC.Types.Module
103       (GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "Roles3"#)
104