Basic variable range support. Needs better printing and more variable types.
Slave to the linter...
Finally compiles. Large refactor. Unstable