[ ] Type checking should check nested fields - performant way/valuetype/knowntypes/gradual typing(options, records, enums, lists, dicts, etc) // stachu
[ ] TVariable
s should be tracked and matched up against other parts of the signature and return type when calling functions // stachu
[ ] allow local function definition
let myFn ... =
let x = 5
let x = fun a b -> x (a - 1) b // Error: x is an int not a function
let rec myOtherFn a b = // Local fns always rec
myOtherFn (a - 1) b // allowed. Compiles to Self (a - 1) b where Self is an option of EFnName
[ ] Refactor type alias stuff so that we implement it once (as opposed to one impl in each of interpreter, Json, and SqlCompiler, or spread across the codebase). Ideas: // stachu
[ ] check anything marked CLEANUP or TODO. Mark things as needed for alpha or public release or later. Do this once we’ve closed out type stuff, DError stuff, and Constant stuff
@joe.add
which appears innocent but secretly uses File.read