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
|
RnFail055.hs:2:73: warning:
-XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language.
RnFail055.hs-boot:2:73: warning:
-XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language.
RnFail055.hs-boot:5:1: error:
Identifier ‘f1’ has conflicting definitions in the module
and its hs-boot file
Main module: f1 :: Int -> Float
Boot file: f1 :: Float -> Int
The two types are different
RnFail055.hs-boot:7:1: error:
Type constructor ‘S1’ has conflicting definitions in the module
and its hs-boot file
Main module: type S1 :: * -> * -> *
type S1 a b = (a, b)
Boot file: type S1 :: * -> * -> * -> *
type S1 a b c = (a, b)
The types have different kinds
RnFail055.hs-boot:9:1: error:
Type constructor ‘S2’ has conflicting definitions in the module
and its hs-boot file
Main module: type S2 :: * -> * -> *
type S2 a b = forall a1. (a1, b)
Boot file: type S2 :: * -> * -> *
type S2 a b = forall b1. (a, b1)
The roles do not match.
Roles on abstract types default to ‘representational’ in boot files.
RnFail055.hs-boot:13:1: error:
Type constructor ‘T1’ has conflicting definitions in the module
and its hs-boot file
Main module: type T1 :: * -> * -> *
data T1 a b = T1 [b] [a]
Boot file: type T1 :: * -> * -> *
data T1 a b = T1 [a] [b]
The constructors do not match: The types for ‘T1’ differ
RnFail055.hs-boot:15:1: error:
Type constructor ‘T2’ has conflicting definitions in the module
and its hs-boot file
Main module: type role T2 representational nominal
type T2 :: * -> * -> *
data Eq b => T2 a b = T2 a
Boot file: type role T2 nominal phantom
type T2 :: * -> * -> *
data Eq a => T2 a b = T2 a
The roles do not match.
Roles on abstract types default to ‘representational’ in boot files.
The datatype contexts do not match
RnFail055.hs-boot:17:11: error:
‘T3’ is exported by the hs-boot file, but not exported by the module
RnFail055.hs-boot:18:12: error:
‘T3'’ is exported by the hs-boot file, but not exported by the module
RnFail055.hs-boot:22:1: error:
Type constructor ‘T5’ has conflicting definitions in the module
and its hs-boot file
Main module: type T5 :: * -> *
data T5 a = T5 {field5 :: a}
Boot file: type T5 :: * -> *
data T5 a = T5 a
The constructors do not match:
The record label lists for ‘T5’ differ
RnFail055.hs-boot:24:1: error:
Type constructor ‘T6’ has conflicting definitions in the module
and its hs-boot file
Main module: type T6 :: *
data T6 = T6 Int
Boot file: type T6 :: *
data T6 = T6 !Int
The constructors do not match:
The strictness annotations for ‘T6’ differ
RnFail055.hs-boot:26:1: error:
Type constructor ‘T7’ has conflicting definitions in the module
and its hs-boot file
Main module: type role T7 phantom
type T7 :: * -> *
data T7 a = forall a1. T7 a1
Boot file: type T7 :: * -> *
data T7 a = forall b. T7 a
The roles do not match.
Roles on abstract types default to ‘representational’ in boot files.
The constructors do not match: The types for ‘T7’ differ
RnFail055.hs-boot:28:22: error:
‘RnFail055.m1’ is exported by the hs-boot file, but not exported by the module
RnFail055.hs-boot:29:1: error:
Class ‘C2’ has conflicting definitions in the module
and its hs-boot file
Main module: type C2 :: * -> * -> Constraint
class C2 a b where
m2 :: a -> b
m2' :: a -> b
{-# MINIMAL m2, m2' #-}
Boot file: type C2 :: * -> * -> Constraint
class C2 a b where
m2 :: a -> b
{-# MINIMAL m2 #-}
The methods do not match: There are different numbers of methods
The MINIMAL pragmas are not compatible
RnFail055.hs-boot:30:1: error:
Class ‘C3’ has conflicting definitions in the module
and its hs-boot file
Main module: type C3 :: * -> Constraint
class (Eq a, Ord a) => C3 a
Boot file: type C3 :: * -> Constraint
class (Ord a, Eq a) => C3 a
The class constraints do not match
|