ShotUn.Trace.Node (shot_un v0.1.9)

Copy Markdown View Source

A single node in a ShotUn.Trace decision tree.

Each node represents the state reached after applying rule to its parent's state. The root has kind: :start, rule: :init and no parent; leaves are either :solution or :fail. All term-bearing fields are pre-formatted strings captured while the term-factory scratchpad was alive, so the tree remains meaningful after the algorithm tears down its scratchpad.

Summary

Types

kind()

@type kind() :: :start | :step | :solution | :fail

t()

@type t() :: %ShotUn.Trace.Node{
  children: [t()],
  depth: non_neg_integer() | nil,
  flex: [{String.t(), String.t()}],
  id: non_neg_integer(),
  kind: kind(),
  note: String.t() | nil,
  pairs: [{String.t(), String.t()}],
  parent_id: non_neg_integer() | nil,
  rule: atom() | nil,
  substs: [String.t()]
}