{ "type": "Script", "span": { "start": 95, "end": 1174, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 95, "end": 153, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 105, "end": 106, "ctxt": 0 }, "value": "P", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 106, "end": 109, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 107, "end": 108, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 107, "end": 108, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 110, "end": 153, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 116, "end": 151, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 116, "end": 120, "ctxt": 0 }, "value": "then", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 121, "end": 143, "ctxt": 0 }, "value": "cb", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 123, "end": 143, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 125, "end": 143, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 126, "end": 134, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 131, "end": 134, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 133, "end": 134, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 133, "end": 134, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 136, "end": 143, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 139, "end": 143, "ctxt": 0 }, "kind": "void" } } } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 144, "end": 150, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 146, "end": 150, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "EmptyStatement", "span": { "start": 153, "end": 154, "ctxt": 0 } }, { "type": "TsInterfaceDeclaration", "span": { "start": 156, "end": 181, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 166, "end": 167, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 168, "end": 181, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 170, "end": 179, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 170, "end": 171, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 171, "end": 179, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 173, "end": 179, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 182, "end": 217, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 192, "end": 193, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 202, "end": 203, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 202, "end": 203, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 204, "end": 217, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 206, "end": 215, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 206, "end": 207, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 207, "end": 215, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 209, "end": 215, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 228, "end": 230, "ctxt": 0 }, "value": "f1", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 231, "end": 238, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 231, "end": 238, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 232, "end": 238, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 234, "end": 238, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 234, "end": 235, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 235, "end": 238, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 236, "end": 237, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 236, "end": 237, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } ] } } } } }, { "type": "Parameter", "span": { "start": 240, "end": 247, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 240, "end": 247, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 241, "end": 247, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 243, "end": 247, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 243, "end": 244, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 244, "end": 247, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 245, "end": 246, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 245, "end": 246, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 219, "end": 284, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 249, "end": 284, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 255, "end": 261, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 255, "end": 260, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 255, "end": 256, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 259, "end": 260, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 266, "end": 272, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 266, "end": 271, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 266, "end": 267, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 270, "end": 271, "ctxt": 0 }, "value": "a", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 295, "end": 297, "ctxt": 0 }, "value": "f2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 298, "end": 311, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 298, "end": 311, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 299, "end": 311, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 301, "end": 311, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 301, "end": 308, "ctxt": 0 }, "value": "Promise", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 308, "end": 311, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 309, "end": 310, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 309, "end": 310, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } ] } } } } }, { "type": "Parameter", "span": { "start": 313, "end": 326, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 313, "end": 326, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 314, "end": 326, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 316, "end": 326, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 316, "end": 323, "ctxt": 0 }, "value": "Promise", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 323, "end": 326, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 324, "end": 325, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 324, "end": 325, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 286, "end": 363, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 328, "end": 363, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 334, "end": 340, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 334, "end": 339, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 334, "end": 335, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 338, "end": 339, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 345, "end": 351, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 345, "end": 350, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 345, "end": 346, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 349, "end": 350, "ctxt": 0 }, "value": "a", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "TsInterfaceDeclaration", "span": { "start": 365, "end": 427, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 375, "end": 381, "ctxt": 0 }, "value": "AList1", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 382, "end": 427, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 388, "end": 425, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 388, "end": 395, "ctxt": 0 }, "value": "forEach", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 396, "end": 417, "ctxt": 0 }, "value": "cb", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 398, "end": 417, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 400, "end": 417, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 401, "end": 408, "ctxt": 0 }, "value": "item", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 405, "end": 408, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 407, "end": 408, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 407, "end": 408, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 410, "end": 417, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 413, "end": 417, "ctxt": 0 }, "kind": "void" } } } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 418, "end": 424, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 420, "end": 424, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 429, "end": 491, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 439, "end": 445, "ctxt": 0 }, "value": "BList1", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 446, "end": 491, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 452, "end": 489, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 452, "end": 459, "ctxt": 0 }, "value": "forEach", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 460, "end": 481, "ctxt": 0 }, "value": "cb", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 462, "end": 481, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 464, "end": 481, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 465, "end": 472, "ctxt": 0 }, "value": "item", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 469, "end": 472, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 471, "end": 472, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 471, "end": 472, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 474, "end": 481, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 477, "end": 481, "ctxt": 0 }, "kind": "void" } } } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 482, "end": 488, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 484, "end": 488, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 502, "end": 505, "ctxt": 0 }, "value": "f11", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 506, "end": 515, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 506, "end": 515, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 507, "end": 515, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 509, "end": 515, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 509, "end": 515, "ctxt": 0 }, "value": "AList1", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 517, "end": 526, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 517, "end": 526, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 518, "end": 526, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 520, "end": 526, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 520, "end": 526, "ctxt": 0 }, "value": "BList1", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 493, "end": 563, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 528, "end": 563, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 534, "end": 540, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 534, "end": 539, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 534, "end": 535, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 538, "end": 539, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 545, "end": 551, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 545, "end": 550, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 545, "end": 546, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 549, "end": 550, "ctxt": 0 }, "value": "a", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "TsInterfaceDeclaration", "span": { "start": 565, "end": 630, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 575, "end": 581, "ctxt": 0 }, "value": "AList2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 582, "end": 630, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 588, "end": 628, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 588, "end": 595, "ctxt": 0 }, "value": "forEach", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 596, "end": 620, "ctxt": 0 }, "value": "cb", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 598, "end": 620, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 600, "end": 620, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 601, "end": 608, "ctxt": 0 }, "value": "item", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 605, "end": 608, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 607, "end": 608, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 607, "end": 608, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 610, "end": 620, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 613, "end": 620, "ctxt": 0 }, "kind": "boolean" } } } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 621, "end": 627, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 623, "end": 627, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 632, "end": 694, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 642, "end": 648, "ctxt": 0 }, "value": "BList2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 649, "end": 694, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 655, "end": 692, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 655, "end": 662, "ctxt": 0 }, "value": "forEach", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 663, "end": 684, "ctxt": 0 }, "value": "cb", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 665, "end": 684, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 667, "end": 684, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 668, "end": 675, "ctxt": 0 }, "value": "item", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 672, "end": 675, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 674, "end": 675, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 674, "end": 675, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 677, "end": 684, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 680, "end": 684, "ctxt": 0 }, "kind": "void" } } } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 685, "end": 691, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 687, "end": 691, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 705, "end": 708, "ctxt": 0 }, "value": "f12", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 709, "end": 718, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 709, "end": 718, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 710, "end": 718, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 712, "end": 718, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 712, "end": 718, "ctxt": 0 }, "value": "AList2", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 720, "end": 729, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 720, "end": 729, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 721, "end": 729, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 723, "end": 729, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 723, "end": 729, "ctxt": 0 }, "value": "BList2", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 696, "end": 766, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 731, "end": 766, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 737, "end": 743, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 737, "end": 742, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 737, "end": 738, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 741, "end": 742, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 748, "end": 754, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 748, "end": 753, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 748, "end": 749, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 752, "end": 753, "ctxt": 0 }, "value": "a", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "TsInterfaceDeclaration", "span": { "start": 768, "end": 830, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 778, "end": 784, "ctxt": 0 }, "value": "AList3", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 785, "end": 830, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 791, "end": 828, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 791, "end": 798, "ctxt": 0 }, "value": "forEach", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 799, "end": 820, "ctxt": 0 }, "value": "cb", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 801, "end": 820, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 803, "end": 820, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 804, "end": 811, "ctxt": 0 }, "value": "item", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 808, "end": 811, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 810, "end": 811, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 810, "end": 811, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 813, "end": 820, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 816, "end": 820, "ctxt": 0 }, "kind": "void" } } } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 821, "end": 827, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 823, "end": 827, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 832, "end": 908, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 842, "end": 848, "ctxt": 0 }, "value": "BList3", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 849, "end": 908, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 855, "end": 906, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 855, "end": 862, "ctxt": 0 }, "value": "forEach", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 863, "end": 898, "ctxt": 0 }, "value": "cb", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 865, "end": 898, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 867, "end": 898, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 868, "end": 875, "ctxt": 0 }, "value": "item", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 872, "end": 875, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 874, "end": 875, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 874, "end": 875, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 877, "end": 889, "ctxt": 0 }, "value": "context", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 884, "end": 889, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 886, "end": 889, "ctxt": 0 }, "kind": "any" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 891, "end": 898, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 894, "end": 898, "ctxt": 0 }, "kind": "void" } } } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 899, "end": 905, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 901, "end": 905, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 919, "end": 922, "ctxt": 0 }, "value": "f13", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 923, "end": 932, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 923, "end": 932, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 924, "end": 932, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 926, "end": 932, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 926, "end": 932, "ctxt": 0 }, "value": "AList3", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 934, "end": 943, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 934, "end": 943, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 935, "end": 943, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 937, "end": 943, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 937, "end": 943, "ctxt": 0 }, "value": "BList3", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 910, "end": 980, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 945, "end": 980, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 951, "end": 957, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 951, "end": 956, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 951, "end": 952, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 955, "end": 956, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 962, "end": 968, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 962, "end": 967, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 962, "end": 963, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 966, "end": 967, "ctxt": 0 }, "value": "a", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "TsInterfaceDeclaration", "span": { "start": 982, "end": 1041, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 992, "end": 998, "ctxt": 0 }, "value": "AList4", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 999, "end": 1041, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 1005, "end": 1039, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1005, "end": 1012, "ctxt": 0 }, "value": "forEach", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 1013, "end": 1031, "ctxt": 0 }, "value": "cb", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1015, "end": 1031, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1017, "end": 1031, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1018, "end": 1025, "ctxt": 0 }, "value": "item", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1022, "end": 1025, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1024, "end": 1025, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1024, "end": 1025, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1027, "end": 1031, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1030, "end": 1031, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1030, "end": 1031, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 1032, "end": 1038, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1034, "end": 1038, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1043, "end": 1102, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1053, "end": 1059, "ctxt": 0 }, "value": "BList4", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1060, "end": 1102, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 1066, "end": 1100, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1066, "end": 1073, "ctxt": 0 }, "value": "forEach", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 1074, "end": 1092, "ctxt": 0 }, "value": "cb", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1076, "end": 1092, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1078, "end": 1092, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1079, "end": 1086, "ctxt": 0 }, "value": "item", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1083, "end": 1086, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1085, "end": 1086, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1085, "end": 1086, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1088, "end": 1092, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1091, "end": 1092, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1091, "end": 1092, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } } } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 1093, "end": 1099, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1095, "end": 1099, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1113, "end": 1116, "ctxt": 0 }, "value": "f14", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1117, "end": 1126, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1117, "end": 1126, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1118, "end": 1126, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1120, "end": 1126, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1120, "end": 1126, "ctxt": 0 }, "value": "AList4", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 1128, "end": 1137, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1128, "end": 1137, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1129, "end": 1137, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1131, "end": 1137, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1131, "end": 1137, "ctxt": 0 }, "value": "BList4", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 1104, "end": 1174, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1139, "end": 1174, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1145, "end": 1151, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1145, "end": 1150, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1145, "end": 1146, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1149, "end": 1150, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1156, "end": 1162, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1156, "end": 1161, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1156, "end": 1157, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1160, "end": 1161, "ctxt": 0 }, "value": "a", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } ], "interpreter": null }