gen-inspect
gen-inspect interrogates a materialized graph: which nodes exist and of what kind, which edges are declared, which a policy program produced and why, and what reaches what. It implements no semantics and never evaluates — every fixpoint it reads goes through gen-scope, the sole evaluator.
The problem it owns: once a graph is built, something has to answer questions about it without becoming a second place that decides what’s true of it. gen-inspect is that something — a read surface over a graph someone else already resolved, not a second evaluator standing next to gen-scope.
It sits in the framework stratum: above the stack rather than a layer inside it, defining no
substrate vocabulary of its own. It takes gen-graph, gen-prelude, gen-scope and gen-select as
substrate from this hub — four of the five it declares. The fifth, gen-program, cannot be supplied
here, and the reason is structural rather than an oversight: this file is a function of the roster
entries whose .lib is published already applied, and gen-program is one of the three that is not.
It is produced by the fold this very file feeds. So gen-inspect declares four formals at this gate
and takes gen-program at the one that builds its program route:
inspect = { inherit (members) prelude graph select scope ;};No roster member currently builds on gen-inspect.
This page doesn’t show a usage example. gen-inspect is rostered but not checked out for this documentation pass, and its API is real work belonging to whoever writes the page next against the actual source — not something to guess at here.
Palettes adapted from Catppuccin (Macchiato) (MIT), Tokyo Night (Apache-2.0), gruvbox (MIT), Catppuccin (Latte) (MIT), Rosé Pine (Dawn) (MIT).