Make sameNat and sameSymbol proxy-polymorphic
authorBodigrim <andrew.lelechenko@gmail.com>
Wed, 20 Nov 2019 22:22:17 +0000 (17:22 -0500)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Thu, 5 Dec 2019 21:07:47 +0000 (16:07 -0500)
libraries/base/GHC/TypeLits.hs
libraries/base/GHC/TypeNats.hs
testsuite/tests/ghci/scripts/T9181.stdout

index 1108fd2..206e53d 100644 (file)
@@ -203,7 +203,7 @@ type family TypeError (a :: ErrorMessage) :: b where
 --
 -- @since 4.7.0.0
 sameSymbol :: (KnownSymbol a, KnownSymbol b) =>
-              Proxy a -> Proxy b -> Maybe (a :~: b)
+              proxy1 a -> proxy2 b -> Maybe (a :~: b)
 sameSymbol x y
   | symbolVal x == symbolVal y  = Just (unsafeCoerce Refl)
   | otherwise                   = Nothing
index 48428cb..da06627 100644 (file)
@@ -223,7 +223,7 @@ type family Log2 (m :: Nat) :: Nat
 --
 -- @since 4.7.0.0
 sameNat :: (KnownNat a, KnownNat b) =>
-           Proxy a -> Proxy b -> Maybe (a :~: b)
+           proxy1 a -> proxy2 b -> Maybe (a :~: b)
 sameNat x y
   | natVal x == natVal y = Just (unsafeCoerce Refl)
   | otherwise            = Nothing
index 388681e..c523624 100644 (file)
@@ -32,8 +32,7 @@ GHC.TypeLits.natVal' ::
   GHC.TypeNats.KnownNat n => GHC.Prim.Proxy# n -> Integer
 GHC.TypeLits.sameSymbol ::
   (GHC.TypeLits.KnownSymbol a, GHC.TypeLits.KnownSymbol b) =>
-  Data.Proxy.Proxy a
-  -> Data.Proxy.Proxy b -> Maybe (a Data.Type.Equality.:~: b)
+  proxy1 a -> proxy2 b -> Maybe (a Data.Type.Equality.:~: b)
 GHC.TypeLits.someNatVal :: Integer -> Maybe GHC.TypeNats.SomeNat
 GHC.TypeLits.someSymbolVal :: String -> GHC.TypeLits.SomeSymbol
 GHC.TypeLits.symbolVal ::
@@ -84,5 +83,4 @@ type (GHC.TypeNats.^) :: GHC.Types.Nat
 type family (GHC.TypeNats.^) a b
 GHC.TypeNats.sameNat ::
   (GHC.TypeNats.KnownNat a, GHC.TypeNats.KnownNat b) =>
-  Data.Proxy.Proxy a
-  -> Data.Proxy.Proxy b -> Maybe (a Data.Type.Equality.:~: b)
+  proxy1 a -> proxy2 b -> Maybe (a Data.Type.Equality.:~: b)