The parser was treating top-level functions definitions as a global variable definitions. I think I had planned to modify the language definition to treat top-level functions as ordinary variables, but I am not going to implement have to implement that later.
Fixed a bug, the assignment operator was not assigning to previously unassigned names because all assignments were being treated as updates. Updates require a previously assigned name, ordinary assignments do not.