Breaking Changes
- We have dropped support for GHC 7.8 and older (@hdgarrood)
Enhancements
-
Infer types with class constraints (@paf31)
For example, this simple code would previously have failed with a confusing
NoInstanceFound
error:add x y = x + y
The compiler will now infer the most general type, namely
forall a. (Semiring a) => a -> a -> a
.Note that constraints can only be inferred if they only mention type variables; inference of arbitrary types in constraints is not (yet) supported. So, for example, you would still have to write a type signature for a function which had a constraint such as
(MonadEff (console :: CONSOLE | eff) m)
. -
Default require path to
../
(@nwolverson)The previous default behavior was no require path prefix, which was confusing for some workflows. The new default is
../
, which is the prefix used inpurs-loader
. This option will be removed completely in 0.9. -
Expose hiding import suggestion in JSON (@nwolverson)
-
Error on missing
LICENSE
file or missing license field inbower.json
(@faineance)
Bug Fixes
- Fix #1916 (@bagl)
- Fix detection of single open import (@garyb)
- Fix
true
not being treated as an infallible guard (@garyb) - Fix pretty printer spinning (@garyb)
- Fix Windows build script (@garyb)
- Fix #1889, improve performance by avoiding whitespace operations on large strings (@paf31)
psc-ide
- Fix a crash related to error messages in the case splitting command (@kritzcreek)
- Escape regex characters when using the flex matcher (@kritzcreek)
- Adds
--help
commands to thepsc-ide
executables (@kritzcreek) - Catches EOF exceptions thrown in
acceptCommand
(@kritzcreek)
Other
- Switched to Trusty distribution for Travis (@garyb)
- @kritzcreek and @faineance worked on refactoring the compiler.
- The
optparse-applicative
dependency was updated to>= 0.12.1
(@stevejb71) - The
bower-json
dependency was bumped (@hdgarrood) - Better error message for
psc-publish
tests (@kritzcreek) - Use generic Literal in the AST (@garyb)