[1 of 4] Processing user [1 of 2] Compiling Map[sig] ( user\Map.hsig, nothing ) [2 of 2] Compiling User ( user\User.hs, nothing ) [2 of 4] Processing ordmap Instantiating ordmap [1 of 1] Compiling Map ( ordmap\Map.hs, T19244a.out\ordmap\Map.o ) [3 of 4] Processing eqmap Instantiating eqmap [1 of 1] Compiling Map ( eqmap\Map.hs, T19244a.out\eqmap\Map.o ) [4 of 4] Processing main Instantiating main [1 of 2] Including user[Map=ordmap:Map] Instantiating user[Map=ordmap:Map] [1 of 2] Compiling Map[sig] ( user\Map.hsig, T19244a.out\user\user-GzloW2NeDdA2M0V8qzN4g2\Map.o ) T19244a.bkp:22:9: error: [GHC-15843] • Type constructor ‘Key’ has conflicting definitions in the module and its hsig file. Main module: type Key :: * -> Constraint type Key = GHC.Classes.Ord :: * -> Constraint Hsig file: type Key :: forall {k}. k -> Constraint class Key k1 The types have different kinds. • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’. : error: [GHC-15843] • Type constructor ‘Map’ has conflicting definitions in the module and its hsig file. Main module: type role Map nominal representational type Map :: * -> * -> * data Map k a = Data.Map.Internal.Bin {-# UNPACK #-}Data.Map.Internal.Size !k a !(Map k a) !(Map k a) | Data.Map.Internal.Tip Hsig file: type role Map nominal representational type Map :: forall {k} {k1}. k -> k1 -> * data Map k2 a The types have different kinds. • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’. : error: [GHC-11890] • Identifier ‘lookup’ has conflicting definitions in the module and its hsig file. Main module: lookup :: GHC.Classes.Ord k => k -> Map k a -> GHC.Maybe.Maybe a Hsig file: lookup :: Key (*) k => k -> Map (*) (*) k a -> GHC.Maybe.Maybe a The two types are different. • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’. : error: [GHC-11890] • Identifier ‘insert’ has conflicting definitions in the module and its hsig file. Main module: insert :: GHC.Classes.Ord k => k -> a -> Map k a -> Map k a Hsig file: insert :: Key (*) k => k -> a -> Map (*) (*) k a -> Map (*) (*) k a The two types are different. • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’. : error: [GHC-11890] • Identifier ‘empty’ has conflicting definitions in the module and its hsig file. Main module: empty :: Map k a Hsig file: empty :: forall {k1} {k2} (k3 :: k1) (a :: k2). Map k1 k2 k3 a The two types are different. • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’.