summaryrefslogtreecommitdiff
path: root/compiler/GHC
diff options
context:
space:
mode:
authorKrzysztof Gogolewski <krzysztof.gogolewski@tweag.io>2020-10-10 17:03:02 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-10-15 04:30:27 -0400
commit51c4b851965abdece2f88f8e583256e15f3140fe (patch)
tree56c31e593bc53664514628d5bcdea822880b62d1 /compiler/GHC
parent0c4bfed849d454bee707fcb2989eb7c6339eaedb (diff)
downloadhaskell-51c4b851965abdece2f88f8e583256e15f3140fe.tar.gz
Remove Proxy# argument in Data.Typeable.Internal
No longer neccessary - TypeRep is now indexed, there is no ambiguity. Also fix a comment in Evidence.hs, IsLabel no longer takes a Proxy#.
Diffstat (limited to 'compiler/GHC')
-rw-r--r--compiler/GHC/HsToCore/Binds.hs10
-rw-r--r--compiler/GHC/Tc/Instance/Class.hs2
-rw-r--r--compiler/GHC/Tc/Types/Evidence.hs2
3 files changed, 6 insertions, 8 deletions
diff --git a/compiler/GHC/HsToCore/Binds.hs b/compiler/GHC/HsToCore/Binds.hs
index cb9df758d0..10534c782b 100644
--- a/compiler/GHC/HsToCore/Binds.hs
+++ b/compiler/GHC/HsToCore/Binds.hs
@@ -55,7 +55,6 @@ import GHC.Core.Coercion
import GHC.Core.Multiplicity
import GHC.Builtin.Types ( naturalTy, typeSymbolKind )
import GHC.Types.Id
-import GHC.Types.Id.Make(proxyHashId)
import GHC.Types.Name
import GHC.Types.Var.Set
import GHC.Core.Rules
@@ -1219,7 +1218,7 @@ dsEvTerm (EvFun { et_tvs = tvs, et_given = given
dsEvTypeable :: Type -> EvTypeable -> DsM CoreExpr
-- Return a CoreExpr :: Typeable ty
-- This code is tightly coupled to the representation
--- of TypeRep, in base library Data.Typeable.Internals
+-- of TypeRep, in base library Data.Typeable.Internal
dsEvTypeable ty ev
= do { tyCl <- dsLookupTyCon typeableClassName -- Typeable
; let kind = typeKind ty
@@ -1298,14 +1297,13 @@ ds_ev_typeable ty (EvTypeableTyLit ev)
= -- See Note [Typeable for Nat and Symbol] in GHC.Tc.Solver.Interact
do { fun <- dsLookupGlobalId tr_fun
; dict <- dsEvTerm ev -- Of type KnownNat/KnownSymbol
- ; let proxy = mkTyApps (Var proxyHashId) [ty_kind, ty]
- ; return (mkApps (mkTyApps (Var fun) [ty]) [ dict, proxy ]) }
+ ; return (mkApps (mkTyApps (Var fun) [ty]) [ dict ]) }
where
ty_kind = typeKind ty
-- tr_fun is the Name of
- -- typeNatTypeRep :: KnownNat a => Proxy# a -> TypeRep a
- -- of typeSymbolTypeRep :: KnownSymbol a => Proxy# a -> TypeRep a
+ -- typeNatTypeRep :: KnownNat a => TypeRep a
+ -- of typeSymbolTypeRep :: KnownSymbol a => TypeRep a
tr_fun | ty_kind `eqType` naturalTy = typeNatTypeRepName
| ty_kind `eqType` typeSymbolKind = typeSymbolTypeRepName
| otherwise = panic "dsEvTypeable: unknown type lit kind"
diff --git a/compiler/GHC/Tc/Instance/Class.hs b/compiler/GHC/Tc/Instance/Class.hs
index 639a9e6cf1..94a170692a 100644
--- a/compiler/GHC/Tc/Instance/Class.hs
+++ b/compiler/GHC/Tc/Instance/Class.hs
@@ -548,7 +548,7 @@ have this instance, implemented here by doTyLit:
instance KnownNat n => Typeable (n :: Nat) where
typeRep = typeNatTypeRep @n
where
- Data.Typeable.Internals.typeNatTypeRep :: KnownNat a => TypeRep a
+ Data.Typeable.Internal.typeNatTypeRep :: KnownNat a => TypeRep a
Ultimately typeNatTypeRep uses 'natSing' from KnownNat to get a
runtime value 'n'; it turns it into a string with 'show' and uses
diff --git a/compiler/GHC/Tc/Types/Evidence.hs b/compiler/GHC/Tc/Types/Evidence.hs
index 8060194d10..f44f10b3a6 100644
--- a/compiler/GHC/Tc/Types/Evidence.hs
+++ b/compiler/GHC/Tc/Types/Evidence.hs
@@ -1022,7 +1022,7 @@ instance Outputable EvTypeable where
-- overloaded-label dictionary to expose the underlying value. We
-- expect the 'Type' to have the form `IP sym ty` or `IsLabel sym ty`,
-- and return a 'Coercion' `co :: IP sym ty ~ ty` or
--- `co :: IsLabel sym ty ~ Proxy# sym -> ty`. See also
+-- `co :: IsLabel sym ty ~ ty`. See also
-- Note [Type-checking overloaded labels] in "GHC.Tc.Gen.Expr".
unwrapIP :: Type -> CoercionR
unwrapIP ty =