Unique IDs in a ID table.
A node is a bundle of an ID with a value.
A session providing fresh IDs for ID table.
A table is a map from IDs to Value
s. When serialized, we
represent a table as a sorted vector. Indeed, the values stored
in the table might reference each other, without cycle, so the
order matters.
Wrapper for a type T
that creates a bundle containing both a ID
table and a value T
. That value may contains Node
values
inside it. Serializing WithTable<T>
will serialize IDs only,
skipping values. Deserialization of a WithTable<T>
will
automatically use the table and IDs to reconstruct skipped values.