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
At some point in the type and term adapters, type applications need to be reduced. E.g. if we have a type like Pair a = (a, a) and we are adapting a type Pair @ bigfloat, by the time we need to adapt terms like (42.0, 42.0), we need the reduced type (bigfloat, bigfloat). However, we don't want to reduce too early, as that will give us bloated type signatures in generated code. Delayed reduction solves that problem, but it fails when the argument type actually needs to be adapted: we end up with (float64, float64) (assuming bigfloat is not supported in the target language, but float64 is), whereas we want Pair float64 in the type signature.
For some reason, this problem didn't become obvious until recently, but it is cropping up in connection with the JSON decoding module.
The text was updated successfully, but these errors were encountered:
At some point in the type and term adapters, type applications need to be reduced. E.g. if we have a type like
Pair a = (a, a)
and we are adapting a typePair @ bigfloat
, by the time we need to adapt terms like(42.0, 42.0)
, we need the reduced type(bigfloat, bigfloat)
. However, we don't want to reduce too early, as that will give us bloated type signatures in generated code. Delayed reduction solves that problem, but it fails when the argument type actually needs to be adapted: we end up with(float64, float64)
(assumingbigfloat
is not supported in the target language, butfloat64
is), whereas we wantPair float64
in the type signature.For some reason, this problem didn't become obvious until recently, but it is cropping up in connection with the JSON decoding module.
The text was updated successfully, but these errors were encountered: