@@ -83,89 +83,3 @@ Many thanks to the [contributors](https://github.com/purescript/purescript/graph
83- A bug which caused the optimizer to break generated Javascript for mutually recursive values was fixed.
83- A bug which caused the optimizer to break generated Javascript for mutually recursive values was fixed.
84- Some `Prelude` functions which called methods in the standard Javascript library have been fixed.
84- Some `Prelude` functions which called methods in the standard Javascript library have been fixed.
88−Many thanks to the [contributors](https://github.com/purescript/purescript/graphs/contributors) who helped with this release.
90−- Full language guide can be found [here](http://functorial.com/purescript).
91−- Try out the latest features [here](http://tryps.functorial.com).
97− 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:
99− rank2 :: (forall a. a -> a) -> Number
100− rank2 = \f -> if f true then f 1 else f 2
103−- Polymorphic Object Update
105− Records now support member update in which the type of the field changes during the update. For example:
107− data Wrap a = Wrap a
109− update = \o -> o { prop = Wrap o.prop }
113−- Naked expressions as statements
115− Naked expressions of type `{}` can now be used as statements.
117−- Split code generation into `AST -> JS` and `JS -> String`
119− 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.
121−- Syntactic sugar for introducing curried functions
123− Single-argument functions and multiple-argument functions can now be introduced in the same way:
125− test = \a (b, c) d -> a + b + c + d
127−- JavaScript optimizations
129− Some basic dead-variable elimination, inlining and eta-conversion are now performed on the generated JavaScript.
131−- Generate formatted Javascript
133− The generated JavaScript is now formatted to be more readable. In particular, newlines get generated, and the correct indentation is used.
135−- More valid infix operators
137− The colon and period characters are now valid in infix operator names.
141−- Avoid 'do' keyword for blocks
143− `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.
145−- Member foreign import syntax
147− A small syntactic addition to the FFI, to support a common use case.
149−- Make FFI syntax match Haskell
151− Use `foreign import` instead of `extern`.
153−- Make record declaration syntax match Haskell
154−- Simplify array binders
156− 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]`.
158−- Array indexing syntax is ambiguous
160− Array elements are now accessed using the `!!` operator: `arr !! 0` etc.
164−- Allow guards access to current scope
170− There is now a basic prelude in the `libraries/prelude` folder.