Closed
Description
In #9140 we needed to temporarily remove code for approximating/"healing" types with GADT constraints, as it introduced unsoundness.
The root of the issue is more-or-less that given constraints F[X] <: G[X]; A <: B
we approximated F[A] ~ G[B]
, even though we should not as F/G might not be injective.
@smarter the code for approximating GADTs is almost a copy of IsFullyDefinedAccumulator. Given that, do you suppose there's an equivalent problem with type variable approximation (forcing)? If not, then why?