You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The fundamental issue here is that uom-plugin does not always apply the substitution from the simplified givens. In particular:
It isn't clear if we can do this correctly in the presence of flatten skolems. These are the reason for the "convert pack unpack" failure on 9.0. Luckily from 9.2 onwards, flatten skolems are gone.
When a constraint is not an equality between units of measure, but applying the substitution would make progress, the plugin does not currently do this.
For the latter it would be nice if we could use the simpify-givens stage to return a substitution that GHC would apply to the wanteds. However this is tricky because GHC's canonicaliser does not always behave as we would like. In particular, if we return a given [G] x[sk] ~ Base "m" then GHC will not substitute out x but will instead turn Base "m" occurrences (which are type family applications) into x[sk] occurrences!
The text was updated successfully, but these errors were encountered:
See #86 (comment).
The fundamental issue here is that
uom-plugin
does not always apply the substitution from the simplified givens. In particular:For the latter it would be nice if we could use the simpify-givens stage to return a substitution that GHC would apply to the wanteds. However this is tricky because GHC's canonicaliser does not always behave as we would like. In particular, if we return a given
[G] x[sk] ~ Base "m"
then GHC will not substitute outx
but will instead turnBase "m"
occurrences (which are type family applications) intox[sk]
occurrences!The text was updated successfully, but these errors were encountered: