T8958.hs:1:31: warning: -XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language. TYPE SIGNATURES T8958.MkMap :: forall k v. [(k, v)] -> Map k v TYPE CONSTRUCTORS type role Map nominal representational newtype (Nominal k, Representational v) => Map k v = MkMap [(k, v)] class Nominal a type role Representational representational class Representational a COERCION AXIOMS axiom T8958.N:Map :: Map k v = [(k, v)] -- Defined at T8958.hs:13:1 INSTANCES instance [incoherent] Representational a -- Defined at T8958.hs:10:10 instance [incoherent] Nominal a -- Defined at T8958.hs:7:10 Dependent modules: [] Dependent packages: [base-4.10.0.0, ghc-prim-0.5.0.0, integer-gmp-1.0.0.1] ==================== Typechecker ==================== T8958.$tcMap = GHC.Types.TyCon 11173210732975605893## 6338753504925142034## T8958.$trModule (GHC.Types.TrNameS "Map"#) T8958.$tc'MkMap = GHC.Types.TyCon 10702411725744601909## 8660532495248702786## T8958.$trModule (GHC.Types.TrNameS "'MkMap"#) T8958.$tcRepresentational = GHC.Types.TyCon 17939208465687456137## 86959701938445380## T8958.$trModule (GHC.Types.TrNameS "Representational"#) T8958.$tc'C:Representational = GHC.Types.TyCon 6623579006299218188## 18041743345929230411## T8958.$trModule (GHC.Types.TrNameS "'C:Representational"#) T8958.$tcNominal = GHC.Types.TyCon 5048799062136959048## 4899664595355811926## T8958.$trModule (GHC.Types.TrNameS "Nominal"#) T8958.$tc'C:Nominal = GHC.Types.TyCon 13167926310643805202## 1726092271306256063## T8958.$trModule (GHC.Types.TrNameS "'C:Nominal"#) T8958.$trModule = GHC.Types.Module (GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "T8958"#) AbsBinds [a] [] {Exports: [T8958.$fRepresentationala <= $dRepresentational wrap: <>] Exported types: T8958.$fRepresentationala [InlPrag=CONLIKE] :: forall a. Representational a [LclIdX[DFunId], Unf=DFun: \ (@ a) -> T8958.C:Representational TYPE: a] Binds: $dRepresentational = T8958.C:Representational @ a Evidence: [EvBinds{}]} AbsBinds [a] [] {Exports: [T8958.$fNominala <= $dNominal wrap: <>] Exported types: T8958.$fNominala [InlPrag=CONLIKE] :: forall a. Nominal a [LclIdX[DFunId], Unf=DFun: \ (@ a) -> T8958.C:Nominal TYPE: a] Binds: $dNominal = T8958.C:Nominal @ a Evidence: [EvBinds{}]}