{
  "programs": [
    "Program {\n    span: 1..497,\n    kind: Script,\n    body: [\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: 104..131,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 196..236,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 263..298,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 325..351,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 349..379,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 377..403,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 401..435,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 433..459,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 457..481,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 479..497,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1..48,\n        ident: Ident {\n            span: 11..12,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 13..14,\n                sym: \"T\",\n            },\n            Ident {\n                span: 16..17,\n                sym: \"U\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 25..42,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 25..31,\n                            sym: \"tuple1\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 45..75,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 45..71,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 72..106,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 72..90,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 128..165,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 128..150,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 162..198,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 162..184,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 233..265,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 233..255,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 295..327,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 295..317,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 49..51,\n        sym: \"i1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 76..78,\n        sym: \"i2\",\n    },\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 132..134,\n        sym: \"e1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 135..150,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 166..168,\n        sym: \"e2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 169..184,\n        left: _,\n        right: _,\n    },\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 237..239,\n        sym: \"e3\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 240..255,\n        left: _,\n        right: _,\n    },\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 299..301,\n        sym: \"e4\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 302..317,\n        left: _,\n        right: _,\n    },\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 104..106,\n        sym: \"i1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 106..115,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 107..113,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 117..122,\n            value: \"foo\",\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 124..125,\n            value: 5.0,\n        },\n    ),\n)",
    "Array(\n    ArrayExpr {\n        span: 116..127,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 114..127,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 137..139,\n        sym: \"i1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 139..147,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 140..146,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 147..148,\n            value: 0.0,\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 146..150,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 171..173,\n        sym: \"i1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 173..181,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 174..180,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 181..182,\n            value: 1.0,\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 180..184,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 196..198,\n        sym: \"i1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 198..207,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 199..205,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 209..214,\n            value: \"foo\",\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 216..217,\n            value: 5.0,\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 219..224,\n            value: false,\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 226..230,\n            value: true,\n        },\n    ),\n)",
    "Array(\n    ArrayExpr {\n        span: 208..232,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 206..232,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 242..244,\n        sym: \"i1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 244..252,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 245..251,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 252..253,\n            value: 2.0,\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 251..255,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 263..265,\n        sym: \"i1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 265..273,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 266..272,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 273..274,\n            value: 3.0,\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 272..277,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 283..291,\n            value: \"string\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 278..294,\n        props: [\n            KeyValueProp {\n                span: 280..293,\n                key: Ident(\n                    Ident {\n                        span: 280..281,\n                        sym: \"a\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 276..294,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 304..306,\n        sym: \"i1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 306..314,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 307..313,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 314..315,\n            value: 3.0,\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 313..317,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 325..327,\n        sym: \"i2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 327..336,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 328..334,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 338..343,\n            value: \"foo\",\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 345..346,\n            value: 5.0,\n        },\n    ),\n)",
    "Array(\n    ArrayExpr {\n        span: 337..348,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 335..348,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 349..351,\n        sym: \"i2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 351..360,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 352..358,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 362..367,\n            value: \"foo\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 369..374,\n            value: \"bar\",\n        },\n    ),\n)",
    "Array(\n    ArrayExpr {\n        span: 361..376,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 359..376,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 377..379,\n        sym: \"i2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 379..388,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 380..386,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 390..391,\n            value: 5.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 393..398,\n            value: \"bar\",\n        },\n    ),\n)",
    "Array(\n    ArrayExpr {\n        span: 389..400,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 387..400,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 401..403,\n        sym: \"i2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 403..412,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 404..410,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 414..417,\n        props: [],\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 418..421,\n        props: [],\n    },\n)",
    "Array(\n    ArrayExpr {\n        span: 413..422,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 411..422,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 433..435,\n        sym: \"i1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 435..444,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 436..442,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 446..447,\n            value: 5.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 449..454,\n            value: \"foo\",\n        },\n    ),\n)",
    "Array(\n    ArrayExpr {\n        span: 445..456,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 443..456,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 457..459,\n        sym: \"i1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 459..468,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 460..466,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 470..473,\n        props: [],\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 474..477,\n        props: [],\n    },\n)",
    "Array(\n    ArrayExpr {\n        span: 469..478,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 467..478,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 479..481,\n        sym: \"i2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 481..490,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 482..488,\n                sym: \"tuple1\",\n            },\n        ),\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 492..495,\n        props: [],\n    },\n)",
    "Array(\n    ArrayExpr {\n        span: 491..496,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 489..496,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 34..36,\n        name: Ident {\n            span: 34..36,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 37..39,\n        name: Ident {\n            span: 37..39,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 33..40,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)"
  ]
}
