Move let-expr resolvability check to Resolver Use numerical indices in resolutions Statically resolve global references Capitalize stuff to match common C# style Replace `with` keyword with `but` Figure out multiple-binding let-expr semantics Clean up visibility Inject error handling into parser and scanner Think about a way to hide record fields - Maybe a compile-time primitive for generating globally unique symbols? Would also need a syntax to use those symbols. - Use @ as an operator to convert a comptime-known string to an identifier Do I need impredicativity or can I just use rank-2 polymorphism? - I think rank-2 is decidable. - If impredicativity, use bidirectional typechecking with Quick Look. Equirecursive or isorecursive?