{ "type": "File", "start": 0, "end": 29, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 29 } }, "program": { "type": "Program", "start": 0, "end": 29, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 29 } }, "sourceType": "module", "body": [ { "type": "FunctionDeclaration", "start": 0, "end": 29, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 29 } }, "id": { "type": "Identifier", "start": 9, "end": 12, "loc": { "start": { "line": 1, "column": 9 }, "end": { "line": 1, "column": 12 }, "identifierName": "bar" }, "name": "bar" }, "generator": false, "expression": false, "async": false, "typeParameters": { "type": "TypeParameterDeclaration", "start": 12, "end": 24, "loc": { "start": { "line": 1, "column": 12 }, "end": { "line": 1, "column": 24 } }, "params": [ { "type": "TypeParameter", "start": 13, "end": 23, "loc": { "start": { "line": 1, "column": 13 }, "end": { "line": 1, "column": 23 } }, "name": "T", "variance": null, "bound": { "type": "TypeAnnotation", "start": 14, "end": 23, "loc": { "start": { "line": 1, "column": 14 }, "end": { "line": 1, "column": 23 } }, "typeAnnotation": { "type": "NullableTypeAnnotation", "start": 16, "end": 23, "loc": { "start": { "line": 1, "column": 16 }, "end": { "line": 1, "column": 23 } }, "typeAnnotation": { "type": "NumberTypeAnnotation", "start": 17, "end": 23, "loc": { "start": { "line": 1, "column": 17 }, "end": { "line": 1, "column": 23 } } } } } } ] }, "params": [], "body": { "type": "BlockStatement", "start": 27, "end": 29, "loc": { "start": { "line": 1, "column": 27 }, "end": { "line": 1, "column": 29 } }, "body": [], "directives": [] } } ], "directives": [] } }