- It is C++
- Class abstraction is used to define the properties of types, as well as the data dependency as a graph of nodes and edges.
- The graph is a hyper graph: edges are multi-nodes
- Normal usage would tie nodes to variables, edges to assignments and function calls, graphs to function definitions and instantiation "cache" table.
The astute reader will note that this supports the Agesen's cartesian product algorithm that I am using.