The existing documentation is helpful, but having done some hacking on the system, I can see that there are many things that ought to be described in more detail, such as the relationship between expression nodes and projections and how that is maintained, the different kinds of projections and expressions, the difference between fields and subexpressions, and so on. After hours playing with the code, I understand some of this stuff -- somewhat.
This kind of stuff could alternatively be explained in the code, which is rather sparsely documented; that might help avoid documentation rot.
The existing documentation is helpful, but having done some hacking on the system, I can see that there are many things that ought to be described in more detail, such as the relationship between expression nodes and projections and how that is maintained, the different kinds of projections and expressions, the difference between fields and subexpressions, and so on. After hours playing with the code, I understand some of this stuff -- somewhat.
This kind of stuff could alternatively be explained in the code, which is rather sparsely documented; that might help avoid documentation rot.