RULES: - brackets optional around root calls of statements - semicolon optional at the end too - newline before `foo: bar' is implicit comma - idented block after -> is a lambda value - after `foo:', -> is optional CODE: if bool then: foo() else: if foobar then: bar() else: baz() switch n case: 1 do: foo() case: 2 do: bar() defaultDo: baz() var a = 0 while [a<10] do: a += 1 doStuff(a) forEach v do: x -> print(x) FLAT EQUIVALENT: if(bool, (#then:,[foo();]), (#else:, [if(foobar, (#then, [bar();]), (#else,[baz();]))])); switch(n, (#case:, 1), (#do: [foo();]), (#case:, 2), (#do: [bar();]), (#defaultDo: [baz();])); var a = 0; while([a<10], (#do:, [a+=1; doStuff(a);])); forEach(v, (#do, [x -> print(x);]));