- The
Alternativetype class hierarchy was refactored. See here. --runtime-type-checkshas been removed. The recommended approach is to usepurescript-foreign. (@garyb)- The
Unittype is now used in the Prelude and core libraries to represent values containing no data. (@garyb) - The Prelude is no longer distributed as a separate file, but is embedded in the compiler executables. (@paf31)
- Newtypes are now supported using the
newtypekeyword. The runtime representation of a newtype is identical to that of the contained type. (@garyb) - Multiline string literals are now supported via triple-quote syntax, making FFI declarations much neater. (@phadej)
- Kind signatures on types and type constructor arguments are now supported. (@paf31)
- The
runFnNandmkFnNfamilies of functions are now inlined by the optimizer, making interop with JavaScript functions of multiple arguments much simpler. (@paf31) - Tail call optimization has been improved for functions using case expressions. (@paf31)
- Saturated calls to data constructors are now optimized. (@garyb)
- A new
Renamermodule now renames identifiers which shadow other names in scope, which greatly simplies code generation. (@garyb) pscinow provides the following new options::bto browse a module (@ardumont):sto show current imports or modules (@ardumont):kto find the kind of a type constructor (@5outh)
- The approach to checking whether a name is initialized in the generated JavaScript was simplified (@paf31)
- The dependency on the
PureScript_pathsmodule has been removed, which makes distribution via binaries simpler. (@paf31) - Nested
ifblocks now get optimized. (@garyb) - Generated code for type class dictionaries was simplified. (@garyb, @dylex)
- The code generator now inserts the version of
pscinto the file as a comment. (@co-dh) ()is now valid syntax, referring to the empty row. (@paf31)- The type checker will now display multiple errors for type errors in the same binding group. (@paf31)
- Imports can now specify hidden names using
import ... hiding ( ... )(@andreypopp)
- Binding group errors in type class members are now caught at compile time. (@dylex)
- Some errors related to type checking rows with duplicate labels were fixed. (@paf31)
- Some issues with the calculation of binding groups were fixed. (@paf31)
- Error messages for invalid case declarations are now generated. (@natefaubion)
- Some issues related to module exports were fixed. (@garyb)
pscinow checks imports for validity. (@Bogdanp)
- The
Alternativetype class hierarchy was refactored (@joneshf, @garyb) - The
exceptionslibrary no longer supports throwing exceptions of any type. - The following libraries have been moved to the core PureScript organisation: (@garyb)
purescript-transformerspurescript-freepurescript-constpurescript-identitypurescript-lazypurescript-distributivepurescript-bifunctorspurescript-contravariantpurescript-profunctorspurescript-maps
- The PureScript book is now available.
- The PureScript wiki is now the main resource for compiler and library documentation.