Type Trees
The following code snippet provides an easy way to print the type tree of probabilistic circuits.
using InteractiveUtils;
using ProbabilisticCircuits;
using AbstractTrees;
AbstractTrees.children(x::Type) = subtypes(x);
For example, we can see ProbabilisticCircuits.ProbCircuit
's type tree.
AbstractTrees.print_tree(ProbCircuit)
ProbCircuit ├─ PlainProbCircuit │ ├─ PlainProbInnerNode │ │ ├─ PlainMulNode │ │ └─ PlainSumNode │ └─ PlainProbLeafNode │ └─ PlainProbLiteralNode ├─ SharedProbCircuit │ ├─ SharedProbInnerNode │ │ ├─ SharedMulNode │ │ └─ SharedSumNode │ └─ SharedProbLeafNode │ └─ SharedProbLiteralNode └─ StructProbCircuit ├─ StructProbInnerNode │ ├─ StructMulNode │ └─ StructSumNode └─ StructProbLeafNode └─ StructProbLiteralNode