@@ -58,15 +58,15 @@ The following code defines a `Person` data type and a function to generate a str
60data Person = Person
60data Person = Person
61−{ name :: String
61+ { name :: String
62−; age :: Number
62+ ; age :: Number
65extern itoa :: Number -> String
65extern itoa :: Number -> String
67showPerson :: Person -> String
67showPerson :: Person -> String
68showPerson = \p -> case p of
68showPerson = \p -> case p of
69−Person o -> o.name ++ ", aged " ++ itoa(o.age)
69+ Person o -> o.name ++ ", aged " ++ itoa(o.age)
72Line by line, this reads as follows:
72Line by line, this reads as follows:
@@ -81,18 +81,18 @@ The generated Javascript looks like this:
82```javascript
82```javascript
83var Person = function (value) {
83var Person = function (value) {
84−return { ctor: 'Person', value: value };
84+ return { ctor: 'Person', value: value };
87var showPerson = function (p) {
87var showPerson = function (p) {
88−return (function (_0) {
88+ return (function (_0) {
89−if (_0.ctor === "Person") {
89+ if (_0.ctor === "Person") {
90− var _1 = _0.value;
90+ var _1 = _0.value;
91− var o = _1;
91+ var o = _1;
92− return o.name ++ ", aged " ++ itoa(o.age);
92+ return o.name ++ ", aged " ++ itoa(o.age);
94−throw "Failed pattern match";
94+ throw "Failed pattern match";
@@ -588,6 +588,7 @@ extern pow :: (Number, Number) -> Number
589To declare a new type with no constructors, use `extern data` and provide the kind:
589To declare a new type with no constructors, use `extern data` and provide the kind:
591extern data IO :: * -> *
592extern data IO :: * -> *
593extern console :: {
594extern console :: {