Skip to content

v0.15.5

Compare
Choose a tag to compare
@purefunctor purefunctor released this 10 Oct 13:53
· 59 commits to master since this release
c109b23

New features:

  • Increases the max number of typed holes displayed from 5 up to 30 (#4341 by @JordanMartinez)

  • Add a compiler optimization for ST functions with up to 10 arity, similar to Effect optimizations. (#4386 by @mikesol)

  • Enable the compiler to derive Foldable and Traversable instances (#4392 by @rhendric)

    These instances follow the same rules as derived Functor instances.
    For details, see the PureScript language reference.

Bugfixes:

  • Qualify references to expressions floated to the top level of a module by the compiler (#4364 by @rhendric)

  • Fix replicated type hole suggestions due to malformed source spans (#4374 by @purefunctor)

    In PureScript 0.15.4, the following code will produce multiple entries in
    the type hole suggestions. This is due to malformed source spans that are
    generated when desugaring value declarations into case expressions.

    module Main where
    data F = X | Y
    f :: forall a. F -> a -> a
    f X b = ?help
    f Y b = ?help
  • Improve error spans for class and instance declarations (#4383 and #4391 by @purefunctor and @rhendric)

    This improves the error spans for class and instance
    declarations. Instead of highlighting the entire class or instance
    declaration when UnknownName is thrown, the compiler now
    highlights the class name and its arguments.

    Before:

    [1/2 UnknownName]
      5  class G a <= F a
         ^^^^^^^^^^^^^^^^
      Unknown type class G
    [2/2 UnknownName]
      7  instance G a => F a
         ^^^^^^^^^^^^^^^^^^^
      Unknown type class G

    After:

    [1/2 UnknownName]
      5  class G a <= F a
               ^^^
      Unknown type class G
    [2/2 UnknownName]
      7  instance G a => F a
                  ^^^
      Unknown type class G
  • Fix a bug where the compiler did not consider interactions of all functional dependencies in classes. (#4195 by @MonoidMusician)
    In particular, combinations of multiple parameters determining other parameter(s) were not handled properly,
    affecting overlapping instance checks and the selection of which parameters are fully determined.

Other improvements:

Internal: