{ "type": "File", "start":0,"end":86,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":86}}, "program": { "type": "Program", "start":0,"end":86,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":86}}, "sourceType": "module", "interpreter": null, "body": [ { "type": "DeclareFunction", "start":0,"end":86,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":86}}, "id": { "type": "Identifier", "start":17,"end":85,"loc":{"start":{"line":1,"column":17},"end":{"line":1,"column":85},"identifierName":"my_filter"}, "name": "my_filter", "typeAnnotation": { "type": "TypeAnnotation", "start":26,"end":85,"loc":{"start":{"line":1,"column":26},"end":{"line":1,"column":85}}, "typeAnnotation": { "type": "FunctionTypeAnnotation", "start":26,"end":85,"loc":{"start":{"line":1,"column":26},"end":{"line":1,"column":85}}, "typeParameters": { "type": "TypeParameterDeclaration", "start":26,"end":42,"loc":{"start":{"line":1,"column":26},"end":{"line":1,"column":42}}, "params": [ { "type": "TypeParameter", "start":27,"end":28,"loc":{"start":{"line":1,"column":27},"end":{"line":1,"column":28}}, "name": "T", "variance": null }, { "type": "TypeParameter", "start":30,"end":41,"loc":{"start":{"line":1,"column":30},"end":{"line":1,"column":41}}, "name": "P", "variance": null, "bound": { "type": "TypeAnnotation", "start":31,"end":41,"loc":{"start":{"line":1,"column":31},"end":{"line":1,"column":41}}, "typeAnnotation": { "type": "GenericTypeAnnotation", "start":33,"end":41,"loc":{"start":{"line":1,"column":33},"end":{"line":1,"column":41}}, "typeParameters": { "type": "TypeParameterInstantiation", "start":38,"end":41,"loc":{"start":{"line":1,"column":38},"end":{"line":1,"column":41}}, "params": [ { "type": "NumberLiteralTypeAnnotation", "start":39,"end":40,"loc":{"start":{"line":1,"column":39},"end":{"line":1,"column":40}}, "extra": { "rawValue": 1, "raw": "1" }, "value": 1 } ] }, "id": { "type": "Identifier", "start":33,"end":38,"loc":{"start":{"line":1,"column":33},"end":{"line":1,"column":38},"identifierName":"$Pred"}, "name": "$Pred" } } } } ] }, "params": [ { "type": "FunctionTypeParam", "start":43,"end":54,"loc":{"start":{"line":1,"column":43},"end":{"line":1,"column":54}}, "name": { "type": "Identifier", "start":43,"end":44,"loc":{"start":{"line":1,"column":43},"end":{"line":1,"column":44},"identifierName":"v"}, "name": "v" }, "optional": false, "typeAnnotation": { "type": "GenericTypeAnnotation", "start":46,"end":54,"loc":{"start":{"line":1,"column":46},"end":{"line":1,"column":54}}, "typeParameters": { "type": "TypeParameterInstantiation", "start":51,"end":54,"loc":{"start":{"line":1,"column":51},"end":{"line":1,"column":54}}, "params": [ { "type": "GenericTypeAnnotation", "start":52,"end":53,"loc":{"start":{"line":1,"column":52},"end":{"line":1,"column":53}}, "typeParameters": null, "id": { "type": "Identifier", "start":52,"end":53,"loc":{"start":{"line":1,"column":52},"end":{"line":1,"column":53},"identifierName":"T"}, "name": "T" } } ] }, "id": { "type": "Identifier", "start":46,"end":51,"loc":{"start":{"line":1,"column":46},"end":{"line":1,"column":51},"identifierName":"Array"}, "name": "Array" } } }, { "type": "FunctionTypeParam", "start":56,"end":61,"loc":{"start":{"line":1,"column":56},"end":{"line":1,"column":61}}, "name": { "type": "Identifier", "start":56,"end":58,"loc":{"start":{"line":1,"column":56},"end":{"line":1,"column":58},"identifierName":"cb"}, "name": "cb" }, "optional": false, "typeAnnotation": { "type": "GenericTypeAnnotation", "start":60,"end":61,"loc":{"start":{"line":1,"column":60},"end":{"line":1,"column":61}}, "typeParameters": null, "id": { "type": "Identifier", "start":60,"end":61,"loc":{"start":{"line":1,"column":60},"end":{"line":1,"column":61},"identifierName":"P"}, "name": "P" } } } ], "rest": null, "this": null, "returnType": { "type": "GenericTypeAnnotation", "start":64,"end":85,"loc":{"start":{"line":1,"column":64},"end":{"line":1,"column":85}}, "typeParameters": { "type": "TypeParameterInstantiation", "start":69,"end":85,"loc":{"start":{"line":1,"column":69},"end":{"line":1,"column":85}}, "params": [ { "type": "GenericTypeAnnotation", "start":70,"end":84,"loc":{"start":{"line":1,"column":70},"end":{"line":1,"column":84}}, "typeParameters": { "type": "TypeParameterInstantiation", "start":77,"end":84,"loc":{"start":{"line":1,"column":77},"end":{"line":1,"column":84}}, "params": [ { "type": "GenericTypeAnnotation", "start":78,"end":79,"loc":{"start":{"line":1,"column":78},"end":{"line":1,"column":79}}, "typeParameters": null, "id": { "type": "Identifier", "start":78,"end":79,"loc":{"start":{"line":1,"column":78},"end":{"line":1,"column":79},"identifierName":"T"}, "name": "T" } }, { "type": "GenericTypeAnnotation", "start":80,"end":81,"loc":{"start":{"line":1,"column":80},"end":{"line":1,"column":81}}, "typeParameters": null, "id": { "type": "Identifier", "start":80,"end":81,"loc":{"start":{"line":1,"column":80},"end":{"line":1,"column":81},"identifierName":"P"}, "name": "P" } }, { "type": "NumberLiteralTypeAnnotation", "start":82,"end":83,"loc":{"start":{"line":1,"column":82},"end":{"line":1,"column":83}}, "extra": { "rawValue": 1, "raw": "1" }, "value": 1 } ] }, "id": { "type": "Identifier", "start":70,"end":77,"loc":{"start":{"line":1,"column":70},"end":{"line":1,"column":77},"identifierName":"$Refine"}, "name": "$Refine" } } ] }, "id": { "type": "Identifier", "start":64,"end":69,"loc":{"start":{"line":1,"column":64},"end":{"line":1,"column":69},"identifierName":"Array"}, "name": "Array" } } } } }, "predicate": null } ], "directives": [] } }