{
  "programs": [
    "Program {\n    span: 12..613,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Empty(\n    EmptyStmt {\n        span: 72..73,\n    },\n)",
    "Decl(\n    _,\n)",
    "Empty(\n    EmptyStmt {\n        span: 115..116,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 439..445,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 444..453,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsEnum(\n    TsEnumDecl {\n        span: 12..73,\n        ident: Ident {\n            span: 17..39,\n            sym: \"TerrestrialAnimalTypes\",\n        },\n        declare: false,\n        is_const: false,\n        members: [\n            TsEnumMember {\n                span: 44..56,\n                name: Ident(\n                    Ident {\n                        span: 44..47,\n                        sym: \"CAT\",\n                    },\n                ),\n                init: Some(\n                    _,\n                ),\n            },\n            TsEnumMember {\n                span: 59..72,\n                name: Ident(\n                    Ident {\n                        span: 59..62,\n                        sym: \"DOG\",\n                    },\n                ),\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 75..116,\n        ident: Ident {\n            span: 80..96,\n            sym: \"AlienAnimalTypes\",\n        },\n        declare: false,\n        is_const: false,\n        members: [\n            TsEnumMember {\n                span: 101..113,\n                name: Ident(\n                    Ident {\n                        span: 101..104,\n                        sym: \"CAT\",\n                    },\n                ),\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 118..190,\n        ident: Ident {\n            span: 123..134,\n            sym: \"AnimalTypes\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 181..275,\n        ident: Ident {\n            span: 191..205,\n            sym: \"TerrestrialCat\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 210..253,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 210..214,\n                            sym: \"type\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 246..264,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 246..253,\n                            sym: \"address\",\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: 266..341,\n        ident: Ident {\n            span: 276..284,\n            sym: \"AlienCat\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 289..324,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 289..293,\n                            sym: \"type\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 318..335,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 318..324,\n                            sym: \"planet\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 337..381,\n        ident: Ident {\n            span: 342..346,\n            sym: \"Cats\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 448..613,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 448..612,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 454..460,\n        sym: \"catMap\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Str(\n        StrLit {\n            span: 50..55,\n            value: \"cat\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 65..70,\n            value: \"dog\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 107..112,\n            value: \"cat\",\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Array(\n    ArrayExpr {\n        span: 441..445,\n        elems: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 440..445,\n        op: Gt,\n        left: _,\n        right: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 494..516,\n        sym: \"TerrestrialAnimalTypes\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 516..521,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 517..520,\n                sym: \"CAT\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 531..533,\n            value: \"\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 486..536,\n        props: [\n            KeyValueProp {\n                span: 488..521,\n                key: Ident(\n                    Ident {\n                        span: 488..492,\n                        sym: \"type\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 522..535,\n                key: Ident(\n                    Ident {\n                        span: 522..529,\n                        sym: \"address\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 549..565,\n        sym: \"AlienAnimalTypes\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 565..570,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 566..569,\n                sym: \"CAT\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 579..581,\n            value: \"\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 541..587,\n        props: [\n            KeyValueProp {\n                span: 543..570,\n                key: Ident(\n                    Ident {\n                        span: 543..547,\n                        sym: \"type\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 571..583,\n                key: Ident(\n                    Ident {\n                        span: 571..577,\n                        sym: \"planet\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Array(\n    ArrayExpr {\n        span: 480..588,\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)",
    "Array(\n    ArrayExpr {\n        span: 596..601,\n        elems: [],\n    },\n)",
    "TsAs(\n    TsAsExpr {\n        span: 599..611,\n        expr: _,\n        ty: _,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 471..612,\n        props: [\n            KeyValueProp {\n                span: 475..588,\n                key: Ident(\n                    Ident {\n                        span: 475..478,\n                        sym: \"cat\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 591..611,\n                key: Ident(\n                    Ident {\n                        span: 591..594,\n                        sym: \"dog\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 137..161,\n        name: Ident {\n            span: 137..161,\n            sym: \"TerrestrialAnimalTypes\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 162..179,\n        name: Ident {\n            span: 162..179,\n            sym: \"AlienAnimalTypes\",\n        },\n        type_args: [],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 137..179,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 216..243,\n        name: Ident {\n            span: 216..243,\n            sym: \"TerrestrialAnimalTypes.CAT\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 295..324,\n        name: Ident {\n            span: 295..324,\n            sym: \"AlienAnimalTypes.CAT\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 349..365,\n        name: Ident {\n            span: 349..365,\n            sym: \"TerrestrialCat\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 366..375,\n        name: Ident {\n            span: 366..375,\n            sym: \"AlienCat\",\n        },\n        type_args: [],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 349..375,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Never,\n)",
    "Array(\n    TsArrayType {\n        span: 602..611,\n        elem_type: _,\n    },\n)"
  ]
}
