Compute: (get: <U>(node: Node<U>) => U) => T

Compute closure for a derived node.

Type Parameters

  • T

    Value type produced by the closure.

Type declaration

    • (get: <U>(node: Node<U>) => U): T
    • Parameters

      Returns T

Receives a tracked get accessor; the engine records every node read through get as a dependency edge for the current evaluation. Conditional reads are tracked dynamically — a derivation that switches inputs based on an if branch must leave no orphan dependency listening on a node it no longer reads. The type system cannot see across if-branches inside a derived body, so dynamic-dependency cleanup is enforced as a property-based fuzz gate: random derivations that switch inputs based on conditional reads, followed by random commits, must leave no orphan dep.