A registry of abstract type UUIDs used by graphix and graphix libraries,
along with a string tag describing what the type is. We must do this because
you can’t register different type ids with the same uuid in netidx’s
abstract type system, and because abstract types often need to be
parameterized by the Rt and UserEvent they will have different a different
type id for each monomorphization, and thus they must have a different uuid.
Event represents all the things that happened simultaneously in a
given execution cycle. Event may contain only one update for each
variable and netidx subscription in a given cycle, if more updates
happen simultaneously they must be queued and deferred to later
cycles.
Apply is a kind of node that represents a function application. It
does not hold ownership of it’s arguments, instead those are held
by a CallSite node. This allows us to change the function called
at runtime without recompiling the arguments.
Update represents a regular graph node, as opposed to a function
application represented by Apply. Regular graph nodes are used for
every built in node except for builtin functions.