Commit 7d8031ba authored by eir@cis.upenn.edu's avatar eir@cis.upenn.edu

Remove extraneous fundeps on (~)

parent aff5bb47
...@@ -54,7 +54,7 @@ import Data.Type.Bool ...@@ -54,7 +54,7 @@ import Data.Type.Bool
-- | Lifted, homogeneous equality. By lifted, we mean that it can be -- | Lifted, homogeneous equality. By lifted, we mean that it can be
-- bogus (deferred type error). By homogeneous, the two types @a@ -- bogus (deferred type error). By homogeneous, the two types @a@
-- and @b@ must have the same kind. -- and @b@ must have the same kind.
class a ~~ b => (a :: k) ~ (b :: k) | a -> b, b -> a class a ~~ b => (a :: k) ~ (b :: k)
-- See Note [The equality types story] in TysPrim -- See Note [The equality types story] in TysPrim
-- NB: All this class does is to wrap its superclass, which is -- NB: All this class does is to wrap its superclass, which is
-- the "real", inhomogeneous equality; this is needed when -- the "real", inhomogeneous equality; this is needed when
...@@ -62,6 +62,10 @@ class a ~~ b => (a :: k) ~ (b :: k) | a -> b, b -> a ...@@ -62,6 +62,10 @@ class a ~~ b => (a :: k) ~ (b :: k) | a -> b, b -> a
-- NB: Not exported, as (~) is magical syntax. That's also why there's -- NB: Not exported, as (~) is magical syntax. That's also why there's
-- no fixity. -- no fixity.
-- It's tempting to put functional dependencies on (~), but it's not
-- necessary because the functional-depedency coverage check looks
-- through superclasses, and (~#) is handled in that check.
instance {-# INCOHERENT #-} a ~~ b => a ~ b instance {-# INCOHERENT #-} a ~~ b => a ~ b
-- See Note [The equality types story] in TysPrim -- See Note [The equality types story] in TysPrim
-- If we have a Wanted (t1 ~ t2), we want to immediately -- If we have a Wanted (t1 ~ t2), we want to immediately
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment