@@ -448,6 +448,31 @@ Guards are used to impose additional constraints inside a pattern using boolean-
448448 [] -> 0
449449 [x:xs] | x % 2 == 0 -> 1 + evens xs
450450 [_:xs] -> evens xs
451+
452+## Type Synonyms
453+
454+For convenience, it is possible to declare a synonym for a type using the `type` keyword. Type synonyms can include type arguments.
455+
456+For example:
457+
458+ type Foo = { foo :: Number, bar Number }
459+
460+ addFoo :: Foo -> Number
461+ addFoo = \o -> o.foo + o.bar
462+
463+## Record Updates
464+
465+Properties on records can be updated using the following syntax: `o { key = value, ..., key = value }`
466+
467+For example, the following function increments the `foo` property on its argument:
468+
469+ incr = \o -> o { foo = o.foo + 1 }
470+
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
472+
473+ Object.prootype.extend = function(o, p) {
474+ return $.extend({}, o, p);
475+ };
451476
452477## Operators
453478