@eagleoutice/flowr - v2.15.8
    Preparing search index...
    Deferred: {
        forcedAt(
            this: void,
            graph: DataflowGraph,
            binding: NodeId,
            cfg: ControlFlowGraph,
        ): readonly NodeId[];
        indexOf<Info>(
            this: void,
            graph: DataflowGraph,
            idMap: AstIdMap<Info & ParentInformation>,
        ): NameIndex;
        link<Info>(
            this: void,
            graph: DataflowGraph,
            expr: NodeId,
            index: NameIndex,
            idMap: AstIdMap<Info & ParentInformation>,
            forces?: ForceSites,
        ): void;
        publish<Info>(
            this: void,
            graph: DataflowGraph,
            expr: NodeId,
            index: NameIndex,
            idMap: AstIdMap<Info & ParentInformation>,
            at: NodeId,
            cfg?: ControlFlowGraph<CfgVertex>,
        ): void;
    } = ...

    An expression R evaluates at a time we cannot pin down: the body a delayedAssign binds, forced at some later read of the name, or a promise a closure carries past the call that created it.

    Since the moment is open, every binding the expression may meet is a candidate, and symmetrically so: a name it reads may read any definition of that name, and a name it writes may be read by any use of it. That is the may-analysis both directions ask for, so nothing the expression really depends on, and nothing really depending on it, can be missed.

    Type Declaration