+ Refactor ast.c and give each operation its own proc, i.e. instead of huge node_type switches call a corresponding procedure. Should help with debugging, stack traces etc. + Add const and volatile attributes to types + Add const to procedures + Add external to procedures, essentially disables templates and name mangling, to be used to interface with C + Come up with some better file extension, .cu seems to be used by cuda - In fact Copper is already taken :( + Build new type system (current one build on top of AST fucking sucks) + Build the consteval stuff + Use built in location tracking with @$ in bison? OPTIMIZATIONS: + Use hashmaps or something similar for lookups for types and calls + Output one procedure at a time through the backend, would allow us to free actualized procs immediately instead of keeping them around in memory + Simplify IDs to just char arrays, would save on memory + Types can just be types, they maybe don't need to be full on AST nodes