{
  "programs": [
    "Program {\n    span: 41..986,\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}"
  ],
  "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)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 41..69,\n        ident: Ident {\n            span: 46..47,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 65..94,\n        ident: Ident {\n            span: 70..71,\n            sym: \"B\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 90..134,\n        ident: Ident {\n            span: 95..98,\n            sym: \"T01\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 130..181,\n        ident: Ident {\n            span: 135..138,\n            sym: \"T02\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 139..140,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 177..228,\n        ident: Ident {\n            span: 182..185,\n            sym: \"T03\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 186..187,\n                sym: \"U\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 224..282,\n        ident: Ident {\n            span: 229..232,\n            sym: \"T04\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 233..234,\n                sym: \"T\",\n            },\n            Ident {\n                span: 236..237,\n                sym: \"U\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 278..315,\n        ident: Ident {\n            span: 283..286,\n            sym: \"T05\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 311..348,\n        ident: Ident {\n            span: 316..319,\n            sym: \"T06\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 344..408,\n        ident: Ident {\n            span: 349..352,\n            sym: \"T07\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 404..501,\n        ident: Ident {\n            span: 409..417,\n            sym: \"Example1\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 418..419,\n                sym: \"T\",\n            },\n            Ident {\n                span: 436..437,\n                sym: \"U\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 497..551,\n        ident: Ident {\n            span: 502..509,\n            sym: \"Result1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 547..626,\n        ident: Ident {\n            span: 552..559,\n            sym: \"Result2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 622..684,\n        ident: Ident {\n            span: 627..635,\n            sym: \"Example3\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 636..637,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 680..735,\n        ident: Ident {\n            span: 685..692,\n            sym: \"Result3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 731..822,\n        ident: Ident {\n            span: 736..744,\n            sym: \"Example4\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 745..746,\n                sym: \"T\",\n            },\n            Ident {\n                span: 763..764,\n                sym: \"U\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 818..878,\n        ident: Ident {\n            span: 823..830,\n            sym: \"Result4\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 874..915,\n        ident: Ident {\n            span: 879..887,\n            sym: \"Example5\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 888..889,\n                sym: \"T\",\n            },\n            Ident {\n                span: 891..892,\n                sym: \"U\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 911..986,\n        ident: Ident {\n            span: 916..923,\n            sym: \"Result5\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)"
  ],
  "pats": [],
  "exprs": [],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 50..64,\n        members: [\n            TsTypeMember {\n                span: 52..63,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 52..53,\n                            sym: \"a\",\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: 74..88,\n        members: [\n            TsTypeMember {\n                span: 76..87,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 76..77,\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: 108..111,\n        name: Ident {\n            span: 108..111,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 112..114,\n        name: Ident {\n            span: 112..114,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 108..114,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 107..115,\n        ty: _,\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 101..115,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 151..154,\n        name: Ident {\n            span: 151..154,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 155..157,\n        name: Ident {\n            span: 155..157,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 151..157,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 150..158,\n        ty: _,\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 144..158,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 198..201,\n        name: Ident {\n            span: 198..201,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 202..204,\n        name: Ident {\n            span: 202..204,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 198..204,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 197..205,\n        ty: _,\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 191..205,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 248..251,\n        name: Ident {\n            span: 248..251,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 252..254,\n        name: Ident {\n            span: 252..254,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 248..254,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 247..255,\n        ty: _,\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 241..255,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 293..295,\n        name: Ident {\n            span: 293..295,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 289..296,\n        name: Ident {\n            span: 289..293,\n            sym: \"T02\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 326..328,\n        name: Ident {\n            span: 326..328,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 322..329,\n        name: Ident {\n            span: 322..326,\n            sym: \"T03\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 359..361,\n        name: Ident {\n            span: 359..361,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 362..364,\n        name: Ident {\n            span: 362..364,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 355..365,\n        name: Ident {\n            span: 355..359,\n            sym: \"T04\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 470..472,\n        name: Ident {\n            span: 470..472,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 463..479,\n        name: Ident {\n            span: 463..470,\n            sym: \"Record\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 487..489,\n        name: Ident {\n            span: 487..489,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 480..495,\n        name: Ident {\n            span: 480..487,\n            sym: \"Record\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 463..495,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 462..496,\n        ty: _,\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 456..496,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 521..524,\n            value: \"x\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 526..529,\n            value: \"y\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 512..531,\n        name: Ident {\n            span: 512..521,\n            sym: \"Example1\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 576..579,\n            value: \"x\",\n        },\n    ),\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 569..587,\n        name: Ident {\n            span: 569..576,\n            sym: \"Record\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 595..598,\n            value: \"y\",\n        },\n    ),\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 588..605,\n        name: Ident {\n            span: 588..595,\n            sym: \"Record\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 569..605,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 568..606,\n        ty: _,\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 562..606,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 670..672,\n        name: Ident {\n            span: 670..672,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 663..678,\n        name: Ident {\n            span: 663..670,\n            sym: \"Record\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 662..679,\n        ty: _,\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 656..679,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 704..707,\n            value: \"x\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 710..713,\n            value: \"y\",\n        },\n    ),\n)",
    "Union(\n    TsUnionType {\n        span: 704..714,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 695..715,\n        name: Ident {\n            span: 695..704,\n            sym: \"Example3\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 791..793,\n        name: Ident {\n            span: 791..793,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 784..800,\n        name: Ident {\n            span: 784..791,\n            sym: \"Record\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 808..810,\n        name: Ident {\n            span: 808..810,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 801..816,\n        name: Ident {\n            span: 801..808,\n            sym: \"Record\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 784..816,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 783..817,\n        ty: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 848..851,\n            value: \"x\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 853..856,\n            value: \"y\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 839..858,\n        name: Ident {\n            span: 839..848,\n            sym: \"Example4\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 833..858,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 903..906,\n        name: Ident {\n            span: 903..906,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 907..909,\n        name: Ident {\n            span: 907..909,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 903..909,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 902..910,\n        ty: _,\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 896..910,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 942..945,\n            value: \"x\",\n        },\n    ),\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 935..952,\n        name: Ident {\n            span: 935..942,\n            sym: \"Record\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 960..963,\n            value: \"y\",\n        },\n    ),\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 953..970,\n        name: Ident {\n            span: 953..960,\n            sym: \"Record\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 926..971,\n        name: Ident {\n            span: 926..935,\n            sym: \"Example5\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)"
  ]
}
