{
  "programs": [
    "Program {\n    span: 24..431,\n    kind: Script,\n    body: [\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)",
    "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: 24..51,\n        ident: Ident {\n            span: 34..35,\n            sym: \"a\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 38..41,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 38..39,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 42..69,\n        ident: Ident {\n            span: 52..53,\n            sym: \"b\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 56..59,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 56..57,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 60..83,\n        ident: Ident {\n            span: 70..71,\n            sym: \"c\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 74..77,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 74..75,\n                            sym: \"c\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: None,\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 79..106,\n        ident: Ident {\n            span: 84..86,\n            sym: \"T1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 102..138,\n        ident: Ident {\n            span: 107..109,\n            sym: \"F1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 134..157,\n        ident: Ident {\n            span: 139..141,\n            sym: \"T2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 153..185,\n        ident: Ident {\n            span: 158..160,\n            sym: \"F2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 181..219,\n        ident: Ident {\n            span: 186..188,\n            sym: \"T3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 215..262,\n        ident: Ident {\n            span: 220..222,\n            sym: \"F3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 258..291,\n        ident: Ident {\n            span: 263..265,\n            sym: \"T4\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 287..329,\n        ident: Ident {\n            span: 292..294,\n            sym: \"F4\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 325..370,\n        ident: Ident {\n            span: 330..332,\n            sym: \"C1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 367..403,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 367..399,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 400..431,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 400..430,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 371..373,\n        sym: \"v1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 378..379,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 381..382,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 384..385,\n        sym: \"c\",\n    },\n)",
    "Array(\n    ArrayPat {\n        span: 377..387,\n        elems: [\n            Some(\n                _,\n            ),\n            Some(\n                _,\n            ),\n            Some(\n                _,\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 374..399,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 404..406,\n        sym: \"v2\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Str(\n        StrLit {\n            span: 391..398,\n            value: \"hello\",\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 376..399,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 91..93,\n        name: Ident {\n            span: 91..93,\n            sym: \"a\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 94..96,\n        name: Ident {\n            span: 94..96,\n            sym: \"b\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 97..99,\n        name: Ident {\n            span: 97..99,\n            sym: \"c\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 90..100,\n        elem_types: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 89..101,\n        ty: _,\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 112..132,\n        params: [\n            TsFnParam {\n                span: 113..123,\n                name: None,\n                ty: None,\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 145..151,\n        members: [\n            TsTypeMember {\n                span: 147..150,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 147..148,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: None,\n            },\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 144..152,\n        ty: _,\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 163..179,\n        params: [\n            TsFnParam {\n                span: 164..170,\n                name: None,\n                ty: None,\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 198..201,\n        name: Ident {\n            span: 198..201,\n            sym: \"b\",\n        },\n        type_args: [],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 193..202,\n        members: [\n            TsTypeMember {\n                span: 195..201,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 195..196,\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: 208..211,\n        name: Ident {\n            span: 208..211,\n            sym: \"a\",\n        },\n        type_args: [],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 203..212,\n        members: [\n            TsTypeMember {\n                span: 205..211,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 205..206,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 192..213,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 191..214,\n        ty: _,\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 225..256,\n        params: [\n            TsFnParam {\n                span: 226..247,\n                name: None,\n                ty: None,\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 276..278,\n        name: Ident {\n            span: 276..278,\n            sym: \"b\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 279..281,\n        name: Ident {\n            span: 279..281,\n            sym: \"c\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 275..283,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 270..284,\n        members: [\n            TsTypeMember {\n                span: 272..283,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 272..273,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 269..285,\n        elem_types: [\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 268..286,\n        ty: _,\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 297..323,\n        params: [\n            TsFnParam {\n                span: 298..314,\n                name: None,\n                ty: None,\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 339..365,\n        params: [\n            TsFnParam {\n                span: 340..356,\n                name: None,\n                ty: None,\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)"
  ]
}
