When a Given EqFrag l r ~ '() has a LHS that is a sko bound by the current (i.e. innermost) implication, we should demote it to a CDictCan so that ~ constraints can float out from under it.
This seems risky: when moving to a deeper level, what if GHC floats the ~ constraints before giving us a chance to turn the constraint back into a float-blocking EqFrag?
See #26 for context.
When a Given
EqFrag l r ~ '()
has a LHS that is asko
bound by the current (i.e. innermost) implication, we should demote it to aCDictCan
so that~
constraints can float out from under it.This seems risky: when moving to a deeper level, what if GHC floats the
~
constraints before giving us a chance to turn the constraint back into a float-blockingEqFrag
?