starting to wonder if i should just cheat and get all of the (def symbol value) statements from my shitty lisp implementation and then start evaluating so i dont have to think about carrying over the hashmap of functions defined by user in each tuple returned by each recursion haha. or even just store them in a file during runtime and update that file every time a new definition is made hahaha. this feels like cheating or avoiding the whole "dont mutate globals" because you cant in elixir