New features:
Bugfixes:
-
Consider fixity declarations during linting (#4462 by @ozkutuk)
-
Defer monomorphization for data constructors (#4376 by @purefunctor)
In
0.15.4
and earlier, the compiler monomorphizes type
constructors early, yielding the following type:> :t Nothing forall (a1 :: Type). Maybe a1 > :t { a : Nothing } forall (a1 :: Type). { a :: Maybe a1 }
With this change, the monomorphization introduced in
#835 is
deferred to only when it's needed, such as when constructors are
used as values inside of records.> :t Nothing forall a. Maybe a > :t { a : Nothing } forall (a1 :: Type). { a :: Maybe a1 }
Also as a consequence, record updates should not throw
ConstrainedTypeUnified
in cases such as:v1 :: { a :: Maybe Unit } v1 = { a : Just Unit } v2 :: { a :: Maybe Unit } v2 = let v3 = v1 { a = mempty } in v3
-
Update installer to version 0.3.5 to support ARM builds (#4468 and #4469 by @rhendric)
-
Fix exhaustiveness checking to account for case guards (#4467 by @purefunctor)
Internal:
-
Refactor module imports to make identifiers' origins obvious (#4451 by @JordanMartinez)
-
Require comments not to cause Haddock warnings (#4456 by @rhendric)