Now we have an even nastier problem: how do we delete verbs? If I just tear a hole in the array, then I end up with all these dangling consequence indeces. Two solutions are available:
This is the most direct solution. Just go through and change them all. But remember, we're not just deleting consequence indeces that point to the deleted verb; every single consequence index pointing to a verb later in the sequence must be adjusted downward. This is an enormous amount of computing. Now, we could argue that this is such a rare event that a few seconds of extra processing are acceptable, and indeed it's better to segregate such processing into this one place that will be rarely visited.
This seems like the elegant solution. We can place things in and out with no hassle, but do we really need this kind of elegance? Linked lists are most useful when you're doing lots of editing. That's not the case here. Besides, a linked list has overhead that will slow down lots of other processes. Do I really want all that expensive elegance?
Then there's the question, what is there that is intrinsically array-like about this data structure? It's a network, for crying out loud, not an array. Shouldn't the data structure be network-like (linked list) rather than linear (array)?