Since coming back from California, I’ve eliminated a few failures in downstream processing of erroneous code, corrected the output of a module function, fixed path resolution for library module imports, and eliminated a crash when processing constant declarations. None of these are major changes, but they are things which really ought to work, and it feels good to push changes upstream.
I’m not completely settled on the module architecture yet, but for the time being a module is a parameterless object constructor. The contents of the module are the object members. This suggests that a module could contain methods, as well as functions; one could think of the module as representing the platonic ideal of an uninitialized object instance, and all methods operating on it would fork their instances off from the original.
The specific module I’ve been trying to populate is called “string”, and its first job is to format strings from numbers so I can print them to the console.