{ "type": "File", "start": 0, "end": 18, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 18 } }, "program": { "type": "Program", "start": 0, "end": 18, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 18 } }, "sourceType": "module", "body": [ { "type": "ClassDeclaration", "start": 0, "end": 18, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 18 } }, "id": { "type": "Identifier", "start": 6, "end": 7, "loc": { "start": { "line": 1, "column": 6 }, "end": { "line": 1, "column": 7 }, "identifierName": "A" }, "name": "A" }, "typeParameters": { "type": "TypeParameterDeclaration", "start": 7, "end": 15, "loc": { "start": { "line": 1, "column": 7 }, "end": { "line": 1, "column": 15 } }, "params": [ { "type": "TypeParameter", "start": 8, "end": 14, "loc": { "start": { "line": 1, "column": 8 }, "end": { "line": 1, "column": 14 } }, "name": "T", "variance": null, "bound": { "type": "TypeAnnotation", "start": 9, "end": 14, "loc": { "start": { "line": 1, "column": 9 }, "end": { "line": 1, "column": 14 } }, "typeAnnotation": { "type": "GenericTypeAnnotation", "start": 11, "end": 14, "loc": { "start": { "line": 1, "column": 11 }, "end": { "line": 1, "column": 14 } }, "typeParameters": null, "id": { "type": "Identifier", "start": 11, "end": 14, "loc": { "start": { "line": 1, "column": 11 }, "end": { "line": 1, "column": 14 }, "identifierName": "Foo" }, "name": "Foo" } } } } ] }, "superClass": null, "body": { "type": "ClassBody", "start": 16, "end": 18, "loc": { "start": { "line": 1, "column": 16 }, "end": { "line": 1, "column": 18 } }, "body": [] } } ], "directives": [] } }