Type Alias Program<atom>

Program<atom>:
    | {
        body: HeadlessRoutineBlock<atom>;
        head: ModuleHeader[];
        kind: "module";
        situ: "global";
        tag: atom["Tag"];
        type: "Program";
    }
    | {
        body: HeadlessRoutineBlock<atom>;
        head: DeclareHeader[];
        kind: "script";
        situ: "global";
        tag: atom["Tag"];
        type: "Program";
    }
    | {
        body: HeadlessRoutineBlock<atom>;
        head: DeclareHeader[];
        kind: "eval";
        situ: "global";
        tag: atom["Tag"];
        type: "Program";
    }
    | {
        body: HeadlessRoutineBlock<atom>;
        head: DeclareHeader[];
        kind: "eval";
        situ: "local.root";
        tag: atom["Tag"];
        type: "Program";
    }
    | {
        body: HeadlessRoutineBlock<atom>;
        head: [];
        kind: "eval";
        situ: "local.deep";
        tag: atom["Tag"];
        type: "Program";
    }

Type Parameters