t() :: %Ruler.State{
activation_nodes:
Ruler.State.RefMap.t(:activation_node_ref, Ruler.State.ActivationNode.t()),
alpha_memories:
Ruler.State.RefMap.t(:alpha_memory_ref, Ruler.State.AlphaMemory.t()),
beta_memories:
Ruler.State.RefMap.t(:beta_memory_ref, Ruler.State.BetaMemory.t()),
committed_activations: MapSet.t(Ruler.Activation.t()),
constant_test_nodes:
Ruler.State.RefMap.t(
:constant_test_node_ref,
Ruler.State.ConstantTestNode.t()
),
facts: %{required(Ruler.Fact.t()) => Ruler.State.FactInfo.t()},
join_nodes: Ruler.State.RefMap.t(:join_node_ref, Ruler.State.JoinNode.t()),
production_nodes: %{
required(Ruler.State.ProductionNode.ref()) => Ruler.State.ProductionNode.t()
},
proposed_activations: MapSet.t(Ruler.Activation.t()),
rules: %{required(Ruler.Rule.id()) => Ruler.Rule.t()}
}