RULES: - true keywords - semicolon optional at the end of statements - idented block after -> is a lambda value - after `foo:', -> is optional CODE: bool then: foo() else: foobar then: bar() else: baz() n case: 1 do: foo() case: 2 do: bar() default: baz() var a = 0 [a<10] while: a += 1 doStuff(a) v each: x -> print(x) FLAT EQUIVALENT: #"then:else:"(bool, [foo();], [#"then:else:"(foobar, [bar();], [baz();])]); #"case:do:case:do:default:"(n, 1, [foo();], 2, [bar();], [baz();]); var a = 0; #"while:"([a<10], [a+=1; doStuff(a);]); #"each:"(v, [x -> print(x);]);