RnFail055.hs:1:73: warning: -XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language. RnFail055.hs-boot:1:73: warning: -XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language. RnFail055.hs-boot:4: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:6:1: error: Type constructor ‘S1’ has conflicting definitions in the module and its hs-boot file Main module: type S1 a b = (a, b) Boot file: type S1 a b c = (a, b) The types have different kinds RnFail055.hs-boot:8:1: error: Type constructor ‘S2’ has conflicting definitions in the module and its hs-boot file Main module: type S2 a b = forall a1. (a1, b) Boot file: 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:12:1: error: Type constructor ‘T1’ has conflicting definitions in the module and its hs-boot file Main module: data T1 a b = T1 [b] [a] Boot file: data T1 a b = T1 [a] [b] The constructors do not match: The types for ‘T1’ differ RnFail055.hs-boot:14:1: error: Type constructor ‘T2’ has conflicting definitions in the module and its hs-boot file Main module: type role T2 representational nominal data Eq b => T2 a b = T2 a Boot file: type role T2 nominal phantom 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:16:11: error: ‘T3’ is exported by the hs-boot file, but not exported by the module RnFail055.hs-boot:17:12: error: ‘T3'’ is exported by the hs-boot file, but not exported by the module RnFail055.hs-boot:21:1: error: Type constructor ‘T5’ has conflicting definitions in the module and its hs-boot file Main module: data T5 a = T5 {field5 :: a} Boot file: data T5 a = T5 a The constructors do not match: The record label lists for ‘T5’ differ RnFail055.hs-boot:23:1: error: Type constructor ‘T6’ has conflicting definitions in the module and its hs-boot file Main module: data T6 = T6 Int Boot file: data T6 = T6 !Int The constructors do not match: The strictness annotations for ‘T6’ differ RnFail055.hs-boot:25:1: error: Type constructor ‘T7’ has conflicting definitions in the module and its hs-boot file Main module: type role T7 phantom data T7 a = forall a1. T7 a1 Boot file: 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:27:22: error: ‘RnFail055.m1’ is exported by the hs-boot file, but not exported by the module RnFail055.hs-boot:28:1: error: Class ‘C2’ has conflicting definitions in the module and its hs-boot file Main module: class C2 a b where m2 :: a -> b m2' :: a -> b {-# MINIMAL m2, m2' #-} Boot file: 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:29:1: error: Class ‘C3’ has conflicting definitions in the module and its hs-boot file Main module: class (Eq a, Ord a) => C3 a Boot file: class (Ord a, Eq a) => C3 a The class constraints do not match