github purescript/purescript v0.10.4

latest releases: v0.15.16-1, v0.15.16-0, v0.15.15...
7 years ago

New Features

Deriving Functor

(@LiamGoodacre, #2515)

The Functor type class can now be derived using the standard derive instance syntax:

newtype F a = F { foo :: Array a, bar :: a }

derive instance functorF :: Functor F 

User-Defined Kinds

(@LiamGoodacre, #2486)

Custom kinds can now be defined using the foreign import kind syntax:

foreign import kind SymbolList

Custom kinds can be ascribed to types using foreign import data declarations, as usual:

foreign import data Nil :: SymbolList
foreign import data Cons :: Symbol -> SymbolList -> SymbolList

Note that kind arguments are not supported.

User defined kinds can be imported/exported using the kind prefix, for example:

import Type.SymbolList (kind SymbolList)

Source Maps in psc-bundle

(@nwolverson)

psc-bundle will now generate source maps if the--source-maps flag is used.

Solving CompareSymbol and AppendSymbol

(@LiamGoodacre, #2511)

Support for the new purescript-typelevel-prelude library has been added to the compiler. CompareSymbol and AppendSymbol constraints will now be solved automatically for literal symbols.

New psc-package Features

(@paf31)

Two new commands have been added to psc-package to support library authors and package set curators.

  • The updates command (#2510) is used to update packages in the set.
  • The verify-set command (#2459) is used to verify the health of a package set. This command replicates the work done by the package-sets CI job, and can be used to test modifications to the package set locally before making a pull request.

Enhancements

  • Update orphan instance check to use covering sets when functional dependencies are involved (@LiamGoodacre)
  • Add --node-path option to PSCi to modify the path to the Node executable (#2507, @paf31)
  • Add package information to re-exports (@hdgarrood)
  • Add Prim docs to the library (#2498, @hdgarrood)

Bug Fixes

Other

Don't miss a new purescript release

NewReleases is sending notifications on new releases.