{
  "programs": [
    "Program {\n    span: 41..1679,\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}"
  ],
  "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)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1391..1393,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1392..1394,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1393..1402,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1481..1490,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1483..1494,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 41..77,\n        ident: Ident {\n            span: 46..49,\n            sym: \"Box\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 50..51,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 78..136,\n        ident: Ident {\n            span: 87..91,\n            sym: \"wrap\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 137..217,\n        ident: Ident {\n            span: 146..153,\n            sym: \"compose\",\n        },\n        declare: true,\n        params: [\n            _,\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 218..255,\n        ident: Ident {\n            span: 227..231,\n            sym: \"list\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 256..295,\n        ident: Ident {\n            span: 265..271,\n            sym: \"unlist\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 296..335,\n        ident: Ident {\n            span: 305..308,\n            sym: \"box\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 336..377,\n        ident: Ident {\n            span: 345..350,\n            sym: \"unbox\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 378..435,\n        ident: Ident {\n            span: 387..390,\n            sym: \"map\",\n        },\n        declare: true,\n        params: [\n            _,\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 436..475,\n        ident: Ident {\n            span: 445..453,\n            sym: \"identity\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 476..524,\n        ident: Ident {\n            span: 485..488,\n            sym: \"zip\",\n        },\n        declare: true,\n        params: [\n            _,\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 525..596,\n        ident: Ident {\n            span: 534..538,\n            sym: \"flip\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 591..604,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 591..604,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 627..640,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 627..640,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 667..680,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 667..680,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 709..722,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 709..722,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 756..769,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 756..769,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 827..840,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 827..840,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 882..895,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 882..895,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 957..970,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 957..970,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1017..1087,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1017..1081,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1082..1162,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1082..1155,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1157..1226,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1157..1220,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1221..1234,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1221..1234,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1275..1288,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1275..1288,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1327..1340,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1327..1340,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1397..1474,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1397..1468,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1469..1482,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1469..1482,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1554..1567,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1554..1567,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1630..1642,\n        ident: Ident {\n            span: 1635..1637,\n            sym: \"fn\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1656..1679,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1656..1678,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 98..99,\n        sym: \"f\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 163..164,\n        sym: \"f\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 179..180,\n        sym: \"g\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 235..236,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 275..276,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 312..313,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 354..355,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 397..398,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 405..406,\n        sym: \"f\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 457..458,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 495..496,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 501..502,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 548..549,\n        sym: \"f\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 597..600,\n        sym: \"f00\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 633..636,\n        sym: \"f01\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 673..676,\n        sym: \"f02\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 715..718,\n        sym: \"f03\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 762..765,\n        sym: \"f10\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 833..836,\n        sym: \"f11\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 888..891,\n        sym: \"f12\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 963..966,\n        sym: \"f13\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1023..1031,\n        sym: \"arrayMap\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1041..1042,\n        sym: \"f\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1061..1062,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1032..1081,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1088..1099,\n        sym: \"arrayFilter\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1106..1107,\n        sym: \"f\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1132..1133,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1100..1155,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1163..1166,\n        sym: \"f20\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1205..1206,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1227..1230,\n        sym: \"f21\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1281..1284,\n        sym: \"f22\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1333..1336,\n        sym: \"f23\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1403..1406,\n        sym: \"f30\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1448..1449,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1475..1478,\n        sym: \"f31\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1560..1563,\n        sym: \"f40\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1662..1664,\n        sym: \"fn\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1671..1672,\n        sym: \"a\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 1072..1073,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1073..1078,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1074..1077,\n                sym: \"map\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1078..1079,\n        sym: \"f\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1077..1081,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1060..1081,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1040..1081,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1143..1144,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1144..1152,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1145..1151,\n                sym: \"filter\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1152..1153,\n        sym: \"f\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1151..1155,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1131..1155,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1105..1155,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1196..1204,\n        sym: \"arrayMap\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1210..1211,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1211..1219,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1212..1218,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1205..1219,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1204..1220,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\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: 1436..1447,\n        sym: \"arrayFilter\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1453..1454,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1454..1463,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1455..1461,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1464..1466,\n            value: 10.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 1462..1467,\n        op: Gt,\n        left: _,\n        right: _,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1448..1467,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1447..1468,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1481..1482,\n        sym: \"T\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1676..1677,\n        sym: \"a\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1671..1678,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 64..67,\n        name: Ident {\n            span: 64..67,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 55..68,\n        members: [\n            TsTypeMember {\n                span: 57..67,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 57..62,\n                            sym: \"value\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Keyword(\n    Any,\n)"
  ]
}
