diff options
author | Iavor S. Diatchki <iavor.diatchki@gmail.com> | 2014-06-29 17:37:34 -0700 |
---|---|---|
committer | Iavor S. Diatchki <iavor.diatchki@gmail.com> | 2014-06-29 17:37:34 -0700 |
commit | b7f9b6a7c800da98d5ba17c45df2a589cc999975 (patch) | |
tree | 48fa55a0b2e920b47f43942f583e8684975ab489 /libraries | |
parent | 6290eeadf61a40f2eb08d0fd7ef1f3b7f9804178 (diff) | |
download | haskell-b7f9b6a7c800da98d5ba17c45df2a589cc999975.tar.gz |
Eliminate `Unify.validKindShape` (#9242)
Diffstat (limited to 'libraries')
-rw-r--r-- | libraries/base/Data/Typeable/Internal.hs | 6 |
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 |