{
  "programs": [
    "Program {\n    span: 1..3314,\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}"
  ],
  "stmts": [
    "Expr(\n    ExprStmt {\n        span: 37..47,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 136..182,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 169..217,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 265..275,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 380..448,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 431..477,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 522..532,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 621..677,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 664..754,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 955..962,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1071..1078,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1130..1137,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1190..1228,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1271..1283,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 1268..1283,\n        label: Ident {\n            span: 1268..1269,\n            sym: \"f\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1282..1289,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1419..1431,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 1416..1431,\n        label: Ident {\n            span: 1416..1417,\n            sym: \"f\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1430..1437,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1560..1572,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 1557..1572,\n        label: Ident {\n            span: 1557..1558,\n            sym: \"f\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1571..1578,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2028..2039,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2051..2061,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2118..2145,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2141..2196,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2253..2269,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 2245..2269,\n        label: Ident {\n            span: 2245..2251,\n            sym: \"parent\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2265..2272,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2271..2283,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2730..2762,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 2721..2762,\n        label: Ident {\n            span: 2721..2728,\n            sym: \"_action\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2764..2791,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 2756..2791,\n        label: Ident {\n            span: 2756..2762,\n            sym: \"_state\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2790..2802,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 3144..3172,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 3231..3314,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Var(\n    VarDecl {\n        span: 48..96,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 48..88,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 97..151,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 97..134,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 276..332,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 276..324,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 333..399,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 333..378,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 533..581,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 533..573,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 582..636,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 582..619,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1285..1333,\n        ident: Ident {\n            span: 1290..1296,\n            sym: \"FooFn1\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1297..1298,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1329..1375,\n        ident: Ident {\n            span: 1334..1338,\n            sym: \"Bar1\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1339..1340,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1433..1481,\n        ident: Ident {\n            span: 1438..1444,\n            sym: \"FooFn2\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1445..1446,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1477..1523,\n        ident: Ident {\n            span: 1482..1486,\n            sym: \"Bar2\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1487..1488,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1574..1622,\n        ident: Ident {\n            span: 1579..1585,\n            sym: \"FooFn3\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1586..1587,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1618..1689,\n        ident: Ident {\n            span: 1623..1627,\n            sym: \"Bar3\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1628..1629,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 1922..2015,\n        ident: Ident {\n            span: 1928..1929,\n            sym: \"C\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2062..2093,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 2062..2085,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2094..2122,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 2094..2116,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 2274..2375,\n        ident: Ident {\n            span: 2284..2289,\n            sym: \"Child\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 2290..2291,\n                sym: \"A\",\n            },\n            Ident {\n                span: 2293..2294,\n                sym: \"B\",\n            },\n        ],\n        extends: [\n            Ident {\n                span: 2314..2321,\n                sym: \"Parent\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 2330..2357,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2339..2340,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: true,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 2349..2365,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2358..2359,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: true,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2403..2435,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2403..2433,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2367..2442,\n        ident: Ident {\n            span: 2376..2378,\n            sym: \"fn\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2437..2538,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2437..2532,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2533..2622,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2533..2570,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 2793..2911,\n        ident: Ident {\n            span: 2803..2815,\n            sym: \"ActionObject\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 2816..2822,\n                sym: \"TEvent\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 2855..2902,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2855..2859,\n                            sym: \"exec\",\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: 2912..3028,\n        ident: Ident {\n            span: 2921..2934,\n            sym: \"createMachine\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 3029..3106,\n        ident: Ident {\n            span: 3038..3047,\n            sym: \"interpret\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 3101..3153,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 3101..3142,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 3173..3244,\n        kind: Const,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 3173..3229,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 52..67,\n        sym: \"super_covariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 101..114,\n        sym: \"sub_covariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 136..151,\n        sym: \"super_covariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 169..182,\n        sym: \"sub_covariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 280..299,\n        sym: \"super_contravariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 337..354,\n        sym: \"sub_contravariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 380..399,\n        sym: \"super_contravariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 431..448,\n        sym: \"sub_contravariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 537..552,\n        sym: \"super_invariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 586..599,\n        sym: \"sub_invariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 621..636,\n        sym: \"super_invariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 664..677,\n        sym: \"sub_invariant\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2066..2070,\n        sym: \"baz1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2098..2102,\n        sym: \"baz2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2118..2122,\n        sym: \"baz1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2141..2145,\n        sym: \"baz2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2382..2385,\n        sym: \"inp\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2409..2410,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2443..2445,\n        sym: \"pu\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2539..2548,\n        sym: \"notString\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2968..2974,\n        sym: \"action\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3058..3065,\n        sym: \"machine\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3107..3114,\n        sym: \"machine\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 3115..3142,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 3179..3181,\n        sym: \"qq\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 154..167,\n        sym: \"sub_covariant\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 152..168,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 185..200,\n        sym: \"super_covariant\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 183..201,\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: 402..419,\n        sym: \"sub_contravariant\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 400..420,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 451..470,\n        sym: \"super_contravariant\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 449..471,\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: 639..652,\n        sym: \"sub_invariant\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 637..653,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 680..695,\n        sym: \"super_invariant\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 678..696,\n        left: _,\n        op: Assign,\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)",
    "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: 1271..1277,\n        sym: \"FooFn1\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1419..1425,\n        sym: \"FooFn2\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1560..1566,\n        sym: \"FooFn3\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1943..1944,\n            value: 0.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1968..1969,\n            value: 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: 2125..2129,\n        sym: \"baz2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2123..2130,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2148..2152,\n        sym: \"baz1\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2146..2153,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2253..2259,\n        sym: \"Parent\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2260..2261,\n        sym: \"A\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 2259..2262,\n        op: Lt,\n        left: _,\n        right: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 2261..2269,\n        op: Gt,\n        left: _,\n        right: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 2265..2269,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 2429..2432,\n        sym: \"inp\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 2479..2480,\n            value: 0.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 2485..2486,\n            value: 0.0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 2495..2499,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 2509..2513,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 2474..2516,\n        props: [\n            KeyValueProp {\n                span: 2476..2481,\n                key: Ident(\n                    Ident {\n                        span: 2476..2477,\n                        sym: \"a\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 2482..2487,\n                key: Ident(\n                    Ident {\n                        span: 2482..2483,\n                        sym: \"b\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 2488..2500,\n                key: Ident(\n                    Ident {\n                        span: 2488..2493,\n                        sym: \"child\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 2501..2515,\n                key: Ident(\n                    Ident {\n                        span: 2501..2507,\n                        sym: \"parent\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 2525..2529,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 2465..2532,\n        props: [\n            KeyValueProp {\n                span: 2467..2516,\n                key: Ident(\n                    Ident {\n                        span: 2467..2472,\n                        sym: \"child\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 2517..2531,\n                key: Ident(\n                    Ident {\n                        span: 2517..2523,\n                        sym: \"parent\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2567..2569,\n        sym: \"pu\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2730..2742,\n        sym: \"ActionObject\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2764..2773,\n        sym: \"StateNode\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3117..3130,\n        sym: \"createMachine\",\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 3131..3136,\n        props: [],\n    },\n)",
    "TsAs(\n    TsAsExpr {\n        span: 3134..3141,\n        expr: _,\n        ty: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 3130..3142,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 3144..3153,\n        sym: \"interpret\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3154..3161,\n        sym: \"machine\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 3153..3163,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 3231..3244,\n        sym: \"createMachine\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3298..3300,\n        sym: \"qq\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 3297..3302,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [
    "Class {\n    span: 1922..2015,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 1928..1929,\n            sym: \"C\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "class_members": [
    "Prop(\n    ClassProp {\n        span: 1936..1940,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 1936..1938,\n                sym: \"in\",\n            },\n        ),\n        value: None,\n        is_static: false,\n    },\n)",
    "Prop(\n    ClassProp {\n        span: 1939..1963,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 1939..1940,\n                sym: \"a\",\n            },\n        ),\n        value: Some(\n            _,\n        ),\n        is_static: false,\n    },\n)",
    "Prop(\n    ClassProp {\n        span: 1960..1965,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 1960..1963,\n                sym: \"out\",\n            },\n        ),\n        value: None,\n        is_static: false,\n    },\n)",
    "Prop(\n    ClassProp {\n        span: 1964..1982,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 1964..1965,\n                sym: \"b\",\n            },\n        ),\n        value: Some(\n            _,\n        ),\n        is_static: false,\n    },\n)"
  ],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 1313..1315,\n        name: Ident {\n            span: 1313..1315,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Array(\n    TsArrayType {\n        span: 1313..1317,\n        elem_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1308..1318,\n        name: Ident {\n            span: 1308..1313,\n            sym: \"Bar1\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 1302..1327,\n        params: [\n            TsFnParam {\n                span: 1303..1318,\n                name: Some(\n                    Ident {\n                        span: 1303..1306,\n                        sym: \"foo\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1362..1364,\n        name: Ident {\n            span: 1362..1364,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Array(\n    TsArrayType {\n        span: 1362..1366,\n        elem_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1357..1367,\n        name: Ident {\n            span: 1357..1362,\n            sym: \"Foo1\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1344..1375,\n        members: [\n            TsTypeMember {\n                span: 1350..1369,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1350..1355,\n                            sym: \"value\",\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: 1461..1463,\n        name: Ident {\n            span: 1461..1463,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Array(\n    TsArrayType {\n        span: 1461..1465,\n        elem_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1456..1466,\n        name: Ident {\n            span: 1456..1461,\n            sym: \"Bar2\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 1450..1475,\n        params: [\n            TsFnParam {\n                span: 1451..1466,\n                name: Some(\n                    Ident {\n                        span: 1451..1454,\n                        sym: \"foo\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1510..1512,\n        name: Ident {\n            span: 1510..1512,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Array(\n    TsArrayType {\n        span: 1510..1514,\n        elem_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1505..1515,\n        name: Ident {\n            span: 1505..1510,\n            sym: \"Foo2\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1492..1523,\n        members: [\n            TsTypeMember {\n                span: 1498..1517,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1498..1503,\n                            sym: \"value\",\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: 1602..1604,\n        name: Ident {\n            span: 1602..1604,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Array(\n    TsArrayType {\n        span: 1602..1606,\n        elem_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1597..1607,\n        name: Ident {\n            span: 1597..1602,\n            sym: \"Bar3\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 1591..1616,\n        params: [\n            TsFnParam {\n                span: 1592..1607,\n                name: Some(\n                    Ident {\n                        span: 1592..1595,\n                        sym: \"foo\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1651..1653,\n        name: Ident {\n            span: 1651..1653,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Array(\n    TsArrayType {\n        span: 1651..1655,\n        elem_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1646..1656,\n        name: Ident {\n            span: 1646..1651,\n            sym: \"Foo3\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1633..1689,\n        members: [\n            TsTypeMember {\n                span: 1639..1658,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1639..1644,\n                            sym: \"value\",\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: 2342..2344,\n        name: Ident {\n            span: 2342..2344,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2361..2363,\n        name: Ident {\n            span: 2361..2363,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2883..2890,\n        name: Ident {\n            span: 2883..2890,\n            sym: \"TEvent\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2868..2891,\n        name: Ident {\n            span: 2868..2878,\n            sym: \"StateNode\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 2861..2900,\n        params: [\n            TsFnParam {\n                span: 2862..2891,\n                name: Some(\n                    Ident {\n                        span: 2862..2866,\n                        sym: \"meta\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "Keyword(\n    Any,\n)"
  ]
}
