summaryrefslogtreecommitdiff
path: root/libraries
diff options
context:
space:
mode:
authorIavor S. Diatchki <iavor.diatchki@gmail.com>2014-06-29 17:37:34 -0700
committerIavor S. Diatchki <iavor.diatchki@gmail.com>2014-06-29 17:37:34 -0700
commitb7f9b6a7c800da98d5ba17c45df2a589cc999975 (patch)
tree48fa55a0b2e920b47f43942f583e8684975ab489 /libraries
parent6290eeadf61a40f2eb08d0fd7ef1f3b7f9804178 (diff)
downloadhaskell-b7f9b6a7c800da98d5ba17c45df2a589cc999975.tar.gz
Eliminate `Unify.validKindShape` (#9242)
Diffstat (limited to 'libraries')
-rw-r--r--libraries/base/Data/Typeable/Internal.hs6
1 files changed, 1 insertions, 5 deletions
diff --git a/libraries/base/Data/Typeable/Internal.hs b/libraries/base/Data/Typeable/Internal.hs
index e962752ad7..93b64ef9e9 100644
--- a/libraries/base/Data/Typeable/Internal.hs
+++ b/libraries/base/Data/Typeable/Internal.hs
@@ -263,7 +263,7 @@ type Typeable7 (a :: * -> * -> * -> * -> * -> * -> * -> *) = Typeable a
{-# DEPRECATED Typeable7 "renamed to 'Typeable'" #-} -- deprecated in 7.8
-- | Kind-polymorphic Typeable instance for type application
-instance (Typeable s, Typeable a) => Typeable (s a) where
+instance {-# INCOHERENT #-} (Typeable s, Typeable a) => Typeable (s a) where
typeRep# = \_ -> rep -- Note [Memoising typeOf]
where !ty1 = typeRep# (proxy# :: Proxy# s)
!ty2 = typeRep# (proxy# :: Proxy# a)
@@ -446,8 +446,6 @@ lifted types with infinitely many inhabitants. Indeed, `Nat` is
isomorphic to (lifted) `[()]` and `Symbol` is isomorphic to `[Char]`.
-}
--- See `Note [Kinds Containing Only Literals]` in `types/Unify.hs` for
--- an explanation of how we avoid overlap with `Typeable (f a)`.
instance KnownNat n => Typeable (n :: Nat) where
-- See #9203 for an explanation of why this is written as `\_ -> rep`.
typeRep# = \_ -> rep
@@ -465,8 +463,6 @@ instance KnownNat n => Typeable (n :: Nat) where
mk a b c = a ++ " " ++ b ++ " " ++ c
--- See `Note [Kinds Containing Only Literals]` in `types/Unify.hs` for
--- an explanation of how we avoid overlap with `Typeable (f a)`.
instance KnownSymbol s => Typeable (s :: Symbol) where
-- See #9203 for an explanation of why this is written as `\_ -> rep`.
typeRep# = \_ -> rep