I'm using a data structure that I'm sure has been implemented and
studied to death several times over... but I don't know it's name.
The structure is simple: any given node may have one or more previous
nodes.  Nodes can be re-used, so you get structures like this:

  o one
  |
  |-o two (fork of 1)
  | |
  `---o three (fork of 2)
    | |
    | | o four
    | | |
    | `-`-o five (merge of 3,4)
    |     |
    `-----`-o six (merge of 2,5)

The whole thing is ordered in the sense that n-1 logically occurs
before n.  Kinda reminiscent of git, but I'm using this as a kind of
audit of how values progress though an analysis.

Any ideas?  Thanks.