1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSTypeAliasDeclaration",
6      "id": {
7        "type": "Identifier",
8        "name": "Mapper",
9        "loc": {
10          "start": {
11            "line": 17,
12            "column": 6
13          },
14          "end": {
15            "line": 17,
16            "column": 12
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": "U",
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": 16
115                },
116                "end": {
117                  "line": 17,
118                  "column": 17
119                }
120              }
121            },
122            "in": true,
123            "out": false,
124            "loc": {
125              "start": {
126                "line": 17,
127                "column": 13
128              },
129              "end": {
130                "line": 17,
131                "column": 18
132              }
133            }
134          },
135          {
136            "type": "TSTypeParameter",
137            "name": {
138              "type": "Identifier",
139              "name": "U",
140              "loc": {
141                "start": {
142                  "line": 17,
143                  "column": 23
144                },
145                "end": {
146                  "line": 17,
147                  "column": 24
148                }
149              }
150            },
151            "in": false,
152            "out": true,
153            "loc": {
154              "start": {
155                "line": 17,
156                "column": 19
157              },
158              "end": {
159                "line": 17,
160                "column": 25
161              }
162            }
163          }
164        ],
165        "loc": {
166          "start": {
167            "line": 17,
168            "column": 12
169          },
170          "end": {
171            "line": 17,
172            "column": 25
173          }
174        }
175      },
176      "loc": {
177        "start": {
178          "line": 17,
179          "column": 1
180        },
181        "end": {
182          "line": 17,
183          "column": 40
184        }
185      }
186    }
187  ],
188  "loc": {
189    "start": {
190      "line": 1,
191      "column": 1
192    },
193    "end": {
194      "line": 17,
195      "column": 40
196    }
197  }
198}
199