Version 0.3 (2022-12-07)
Fixes
- Fix polymorphic contracts unduly changing semantics by @ebresafegaga in #802
- Fix typechecking and unification in presence of flat types (aka opaque types, aka contracts) by @yannham in #766
- Fix polarity for polymorphic contract failure by @ebresafegaga in #831
- Fix panic when a row mismatch occurs while unifying row tails by @matthew-healy in #847
- Fix type to term conversion causing unbound type variables errors by @francois-caddet in #854
- Fix bad lexing of enum tags by @matthew-healy in #874
- Fix multiple recursive overriding by @yannham in #940
Language features
- Optional fields by @yannham in #815
- Numeral merge priorities by @yannham in #829
- Recursive merge priorities (or push-priorities, or leafy priorities) by @yannham in #845
- Change
switch
tomatch
and make it a proper function by @yannham in #970
Stdlib
- Statically type
string.join
by @matthew-healy in #946
Tooling
- Add record completion in the LSP by @ebresafegaga in
- Add completion for Nickel's stdlib in the LSP by @ebresafegaga in #918
Performances
- Lazy array contracts by @fuzzypixelz in #809
- Array slices by @fuzzypixelz in #776
- String interning for identifiers by @Acaccia in #835