{
  "programs": [
    "Program {\n    span: 41..6130,\n    kind: Script,\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        _,\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        _,\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        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 324..336,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 335..353,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 431..453,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 452..460,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 530..552,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 551..569,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 739..750,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 813..831,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 803..841,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 781..841,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Throw(\n    ThrowStmt {\n        span: 836..856,\n        arg: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Block(\n    BlockStmt {\n        span: 905..969,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 886..969,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1059..1069,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1049..1071,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 1030..1071,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1179..1185,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1554..1575,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1569..1590,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1584..1596,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1706..1737,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1731..1762,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1756..1778,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1881..1884,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1883..1895,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2033..2049,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2305..2308,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2307..2319,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2649..2684,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2675..2698,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2639..2700,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 2616..2700,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2845..2852,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2851..2854,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2853..2862,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2855..2864,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2863..2883,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2994..3001,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3000..3003,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3002..3011,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3004..3013,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3012..3032,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3126..3156,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3250..3253,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3252..3255,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3254..3262,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3350..3353,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3352..3355,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3354..3362,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3434..3437,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3436..3439,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3438..3468,\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)",
    "Expr(\n    ExprStmt {\n        span: 3964..3971,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 4139..4146,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 4348..4358,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 4574..4585,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 4762..4765,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 4764..4771,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 4766..4777,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 4921..4950,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 5639..5676,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 5969..6004,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 6078..6081,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 6080..6104,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 41..118,\n        ident: Ident {\n            span: 51..60,\n            sym: \"Covariant\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 61..62,\n                sym: \"T\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 70..107,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 70..73,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 109..196,\n        ident: Ident {\n            span: 119..132,\n            sym: \"Contravariant\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 133..134,\n                sym: \"T\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 142..185,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 142..145,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 187..264,\n        ident: Ident {\n            span: 197..206,\n            sym: \"Invariant\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 207..208,\n                sym: \"T\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 216..254,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 216..219,\n                            sym: \"foo\",\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: 256..363,\n        ident: Ident {\n            span: 265..267,\n            sym: \"f1\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 355..470,\n        ident: Ident {\n            span: 364..366,\n            sym: \"f2\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 462..641,\n        ident: Ident {\n            span: 471..473,\n            sym: \"f3\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 742..866,\n        ident: Ident {\n            span: 751..762,\n            sym: \"getFunction\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 915..951,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 915..937,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 946..967,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 946..961,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 858..979,\n        ident: Ident {\n            span: 867..870,\n            sym: \"f10\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 971..1081,\n        ident: Ident {\n            span: 980..983,\n            sym: \"f11\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1132..1180,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1132..1157,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1073..1191,\n        ident: Ident {\n            span: 1082..1085,\n            sym: \"f12\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1187..1219,\n        ident: Ident {\n            span: 1192..1195,\n            sym: \"Foo\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1215..1251,\n        ident: Ident {\n            span: 1220..1223,\n            sym: \"Bar\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1252..1315,\n        ident: Ident {\n            span: 1261..1267,\n            sym: \"fooBar\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1316..1377,\n        ident: Ident {\n            span: 1325..1331,\n            sym: \"fooBat\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1373..1454,\n        ident: Ident {\n            span: 1378..1386,\n            sym: \"Extract2\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1387..1388,\n                sym: \"T\",\n            },\n            Ident {\n                span: 1390..1391,\n                sym: \"U\",\n            },\n            Ident {\n                span: 1393..1394,\n                sym: \"V\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1446..1606,\n        ident: Ident {\n            span: 1455..1458,\n            sym: \"f20\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1598..1808,\n        ident: Ident {\n            span: 1607..1610,\n            sym: \"f21\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1886..1938,\n        ident: Ident {\n            span: 1896..1899,\n            sym: \"Seq\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1900..1901,\n                sym: \"T\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1909..1931,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1909..1913,\n                            sym: \"tail\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 2310..2360,\n        ident: Ident {\n            span: 2320..2322,\n            sym: \"A1\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 2323..2324,\n                sym: \"T\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 2332..2349,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2332..2335,\n                            sym: \"bat\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 2351..2473,\n        ident: Ident {\n            span: 2361..2363,\n            sym: \"B1\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 2364..2365,\n                sym: \"T\",\n            },\n        ],\n        extends: [\n            Ident {\n                span: 2375..2378,\n                sym: \"A1\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 2387..2411,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2387..2390,\n                            sym: \"bat\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 2407..2442,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2407..2411,\n                            sym: \"boom\",\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: 2474..2536,\n        ident: Ident {\n            span: 2483..2492,\n            sym: \"toString1\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2537..2592,\n        ident: Ident {\n            span: 2546..2555,\n            sym: \"toString2\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2584..2728,\n        ident: Ident {\n            span: 2593..2596,\n            sym: \"foo\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3464..3548,\n        ident: Ident {\n            span: 3469..3478,\n            sym: \"MaybeTrue\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 3479..3480,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3544..3594,\n        ident: Ident {\n            span: 3549..3551,\n            sym: \"T0\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3590..3640,\n        ident: Ident {\n            span: 3595..3597,\n            sym: \"T1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3636..3687,\n        ident: Ident {\n            span: 3641..3643,\n            sym: \"T2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3683..3757,\n        ident: Ident {\n            span: 3688..3690,\n            sym: \"T3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3753..3781,\n        ident: Ident {\n            span: 3758..3763,\n            sym: \"Union\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3777..3833,\n        ident: Ident {\n            span: 3782..3789,\n            sym: \"Product\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 3790..3791,\n                sym: \"A\",\n            },\n            Ident {\n                span: 3807..3808,\n                sym: \"B\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3829..3909,\n        ident: Ident {\n            span: 3834..3846,\n            sym: \"ProductUnion\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3967..4004,\n        ident: Ident {\n            span: 3972..3975,\n            sym: \"UCA\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4000..4058,\n        ident: Ident {\n            span: 4005..4008,\n            sym: \"UCB\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4142..4190,\n        ident: Ident {\n            span: 4147..4151,\n            sym: \"UCCA\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4186..4279,\n        ident: Ident {\n            span: 4191..4195,\n            sym: \"UCCB\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4354..4393,\n        ident: Ident {\n            span: 4359..4362,\n            sym: \"PCA\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4389..4473,\n        ident: Ident {\n            span: 4394..4397,\n            sym: \"PCB\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4581..4631,\n        ident: Ident {\n            span: 4586..4590,\n            sym: \"PCCA\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4627..4700,\n        ident: Ident {\n            span: 4632..4636,\n            sym: \"PCCB\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4773..4813,\n        ident: Ident {\n            span: 4778..4782,\n            sym: \"What\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 4808..4864,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 4808..4833,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 4865..4934,\n        ident: Ident {\n            span: 4874..4878,\n            sym: \"save\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 4951..5046,\n        ident: Ident {\n            span: 4960..4973,\n            sym: \"exportCommand\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 5037..5128,\n        ident: Ident {\n            span: 5047..5062,\n            sym: \"IExportCallback\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 5063..5072,\n                sym: \"TResponse\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 5077..5122,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 5078..5113,\n                        name: Some(\n                            Ident {\n                                span: 5078..5086,\n                                sym: \"response\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 5124..5246,\n        ident: Ident {\n            span: 5129..5142,\n            sym: \"IRootResponse\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 5143..5152,\n                sym: \"TResponse\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 5237..5289,\n        ident: Ident {\n            span: 5247..5254,\n            sym: \"IRecord\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 5258..5280,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 5267..5269,\n                            sym: \"Id\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: true,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 5290..5381,\n        ident: Ident {\n            span: 5295..5310,\n            sym: \"IRecordResponse\",\n        },\n        declare: true,\n        type_params: [\n            Ident {\n                span: 5311..5312,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 5382..5480,\n        ident: Ident {\n            span: 5387..5396,\n            sym: \"IResponse\",\n        },\n        declare: true,\n        type_params: [\n            Ident {\n                span: 5397..5398,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 5677..5822,\n        ident: Ident {\n            span: 5682..5704,\n            sym: \"GetAllPropertiesOfType\",\n        },\n        declare: true,\n        type_params: [\n            Ident {\n                span: 5705..5706,\n                sym: \"T\",\n            },\n            Ident {\n                span: 5708..5722,\n                sym: \"RestrictToType\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 5823..5866,\n        ident: Ident {\n            span: 5832..5834,\n            sym: \"ff\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 5867..5918,\n        ident: Ident {\n            span: 5876..5878,\n            sym: \"gg\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 5914..5971,\n        ident: Ident {\n            span: 5919..5923,\n            sym: \"Foo3\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 5924..5925,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 6100..6130,\n        ident: Ident {\n            span: 6105..6108,\n            sym: \"Huh\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 284..285,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 301..302,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 324..325,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 335..336,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 383..384,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 404..405,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 431..432,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 452..453,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 490..491,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 507..508,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 530..531,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 551..552,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 766..770,\n        sym: \"item\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 874..875,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 921..922,\n        sym: \"f\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 952..953,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 984..985,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1086..1087,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1138..1139,\n        sym: \"f\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1140..1157,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1268..1269,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1332..1333,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1462..1463,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1496..1497,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1522..1523,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1614..1615,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1648..1649,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1674..1675,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2493..2498,\n        sym: \"value\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2556..2561,\n        sym: \"value\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2600..2605,\n        sym: \"value\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4814..4815,\n        sym: \"w\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4879..4888,\n        sym: \"_response\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4985..4999,\n        sym: \"functionToCall\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 5835..5836,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 5882..5883,\n        sym: \"f\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 328..329,\n        sym: \"b\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 326..330,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 339..340,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 337..341,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 435..436,\n        sym: \"b\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 433..437,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 456..457,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 454..458,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 534..535,\n        sym: \"b\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 532..536,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 555..556,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 553..557,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 785..795,\n        sym: \"isFunction\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 796..800,\n        sym: \"item\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 795..802,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 820..824,\n        sym: \"item\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 846..851,\n        sym: \"Error\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 851..854,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 842..854,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 890..900,\n        sym: \"isFunction\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 901..902,\n        sym: \"x\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 900..904,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 935..936,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 959..960,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1034..1044,\n        sym: \"isFunction\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1045..1046,\n        sym: \"x\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1044..1048,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1059..1060,\n        sym: \"x\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1060..1063,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1142..1153,\n        sym: \"getFunction\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1154..1155,\n        sym: \"x\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1153..1157,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1179..1180,\n        sym: \"f\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1180..1183,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1554..1560,\n        sym: \"fooBar\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1561..1562,\n        sym: \"x\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1560..1564,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1569..1575,\n        sym: \"fooBar\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1576..1577,\n        sym: \"y\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1575..1579,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1584..1590,\n        sym: \"fooBar\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1591..1592,\n        sym: \"z\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1590..1594,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1706..1712,\n        sym: \"fooBat\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1713..1714,\n        sym: \"x\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1712..1716,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1731..1737,\n        sym: \"fooBat\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1738..1739,\n        sym: \"y\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1737..1741,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1756..1762,\n        sym: \"fooBat\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1763..1764,\n        sym: \"z\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1762..1766,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 2620..2630,\n        sym: \"isFunction\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2631..2636,\n        sym: \"value\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2630..2638,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2649..2658,\n        sym: \"toString1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2659..2664,\n        sym: \"value\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2658..2666,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2675..2684,\n        sym: \"toString2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2685..2690,\n        sym: \"value\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2684..2692,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 2853..2854,\n        sym: \"T\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 2863..2864,\n        sym: \"V\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2867..2868,\n        sym: \"T\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2871..2876,\n        sym: \"never\",\n    },\n)",
    "Cond(\n    CondExpr {\n        span: 2865..2877,\n        test: _,\n        cons: _,\n        alt: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3002..3003,\n        sym: \"T\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3012..3013,\n        sym: \"V\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3016..3017,\n        sym: \"T\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3020..3025,\n        sym: \"never\",\n    },\n)",
    "Cond(\n    CondExpr {\n        span: 3014..3026,\n        test: _,\n        cons: _,\n        alt: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3254..3255,\n        sym: \"T\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3354..3355,\n        sym: \"T\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3438..3439,\n        sym: \"T\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 4349..4353,\n        op: Gt,\n        left: _,\n        right: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 4575..4580,\n        op: RShift,\n        left: _,\n        right: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 4766..4771,\n        sym: \"never\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 4829..4830,\n            value: 4.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 4824..4833,\n        props: [\n            KeyValueProp {\n                span: 4826..4832,\n                key: Ident(\n                    Ident {\n                        span: 4826..4827,\n                        sym: \"a\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 4921..4934,\n        sym: \"exportCommand\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4935..4939,\n        sym: \"save\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 4934..4941,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 5641..5648,\n        sym: \"Extract\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 5640..5667,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 5969..5971,\n        sym: \"gg\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 5972..5974,\n        sym: \"ff\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 5971..5976,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 6084..6088,\n            value: true,\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 6091..6096,\n            value: false,\n        },\n    ),\n)",
    "Cond(\n    CondExpr {\n        span: 6082..6097,\n        test: _,\n        cons: _,\n        alt: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 75..84,\n        name: Ident {\n            span: 75..84,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 94..97,\n        name: Ident {\n            span: 94..97,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 75..105,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 147..156,\n        name: Ident {\n            span: 147..156,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 172..175,\n        name: Ident {\n            span: 172..175,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 166..175,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "Keyword(\n    Number,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 147..183,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 221..230,\n        name: Ident {\n            span: 221..230,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 246..249,\n        name: Ident {\n            span: 246..249,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 240..249,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 250..252,\n        name: Ident {\n            span: 250..252,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Conditional(\n    TsConditionalType {\n        span: 221..252,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1198..1214,\n        members: [\n            TsTypeMember {\n                span: 1200..1213,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1200..1203,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1226..1242,\n        members: [\n            TsTypeMember {\n                span: 1228..1241,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1228..1231,\n                            sym: \"bar\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1398..1407,\n        name: Ident {\n            span: 1398..1407,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1408..1411,\n        name: Ident {\n            span: 1408..1411,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1412..1421,\n        name: Ident {\n            span: 1412..1421,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1422..1425,\n        name: Ident {\n            span: 1422..1425,\n            sym: \"V\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1426..1429,\n        name: Ident {\n            span: 1426..1429,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Never,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 1412..1437,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Keyword(\n    Never,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 1398..1444,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1925..1928,\n        name: Ident {\n            span: 1925..1928,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1921..1928,\n        name: Ident {\n            span: 1921..1925,\n            sym: \"Seq\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1917..1929,\n        name: Ident {\n            span: 1917..1921,\n            sym: \"Opt\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2343..2346,\n        name: Ident {\n            span: 2343..2346,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2340..2346,\n        name: Ident {\n            span: 2340..2343,\n            sym: \"A1\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2337..2347,\n        name: Ident {\n            span: 2337..2340,\n            sym: \"B1\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2398..2401,\n        name: Ident {\n            span: 2398..2401,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2395..2401,\n        name: Ident {\n            span: 2395..2398,\n            sym: \"B1\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2392..2402,\n        name: Ident {\n            span: 2392..2395,\n            sym: \"B1\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2413..2422,\n        name: Ident {\n            span: 2413..2422,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 2429..2433,\n            value: true,\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 2436..2440,\n            value: true,\n        },\n    ),\n)",
    "Conditional(\n    TsConditionalType {\n        span: 2413..2442,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 3507..3511,\n            value: true,\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3520..3522,\n        name: Ident {\n            span: 3520..3522,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3522..3525,\n            value: \"b\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 3520..3528,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3529..3534,\n            value: \"yes\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3537..3541,\n            value: \"no\",\n        },\n    ),\n)",
    "Conditional(\n    TsConditionalType {\n        span: 3507..3542,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Keyword(\n    Never,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 3564..3577,\n        members: [\n            TsTypeMember {\n                span: 3566..3576,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3566..3567,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3554..3594,\n        name: Ident {\n            span: 3554..3564,\n            sym: \"MaybeTrue\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 3615..3620,\n            value: false,\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 3610..3623,\n        members: [\n            TsTypeMember {\n                span: 3612..3622,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3612..3613,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3600..3624,\n        name: Ident {\n            span: 3600..3610,\n            sym: \"MaybeTrue\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 3661..3665,\n            value: true,\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 3656..3668,\n        members: [\n            TsTypeMember {\n                span: 3658..3667,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3658..3659,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3646..3669,\n        name: Ident {\n            span: 3646..3656,\n            sym: \"MaybeTrue\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Boolean,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 3703..3718,\n        members: [\n            TsTypeMember {\n                span: 3705..3717,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3705..3706,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3693..3719,\n        name: Ident {\n            span: 3693..3703,\n            sym: \"MaybeTrue\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3766..3769,\n            value: \"a\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3772..3775,\n            value: \"b\",\n        },\n    ),\n)",
    "Union(\n    TsUnionType {\n        span: 3766..3776,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3818..3820,\n        name: Ident {\n            span: 3818..3820,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3825..3827,\n        name: Ident {\n            span: 3825..3827,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 3812..3828,\n        members: [\n            TsTypeMember {\n                span: 3814..3823,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3814..3816,\n                            sym: \"f1\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3821..3827,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3821..3823,\n                            sym: \"f2\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3857..3860,\n            value: \"a\",\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 3862..3863,\n            value: 0.0,\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3849..3866,\n        name: Ident {\n            span: 3849..3857,\n            sym: \"Product\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3875..3878,\n            value: \"b\",\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 3880..3881,\n            value: 1.0,\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3867..3883,\n        name: Ident {\n            span: 3867..3875,\n            sym: \"Product\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 3849..3883,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3978..3994,\n        name: Ident {\n            span: 3978..3994,\n            sym: \"UnionComplement\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3994..3997,\n            value: \"a\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 3978..3999,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4011..4027,\n        name: Ident {\n            span: 4011..4027,\n            sym: \"UnionComplement\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4027..4030,\n            value: \"b\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 4011..4032,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4154..4180,\n        name: Ident {\n            span: 4154..4180,\n            sym: \"UnionComplementComplement\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4180..4183,\n            value: \"a\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 4154..4185,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4198..4224,\n        name: Ident {\n            span: 4198..4224,\n            sym: \"UnionComplementComplement\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4224..4227,\n            value: \"b\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 4198..4229,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4365..4383,\n        name: Ident {\n            span: 4365..4383,\n            sym: \"ProductComplement\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4383..4386,\n            value: \"a\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 4365..4388,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4400..4418,\n        name: Ident {\n            span: 4400..4418,\n            sym: \"ProductComplement\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4418..4421,\n            value: \"b\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 4400..4423,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4593..4621,\n        name: Ident {\n            span: 4593..4621,\n            sym: \"ProductComplementComplement\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4621..4624,\n            value: \"a\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 4593..4626,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4639..4667,\n        name: Ident {\n            span: 4639..4667,\n            sym: \"ProductComplementComplement\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4667..4670,\n            value: \"b\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 4639..4672,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 4789..4792,\n        members: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 4793..4807,\n        members: [\n            TsTypeMember {\n                span: 4795..4806,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 4795..4796,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4785..4813,\n        name: Ident {\n            span: 4785..4789,\n            sym: \"Hmm\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5102..5112,\n        name: Ident {\n            span: 5102..5112,\n            sym: \"TResponse\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5088..5113,\n        name: Ident {\n            span: 5088..5102,\n            sym: \"IRootResponse\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5157..5174,\n        name: Ident {\n            span: 5157..5174,\n            sym: \"TResponse\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5175..5184,\n        name: Ident {\n            span: 5175..5184,\n            sym: \"IRecord\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5201..5211,\n        name: Ident {\n            span: 5201..5211,\n            sym: \"TResponse\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5185..5213,\n        name: Ident {\n            span: 5185..5201,\n            sym: \"IRecordResponse\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5224..5234,\n        name: Ident {\n            span: 5224..5234,\n            sym: \"TResponse\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5214..5235,\n        name: Ident {\n            span: 5214..5224,\n            sym: \"IResponse\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Conditional(\n    TsConditionalType {\n        span: 5157..5235,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5342..5344,\n        name: Ident {\n            span: 5342..5344,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5332..5346,\n        name: Ident {\n            span: 5332..5342,\n            sym: \"IResponse\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 5347..5372,\n        members: [\n            TsTypeMember {\n                span: 5350..5371,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 5350..5360,\n                            sym: \"sendRecord\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 5332..5372,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5450..5452,\n        name: Ident {\n            span: 5450..5452,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5427..5461,\n        name: Ident {\n            span: 5427..5450,\n            sym: \"GetAllPropertiesOfType\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 5421..5461,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "Keyword(\n    Void,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 5402..5471,\n        members: [\n            TsTypeMember {\n                span: 5405..5470,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 5405..5414,\n                            sym: \"sendValue\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 5415..5461,\n                        name: Some(\n                            Ident {\n                                span: 5415..5419,\n                                sym: \"name\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5733..5735,\n        name: Ident {\n            span: 5733..5735,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5769..5771,\n        name: Ident {\n            span: 5769..5771,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5760..5772,\n        name: Ident {\n            span: 5760..5769,\n            sym: \"Required\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5773..5788,\n        name: Ident {\n            span: 5773..5788,\n            sym: \"RestrictToType\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5737..5790,\n        name: Ident {\n            span: 5737..5760,\n            sym: \"GetPropertyNamesOfType\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5726..5791,\n        name: Ident {\n            span: 5726..5731,\n            sym: \"Pick\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5929..5938,\n        name: Ident {\n            span: 5929..5938,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5953..5956,\n        name: Ident {\n            span: 5953..5956,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 5948..5958,\n        members: [\n            TsTypeMember {\n                span: 5950..5956,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 5950..5951,\n                            sym: \"n\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 5964..5967,\n        name: Ident {\n            span: 5964..5967,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 5959..5968,\n        members: [\n            TsTypeMember {\n                span: 5961..5967,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 5961..5962,\n                            sym: \"x\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Conditional(\n    TsConditionalType {\n        span: 5929..5968,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 6115..6118,\n            value: \"y\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 6111..6120,\n        name: Ident {\n            span: 6111..6115,\n            sym: \"Wat\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)"
  ]
}
