v18.0.0
Breaking changes:
-
The standard now gives implementations more freedom to optimize the
β-reduction ofwith
expressions, mainly in order to avoid pathological
time and space complexity when interpreting chainedwith
expressions, like:r with x.y = a with z = b
Along the way, this changes how
with
expressions are encoded in the
binary representation, which means that this is a technically breaking
change.In practice, you are unlikely to to be affected by this change, except for the
rare case where you protect an import with a semantic integrity check and the
contents of the protected import contain awith
expression where the
left-hand side of thewith
expression is abstract, such as this one:λ(x: { a : Natural}) → x with a = 42
Other than that, semantic integrity checks are not affected because the
interpreter will β-normalize away thewith
expression, which will then
not affect the final hash.
New features:
Other changes:
-
Fixes and improvements to the Prelude: