Principles
- Stack based (mostly?)
- Left to right execution
- Left to right (sequential) type checking
- whitespace delimited, (almost) any series of tokens should be able to be extracted into separate function (this might not be useful, possible or ergonomic but we'll see what happens)