Type Alias Statement<atom>

Statement<atom>:
    | {
        inner: Effect<atom>;
        tag: atom["Tag"];
        type: "EffectStatement";
    }
    | {
        label: atom["Label"];
        tag: atom["Tag"];
        type: "BreakStatement";
    }
    | {
        tag: atom["Tag"];
        type: "DebuggerStatement";
    }
    | {
        body: SegmentBlock<atom>;
        tag: atom["Tag"];
        type: "BlockStatement";
    }
    | {
        else: SegmentBlock<atom>;
        tag: atom["Tag"];
        test: Expression<atom>;
        then: SegmentBlock<atom>;
        type: "IfStatement";
    }
    | {
        body: SegmentBlock<atom>;
        tag: atom["Tag"];
        test: Expression<atom>;
        type: "WhileStatement";
    }
    | {
        catch: SegmentBlock<atom>;
        finally: SegmentBlock<atom>;
        tag: atom["Tag"];
        try: SegmentBlock<atom>;
        type: "TryStatement";
    }

Type Parameters