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