{
  "programs": [
    "Program {\n    span: 1..602,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 23..112,\n        ident: Ident {\n            span: 33..38,\n            sym: \"Point\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 49..69,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 49..50,\n                            sym: \"x\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 68..94,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 68..69,\n                            sym: \"y\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 87..110,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 87..94,\n                            sym: \"toCarth\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 1..120,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 8..9,\n                sym: \"A\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 129..182,\n        ident: Ident {\n            span: 139..144,\n            sym: \"Point\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 155..180,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 155..164,\n                            sym: \"fromCarth\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 114..216,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 121..122,\n                sym: \"A\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "Var(\n    VarDecl {\n        span: 213..270,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 213..266,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 267..290,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 267..282,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 310..378,\n        ident: Ident {\n            span: 320..324,\n            sym: \"Line\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 335..376,\n                kind: Construct,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 340..355,\n                        name: Some(\n                            Ident {\n                                span: 340..345,\n                                sym: \"start\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 356..369,\n                        name: Some(\n                            Ident {\n                                span: 356..359,\n                                sym: \"end\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 284..386,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 291..292,\n                sym: \"X\",\n            },\n        ),\n        body: Some(\n            Namespace(\n                TsNamespaceDecl {\n                    span: 284..386,\n                    declare: false,\n                    global: false,\n                    id: Ident {\n                        span: 291..292,\n                        sym: \"X\",\n                    },\n                    body: Namespace(\n                        TsNamespaceDecl {\n                            span: 293..386,\n                            declare: false,\n                            global: false,\n                            id: Ident {\n                                span: 293..294,\n                                sym: \"Y\",\n                            },\n                            body: Namespace(\n                                TsNamespaceDecl {\n                                    span: 295..386,\n                                    declare: false,\n                                    global: false,\n                                    id: Ident {\n                                        span: 295..296,\n                                        sym: \"Z\",\n                                    },\n                                    body: ModuleBlock(\n                                        [\n                                            _,\n                                        ],\n                                    ),\n                                },\n                            ),\n                        },\n                    ),\n                },\n            ),\n        ),\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 423..509,\n        ident: Ident {\n            span: 433..437,\n            sym: \"Line\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 452..483,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 452..457,\n                            sym: \"start\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 480..503,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 480..483,\n                            sym: \"end\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 402..511,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 409..410,\n                sym: \"Y\",\n            },\n        ),\n        body: Some(\n            Namespace(\n                TsNamespaceDecl {\n                    span: 402..511,\n                    declare: false,\n                    global: false,\n                    id: Ident {\n                        span: 409..410,\n                        sym: \"Y\",\n                    },\n                    body: Namespace(\n                        TsNamespaceDecl {\n                            span: 411..511,\n                            declare: false,\n                            global: false,\n                            id: Ident {\n                                span: 411..412,\n                                sym: \"Z\",\n                            },\n                            body: ModuleBlock(\n                                [\n                                    _,\n                                ],\n                            ),\n                        },\n                    ),\n                },\n            ),\n        ),\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 380..545,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 387..388,\n                sym: \"X\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "Var(\n    VarDecl {\n        span: 542..586,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 542..586,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 583..602,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 583..601,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 217..218,\n        sym: \"p\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 271..272,\n        sym: \"p\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 546..547,\n        sym: \"l\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 587..588,\n        sym: \"l\",\n    },\n)"
  ],
  "exprs": [],
  "module_decls": [
    "ExportDecl(\n    ExportDecl {\n        span: 16..112,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 303..378,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 395..511,\n        decl: _,\n    },\n)"
  ],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 98..104,\n        name: Ident {\n            span: 98..104,\n            sym: \"Point\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 168..174,\n        name: Ident {\n            span: 168..174,\n            sym: \"Point\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 347..355,\n        name: Ident {\n            span: 347..355,\n            sym: \"A.Point\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 361..369,\n        name: Ident {\n            span: 361..369,\n            sym: \"A.Point\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 459..467,\n        name: Ident {\n            span: 459..467,\n            sym: \"A.Point\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 485..493,\n        name: Ident {\n            span: 485..493,\n            sym: \"A.Point\",\n        },\n        type_args: [],\n    },\n)"
  ]
}
