1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSTypeAliasDeclaration",
6      "id": {
7        "type": "Identifier",
8        "name": "Processor",
9        "loc": {
10          "start": {
11            "line": 17,
12            "column": 6
13          },
14          "end": {
15            "line": 17,
16            "column": 15
17          }
18        }
19      },
20      "typeAnnotation": {
21        "type": "TSFunctionType",
22        "params": [
23          {
24            "type": "Identifier",
25            "name": "x",
26            "typeAnnotation": {
27              "type": "TSTypeReference",
28              "typeName": {
29                "type": "Identifier",
30                "name": "T",
31                "loc": {
32                  "start": {
33                    "line": 17,
34                    "column": 32
35                  },
36                  "end": {
37                    "line": 17,
38                    "column": 33
39                  }
40                }
41              },
42              "loc": {
43                "start": {
44                  "line": 17,
45                  "column": 32
46                },
47                "end": {
48                  "line": 17,
49                  "column": 33
50                }
51              }
52            },
53            "loc": {
54              "start": {
55                "line": 17,
56                "column": 29
57              },
58              "end": {
59                "line": 17,
60                "column": 30
61              }
62            }
63          }
64        ],
65        "returnType": {
66          "type": "TSTypeReference",
67          "typeName": {
68            "type": "Identifier",
69            "name": "T",
70            "loc": {
71              "start": {
72                "line": 17,
73                "column": 38
74              },
75              "end": {
76                "line": 17,
77                "column": 39
78              }
79            }
80          },
81          "loc": {
82            "start": {
83              "line": 17,
84              "column": 38
85            },
86            "end": {
87              "line": 17,
88              "column": 39
89            }
90          }
91        },
92        "loc": {
93          "start": {
94            "line": 17,
95            "column": 28
96          },
97          "end": {
98            "line": 17,
99            "column": 39
100          }
101        }
102      },
103      "typeParameters": {
104        "type": "TSTypeParameterDeclaration",
105        "params": [
106          {
107            "type": "TSTypeParameter",
108            "name": {
109              "type": "Identifier",
110              "name": "T",
111              "loc": {
112                "start": {
113                  "line": 17,
114                  "column": 23
115                },
116                "end": {
117                  "line": 17,
118                  "column": 24
119                }
120              }
121            },
122            "in": true,
123            "out": true,
124            "loc": {
125              "start": {
126                "line": 17,
127                "column": 16
128              },
129              "end": {
130                "line": 17,
131                "column": 25
132              }
133            }
134          }
135        ],
136        "loc": {
137          "start": {
138            "line": 17,
139            "column": 15
140          },
141          "end": {
142            "line": 17,
143            "column": 25
144          }
145        }
146      },
147      "loc": {
148        "start": {
149          "line": 17,
150          "column": 1
151        },
152        "end": {
153          "line": 17,
154          "column": 40
155        }
156      }
157    }
158  ],
159  "loc": {
160    "start": {
161      "line": 1,
162      "column": 1
163    },
164    "end": {
165      "line": 17,
166      "column": 40
167    }
168  }
169}
170