It’s time to leave the secondary, external structure of our programs behind. If you can treat the reflected code from a programming language like an abstract data structure, why can’t you just keep the source itself in a similarly abstracted data structure? Isn’t the structure of a program more similar to a graph, than a list? Besides the momentum of the past, what is keeping us tied to having our code in this format?

Is a Smalltalk-like approach the answer?