Initial typechecker prototype

Has some silly bugs to be addressed, notably being a bit liberal
with the use of function names in naked contexts

e.g. if (main) { // this still passes, for now :>:w