DONE: rework type system DONE: var decl with a type, but no value DONE: type casting DONE: remove optimization option DONE: conditionals DONE: if-then-else DONE: chained if-then-else DONE: optional block around a path if it's only one statement DONE: while-then DONE: for-then DONE: break and continue statements DONE: truthiness rethink DONE: string concat with the + operator DONE: increment & decrement operators DONE: store compound types in variables DONE: += -= *= /= %= operators DONE: && and || operators DONE: functions are invoked by calling their names DONE: function arguments can have specified types DONE: function returns can have specified types DONE: closures are explicitly supported TODO: functions take a set number of parameters TODO: functions can return a set number of values TODO: functions are first-class citizens TODO: functions last argument can be a rest parameter TODO: check for wrong number of function parameters TODO: Nullish types TODO: A way to check the type of a variable (typeOf keyword) TODO: a = b = c = 1; ? TODO: are compounds shallow or deep copies? TODO: Assertion-based test scripts TODO: standard library TODO: external runner library