{
  "programs": [
    "Program {\n    span: 33..1157,\n    kind: Module,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 105..113,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 148..165,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 139..165,\n        label: Ident {\n            span: 139..146,\n            sym: \"recurse\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 167..176,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 158..176,\n        label: Ident {\n            span: 158..165,\n            sym: \"wrapped\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 175..186,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 210..222,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 329..351,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "ModuleDecl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 352..358,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 387..394,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 355..394,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 438..444,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 391..444,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 478..484,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 441..484,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 523..530,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 481..530,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 555..561,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 527..561,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 596..602,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 558..602,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 633..640,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 599..640,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 672..678,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 637..678,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 705..711,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 675..711,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 761..767,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 708..767,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 806..812,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 764..812,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 866..873,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 809..873,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 904..910,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 870..910,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 960..966,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 907..966,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1002..1009,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 963..1009,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1038..1044,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 1006..1044,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1083..1089,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 1041..1089,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1155..1157,\n        stmts: [],\n    },\n)",
    "For(\n    ForStmt {\n        span: 1086..1157,\n        head: Classic(\n            ForClassicHead {\n                init: Some(\n                    Decl(\n                        _,\n                    ),\n                ),\n                test: None,\n                update: None,\n            },\n        ),\n        body: _,\n    },\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 33..71,\n        ident: Ident {\n            span: 43..44,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 51..64,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 51..53,\n                            sym: \"id\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 178..230,\n        ident: Ident {\n            span: 187..188,\n            sym: \"F\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 224..295,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 231..232,\n                sym: \"M\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [],\n            ),\n        ),\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 296..353,\n        ident: Ident {\n            span: 305..307,\n            sym: \"F2\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 359..385,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 359..385,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 395..436,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 395..436,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 445..476,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 445..476,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 485..521,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 485..521,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 531..553,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 531..553,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 562..594,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 562..594,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 603..631,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 603..631,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 641..670,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 641..670,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 679..703,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 679..703,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 712..759,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 712..759,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 768..804,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 768..804,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 813..864,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 813..864,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 874..902,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 874..902,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 911..958,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 911..958,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 967..1000,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 967..1000,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1010..1036,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1010..1036,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1045..1081,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1045..1081,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1090..1153,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1090..1153,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 189..190,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 308..309,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 363..370,\n        sym: \"aNumber\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 399..406,\n        sym: \"aString\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 449..454,\n        sym: \"aDate\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 489..497,\n        sym: \"anObject\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 535..540,\n        sym: \"anAny\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 566..576,\n        sym: \"aSecondAny\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 607..612,\n        sym: \"aVoid\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 645..656,\n        sym: \"anInterface\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 683..689,\n        sym: \"aClass\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 716..729,\n        sym: \"aGenericClass\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 772..787,\n        sym: \"anObjectLiteral\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 817..837,\n        sym: \"anOtherObjectLiteral\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 878..887,\n        sym: \"aFunction\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 915..930,\n        sym: \"anOtherFunction\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 971..978,\n        sym: \"aLambda\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 992..993,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1014..1021,\n        sym: \"aModule\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1049..1063,\n        sym: \"aClassInModule\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1094..1111,\n        sym: \"aFunctionInModule\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1128..1129,\n        sym: \"x\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 148..149,\n        sym: \"D\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 167..168,\n        sym: \"D\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 217..219,\n            value: 42.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 336..337,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 337..347,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 338..346,\n                sym: \"toString\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 346..349,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 381..384,\n            value: 9.9,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 417..435,\n            value: \"this is a string\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 467..471,\n        sym: \"Date\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 472..474,\n            value: 12.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 471..476,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 463..476,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 512..518,\n        sym: \"Object\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 518..521,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 508..521,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 548..552,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 584..593,\n        sym: \"undefined\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 621..630,\n        sym: \"undefined\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 666..667,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 667..670,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 662..670,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 699..700,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 700..703,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 695..703,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 747..748,\n        sym: \"D\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 756..759,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 743..759,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 799..801,\n            value: 12.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 793..804,\n        props: [\n            KeyValueProp {\n                span: 795..803,\n                key: Ident(\n                    Ident {\n                        span: 795..797,\n                        sym: \"id\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 860..861,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 861..864,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 856..864,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 900..901,\n        sym: \"F\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 956..957,\n        sym: \"F\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 998..999,\n            value: 2.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 991..1000,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1034..1035,\n        sym: \"M\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1075..1076,\n        sym: \"M\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1076..1079,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1077..1078,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1078..1081,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 1071..1081,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1134..1152,\n            value: \"this is a string\",\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1127..1153,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)"
  ],
  "module_decls": [
    "ExportDecl(\n    ExportDecl {\n        span: 289..353,\n        decl: _,\n    },\n)"
  ],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)"
  ]
}
