{
  "programs": [
    "Program {\n    span: 1..982,\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: 73..81,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 116..133,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 107..133,\n        label: Ident {\n            span: 107..114,\n            sym: \"recurse\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 135..144,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 126..144,\n        label: Ident {\n            span: 126..133,\n            sym: \"wrapped\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 143..154,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 178..190,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 297..319,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "ModuleDecl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 320..326,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1..39,\n        ident: Ident {\n            span: 11..12,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 19..32,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 19..21,\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: 146..198,\n        ident: Ident {\n            span: 155..156,\n            sym: \"F\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 192..263,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 199..200,\n                sym: \"M\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [],\n            ),\n        ),\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 264..321,\n        ident: Ident {\n            span: 273..275,\n            sym: \"F2\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 323..353,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 323..349,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 350..395,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 350..391,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 392..427,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 392..423,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 424..465,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 424..460,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 462..488,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 462..484,\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..517,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 518..551,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 518..546,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 548..581,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 548..577,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 578..606,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 578..602,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 603..654,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 603..650,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 651..691,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 651..687,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 688..744,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 688..739,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 741..773,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 741..769,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 770..821,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 770..817,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 818..856,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 818..851,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 853..883,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 853..879,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 880..920,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 880..916,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 917..982,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 917..980,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 157..158,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 276..277,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 327..334,\n        sym: \"aNumber\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 354..361,\n        sym: \"aString\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 396..401,\n        sym: \"aDate\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 428..436,\n        sym: \"anObject\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 466..471,\n        sym: \"anAny\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 489..499,\n        sym: \"aSecondAny\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 522..527,\n        sym: \"aVoid\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 552..563,\n        sym: \"anInterface\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 582..588,\n        sym: \"aClass\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 607..620,\n        sym: \"aGenericClass\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 655..670,\n        sym: \"anObjectLiteral\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 692..712,\n        sym: \"anOtherObjectLiteral\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 745..754,\n        sym: \"aFunction\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 774..789,\n        sym: \"anOtherFunction\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 822..829,\n        sym: \"aLambda\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 843..844,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 857..864,\n        sym: \"aModule\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 884..898,\n        sym: \"aClassInModule\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 921..938,\n        sym: \"aFunctionInModule\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 955..956,\n        sym: \"x\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 116..117,\n        sym: \"D\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 135..136,\n        sym: \"D\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 185..187,\n            value: 42.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 304..305,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 305..315,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 306..314,\n                sym: \"toString\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 314..317,\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: 345..348,\n            value: 9.9,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 372..390,\n            value: \"this is a string\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 414..418,\n        sym: \"Date\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 419..421,\n            value: 12.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 418..423,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 410..423,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 451..457,\n        sym: \"Object\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 457..460,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 447..460,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 479..483,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 507..516,\n        sym: \"undefined\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 536..545,\n        sym: \"undefined\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 573..574,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 574..577,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 569..577,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 598..599,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 599..602,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 594..602,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 638..639,\n        sym: \"D\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 647..650,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 634..650,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 682..684,\n            value: 12.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 676..687,\n        props: [\n            KeyValueProp {\n                span: 678..686,\n                key: Ident(\n                    Ident {\n                        span: 678..680,\n                        sym: \"id\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 735..736,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 736..739,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 731..739,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 767..768,\n        sym: \"F\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 815..816,\n        sym: \"F\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 849..850,\n            value: 2.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 842..851,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 877..878,\n        sym: \"M\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 910..911,\n        sym: \"M\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 911..914,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 912..913,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 913..916,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 906..916,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 961..979,\n            value: \"this is a string\",\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 954..980,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)"
  ],
  "module_decls": [
    "ExportDecl(\n    ExportDecl {\n        span: 257..321,\n        decl: _,\n    },\n)"
  ],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)"
  ]
}
