Every built-in the value solver can fold to a constant (the ones with a evalHandler).
Every built-in flowR states computes a result and nothing else (CallProp.Pure).
StaticdefaultThe index of flowR's own DefaultBuiltinConfig, computed on first use and shared from then on.
StaticofThe index of a set of built-in definitions, e.g. the ones a flowR config adds.
StaticofThe index of the built-ins an analysis registered, so a configured or overwritten built-in is what shows up.
What the index states about name, ignoring any namespace (built-ins are registered by their bare name).
Every parameter whose argument carries at least one bit of props, like ArgProp.Resource.
The CallProp bits of name, undefined when no built-in of that name states any.
Every built-in whose props carry at least one bit of props, like CallProp.File for the file calls.
Every built-in whose props carry every bit of props, for the questions a single bit cannot answer,
like FileInputProps for the calls that read a file rather than only write one.
Every built-in that states its props but carries no bit of props. With InputProps this yields
the calls that derive their result from their arguments alone.
The one place to ask what flowR's built-ins are: every pure function, every call that reads a file, every parameter that names a resource, everything the value solver can fold. Each answer is derived from the BuiltInFnInfo the definitions carry, so a built-in that states its CallProp bits and its FnSig is found here without anything else being registered.
Build one over the DefaultBuiltinConfig with BuiltInIndex.default (computed once and shared), over your own definitions with BuiltInIndex.of, or over the built-ins an analysis actually registered with BuiltInIndex.ofEnvironment, which reflects configured overrides. For a single name (where a definition in the analyzed code shadows the built-in) use queryFnProps instead.