@@ -0,0 +1,85 @@
3+Many thanks to the [contributors](https://github.com/purescript/purescript/graphs/contributors) who helped with this release.
5+- Full language guide can be found [here](http://functorial.com/purescript).
6+- Try out the latest features [here](http://tryps.functorial.com).
12+ This experimental feature allows polymorphic types (introduced with `forall`) to appear on the left of a function arrow, or as the type of a record field, etc. For example:
14+ rank2 :: (forall a. a -> a) -> Number
15+ rank2 = \f -> if f true then f 1 else f 2
18+- Polymorphic Object Update
20+ Records now support member update in which the type of the field changes during the update. For example:
24+ update = \o -> o { prop = Wrap o.prop }
28+- Naked expressions as statements
30+ Naked expressions of type `{}` can now be used as statements.
32+- Split code generation into `AST -> JS` and `JS -> String`
34+ JavaScript generation is now split into the generation of a JavaScript AST, and the pretty-printing of that AST. This enables some optimizations, and a better JavaScript pretty-printer.
36+- Syntactic sugar for introducing curried functions
38+ Single-argument functions and multiple-argument functions can now be introduced in the same way:
40+ test = \a (b, c) d -> a + b + c + d
42+- JavaScript optimizations
44+ Some basic dead-variable elimination, inlining and eta-conversion are now performed on the generated JavaScript.
46+- Generate formatted Javascript
48+ The generated JavaScript is now formatted to be more readable. In particular, newlines get generated, and the correct indentation is used.
50+- More valid infix operators
52+ The colon and period characters are now valid in infix operator names.
56+- Avoid 'do' keyword for blocks
58+ `do` will be used later for Haskell-like monad comprehensions, so its previous use in introducing blocks of statements is now invalid. The `do` keyword is still reserved.
60+- Member foreign import syntax
62+ A small syntactic addition to the FFI, to support a common use case.
64+- Make FFI syntax match Haskell
66+ Use `foreign import` instead of `extern`.
68+- Make record declaration syntax match Haskell
69+- Simplify array binders
71+ There are now two types of array binders: cons binders `x : xs -> ...` and array binders `[x, y, z] -> ...` instead of the previously confusing `[x:xs]`.
73+- Array indexing syntax is ambiguous
75+ Array elements are now accessed using the `!!` operator: `arr !! 0` etc.
79+- Allow guards access to current scope
85+ There is now a basic prelude in the `libraries/prelude` folder.