Yet another problem that I found:
One integer is actually not enough to assign IDs. One unsigned integer can coverĀ 4,294,967,295 AST nodes, but is technically possible to have more than that in a single file.
Surely you could use a 64-bit int for the node ID.
/arry