Make `eqTypeIO` that sees through type families
Motivation
In my experience, the fact that eqType
only sees through type synonyms, but not type families, severely limits its usefulness.
It seems that it should be possible to implement eqTypeIO
that sees through type families, via rewrite_fam_app
and runTcInteractive
, although I haven't studied the details.
The type would be something like eqTypeIO :: HscEnv -> Type -> Type -> IO Bool
(or a different monad, if IO
is not a good fit).
Proposal
Implement eqTypeIO
, if possible.