@@ -448,6 +448,31 @@ Guards are used to impose additional constraints inside a pattern using boolean-
449 [x:xs] | x % 2 == 0 -> 1 + evens xs
449 [x:xs] | x % 2 == 0 -> 1 + evens xs
450 [_:xs] -> evens xs
450 [_:xs] -> evens xs
454+For convenience, it is possible to declare a synonym for a type using the `type` keyword. Type synonyms can include type arguments.
458+ type Foo = { foo :: Number, bar Number }
460+ addFoo :: Foo -> Number
461+ addFoo = \o -> o.foo + o.bar
465+Properties on records can be updated using the following syntax: `o { key = value, ..., key = value }`
467+For example, the following function increments the `foo` property on its argument:
469+ incr = \o -> o { foo = o.foo + 1 }
471+The generated Javascript assumes the existence of a method called `Object.extend` such that `Object.extend(o, p)` takes an object `o` and generates a shallow copy of `o` including the properties of `p`. A simple JQuery implementation of this specification is
473+ Object.prootype.extend = function(o, p) {
474+ return $.extend({}, o, p);
452## Operators
477## Operators