skip to content

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.

palette
dark
light
↑↓ select apply esc close

Palettes adapted from Catppuccin (Macchiato) (MIT), Tokyo Night (Apache-2.0), gruvbox (MIT), Catppuccin (Latte) (MIT), Rosé Pine (Dawn) (MIT).