{
  "programs": [
    "Program {\n    span: 1..434,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Expr(\n    ExprStmt {\n        span: 98..163,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 88..168,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 210..277,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 200..282,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 293..360,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 283..362,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 169..362,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "If(\n    IfStmt {\n        span: 59..362,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 364..400,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 389..421,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 410..434,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Fn(\n    FnDecl {\n        span: 1..375,\n        ident: Ident {\n            span: 10..21,\n            sym: \"distinguish\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 22..27,\n        sym: \"thing\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 63..68,\n        sym: \"thing\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 80..86,\n        sym: \"Object\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 69..87,\n        op: InstanceOf,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 98..105,\n        sym: \"console\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 105..110,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 106..109,\n                sym: \"log\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 110..133,\n            value: \"Aha!! It's a Date in \",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 136..141,\n        sym: \"thing\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 141..154,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 142..153,\n                sym: \"getFullYear\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 153..156,\n        callee: _,\n        args: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 134..156,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 109..157,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 180..185,\n        sym: \"thing\",\n    },\n)",
    "Unary(\n    UnaryExpr {\n        span: 173..189,\n        op: TypeOf,\n        arg: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 190..198,\n            value: \"string\",\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 186..199,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 210..217,\n        sym: \"console\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 217..222,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 218..221,\n                sym: \"log\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 222..254,\n            value: \"Aha!! It's a string of length \",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 257..262,\n        sym: \"thing\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 262..270,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 263..269,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 255..270,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 221..271,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 293..300,\n        sym: \"console\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 300..305,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 301..304,\n                sym: \"log\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 305..329,\n            value: \"Aha!! It's the number \",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 332..337,\n        sym: \"thing\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 337..350,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 338..349,\n                sym: \"toPrecision\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 350..351,\n            value: 3.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 349..353,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 330..353,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 304..354,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 364..375,\n        sym: \"distinguish\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 380..384,\n        sym: \"Date\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 384..387,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 376..387,\n        callee: _,\n        args: [],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 375..388,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 389..400,\n        sym: \"distinguish\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 401..407,\n            value: \"beef\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 400..409,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 410..421,\n        sym: \"distinguish\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 422..432,\n            value: 3.14159265,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 421..434,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": []
}
