Assets
8
Breaking Changes
None
Enhancements
-
psc-ideis now distributed with the compiler! (@kRITZCREEK)The
psc-ide-serverandpsc-ide-clientexecutables are now maintained and
distributed alongside the compiler. This will ensure that the externs file
format used bypsc-ide-serveris kept in sync with changes in the compiler. -
Source maps (@nwolverson)
Source maps can be generated using the
--source-mapsflag. See the
example repository for a full demonstration of source maps using Webpack. -
Operator aliases for data constructors (@garyb)
Aliases can now be defined for data constructors. For example:
data List a = Nil | Cons a (List a) infixr 6 Cons as :
Here, the
:operator can be used as a function to replace theConsconstructor,
and also in binders. -
EqandOrdderiving (@paf31)EqandOrdinstances can now be derived, using thederive instancesyntax:derive instance eqList :: (Eq a) => Eq (List a) derive instance ordList :: (Ord a) => Ord (List a)
-
Types are now inferred in
psc-docsandpsc-publish(@hdgarrood)If type annotations are missing in source files, they will be inferred by
psc-docsandpsc-publishbefore documentation generation. -
Initial version of new syntax for operator sections (#1846, @paf31)
Operator sections can now be written using underscores. For example:
decrementAll :: Array Int -> Array Int decrementAll = map (_ - 1)
which is equivalent to:
decrementAll :: Array Int -> Array Int decrementAll = map (\x -> x - 1)
Bug Fixes
-
Allow one open import without warning (@garyb)
Warnings for open imports were a pain point for some users after the 0.8 release.
This change allows a single open import without a warning. This is still safe
in the presence of dependency updates, and does not lead to ambiguity for editor
plugins searching for declaration sites.
Other
- @phadej has updated the Stack build to use the latest LTS and nightly builds.
- @izgzhen has refactored the PSCi code to be more readable.
- @hdgarrood has refactored the test suite.