1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSTypeAliasDeclaration",
6      "id": {
7        "type": "Identifier",
8        "name": "I2v",
9        "decorators": [],
10        "loc": {
11          "start": {
12            "line": 16,
13            "column": 6
14          },
15          "end": {
16            "line": 16,
17            "column": 9
18          }
19        }
20      },
21      "typeAnnotation": {
22        "type": "ETSFunctionType",
23        "params": [
24          {
25            "type": "ETSParameterExpression",
26            "name": {
27              "type": "Identifier",
28              "name": "i",
29              "typeAnnotation": {
30                "type": "ETSPrimitiveType",
31                "loc": {
32                  "start": {
33                    "line": 16,
34                    "column": 16
35                  },
36                  "end": {
37                    "line": 16,
38                    "column": 19
39                  }
40                }
41              },
42              "decorators": [],
43              "loc": {
44                "start": {
45                  "line": 16,
46                  "column": 13
47                },
48                "end": {
49                  "line": 16,
50                  "column": 19
51                }
52              }
53            },
54            "loc": {
55              "start": {
56                "line": 16,
57                "column": 13
58              },
59              "end": {
60                "line": 16,
61                "column": 19
62              }
63            }
64          }
65        ],
66        "returnType": {
67          "type": "ETSPrimitiveType",
68          "loc": {
69            "start": {
70              "line": 16,
71              "column": 24
72            },
73            "end": {
74              "line": 16,
75              "column": 28
76            }
77          }
78        },
79        "loc": {
80          "start": {
81            "line": 16,
82            "column": 12
83          },
84          "end": {
85            "line": 16,
86            "column": 28
87          }
88        }
89      },
90      "loc": {
91        "start": {
92          "line": 16,
93          "column": 1
94        },
95        "end": {
96          "line": 17,
97          "column": 5
98        }
99      }
100    },
101    {
102      "type": "TSTypeAliasDeclaration",
103      "id": {
104        "type": "Identifier",
105        "name": "T1",
106        "decorators": [],
107        "loc": {
108          "start": {
109            "line": 17,
110            "column": 6
111          },
112          "end": {
113            "line": 17,
114            "column": 8
115          }
116        }
117      },
118      "typeAnnotation": {
119        "type": "ETSFunctionType",
120        "params": [
121          {
122            "type": "ETSParameterExpression",
123            "name": {
124              "type": "Identifier",
125              "name": "lambda",
126              "typeAnnotation": {
127                "type": "ETSFunctionType",
128                "params": [
129                  {
130                    "type": "ETSParameterExpression",
131                    "name": {
132                      "type": "Identifier",
133                      "name": "arg",
134                      "typeAnnotation": {
135                        "type": "ETSPrimitiveType",
136                        "loc": {
137                          "start": {
138                            "line": 17,
139                            "column": 26
140                          },
141                          "end": {
142                            "line": 17,
143                            "column": 29
144                          }
145                        }
146                      },
147                      "decorators": [],
148                      "loc": {
149                        "start": {
150                          "line": 17,
151                          "column": 21
152                        },
153                        "end": {
154                          "line": 17,
155                          "column": 29
156                        }
157                      }
158                    },
159                    "loc": {
160                      "start": {
161                        "line": 17,
162                        "column": 21
163                      },
164                      "end": {
165                        "line": 17,
166                        "column": 29
167                      }
168                    }
169                  }
170                ],
171                "returnType": {
172                  "type": "ETSPrimitiveType",
173                  "loc": {
174                    "start": {
175                      "line": 17,
176                      "column": 34
177                    },
178                    "end": {
179                      "line": 17,
180                      "column": 37
181                    }
182                  }
183                },
184                "loc": {
185                  "start": {
186                    "line": 17,
187                    "column": 20
188                  },
189                  "end": {
190                    "line": 17,
191                    "column": 37
192                  }
193                }
194              },
195              "decorators": [],
196              "loc": {
197                "start": {
198                  "line": 17,
199                  "column": 12
200                },
201                "end": {
202                  "line": 17,
203                  "column": 37
204                }
205              }
206            },
207            "loc": {
208              "start": {
209                "line": 17,
210                "column": 12
211              },
212              "end": {
213                "line": 17,
214                "column": 37
215              }
216            }
217          },
218          {
219            "type": "ETSParameterExpression",
220            "name": {
221              "type": "Identifier",
222              "name": "arg",
223              "typeAnnotation": {
224                "type": "ETSPrimitiveType",
225                "loc": {
226                  "start": {
227                    "line": 17,
228                    "column": 44
229                  },
230                  "end": {
231                    "line": 17,
232                    "column": 47
233                  }
234                }
235              },
236              "decorators": [],
237              "loc": {
238                "start": {
239                  "line": 17,
240                  "column": 39
241                },
242                "end": {
243                  "line": 17,
244                  "column": 47
245                }
246              }
247            },
248            "loc": {
249              "start": {
250                "line": 17,
251                "column": 39
252              },
253              "end": {
254                "line": 17,
255                "column": 47
256              }
257            }
258          }
259        ],
260        "returnType": {
261          "type": "ETSPrimitiveType",
262          "loc": {
263            "start": {
264              "line": 17,
265              "column": 52
266            },
267            "end": {
268              "line": 17,
269              "column": 55
270            }
271          }
272        },
273        "loc": {
274          "start": {
275            "line": 17,
276            "column": 11
277          },
278          "end": {
279            "line": 17,
280            "column": 55
281          }
282        }
283      },
284      "loc": {
285        "start": {
286          "line": 17,
287          "column": 1
288        },
289        "end": {
290          "line": 18,
291          "column": 5
292        }
293      }
294    },
295    {
296      "type": "TSTypeAliasDeclaration",
297      "id": {
298        "type": "Identifier",
299        "name": "T2",
300        "decorators": [],
301        "loc": {
302          "start": {
303            "line": 18,
304            "column": 6
305          },
306          "end": {
307            "line": 18,
308            "column": 8
309          }
310        }
311      },
312      "typeAnnotation": {
313        "type": "ETSFunctionType",
314        "params": [
315          {
316            "type": "ETSParameterExpression",
317            "name": {
318              "type": "Identifier",
319              "name": "c",
320              "typeAnnotation": {
321                "type": "ETSPrimitiveType",
322                "loc": {
323                  "start": {
324                    "line": 18,
325                    "column": 15
326                  },
327                  "end": {
328                    "line": 18,
329                    "column": 18
330                  }
331                }
332              },
333              "decorators": [],
334              "loc": {
335                "start": {
336                  "line": 18,
337                  "column": 12
338                },
339                "end": {
340                  "line": 18,
341                  "column": 18
342                }
343              }
344            },
345            "loc": {
346              "start": {
347                "line": 18,
348                "column": 12
349              },
350              "end": {
351                "line": 18,
352                "column": 18
353              }
354            }
355          }
356        ],
357        "returnType": {
358          "type": "ETSPrimitiveType",
359          "loc": {
360            "start": {
361              "line": 18,
362              "column": 23
363            },
364            "end": {
365              "line": 18,
366              "column": 26
367            }
368          }
369        },
370        "loc": {
371          "start": {
372            "line": 18,
373            "column": 11
374          },
375          "end": {
376            "line": 18,
377            "column": 26
378          }
379        }
380      },
381      "loc": {
382        "start": {
383          "line": 18,
384          "column": 1
385        },
386        "end": {
387          "line": 20,
388          "column": 6
389        }
390      }
391    },
392    {
393      "type": "ClassDeclaration",
394      "definition": {
395        "id": {
396          "type": "Identifier",
397          "name": "ETSGLOBAL",
398          "decorators": [],
399          "loc": {
400            "start": {
401              "line": 1,
402              "column": 1
403            },
404            "end": {
405              "line": 1,
406              "column": 1
407            }
408          }
409        },
410        "superClass": null,
411        "implements": [],
412        "body": [
413          {
414            "type": "MethodDefinition",
415            "key": {
416              "type": "Identifier",
417              "name": "_$init$_",
418              "decorators": [],
419              "loc": {
420                "start": {
421                  "line": 1,
422                  "column": 1
423                },
424                "end": {
425                  "line": 1,
426                  "column": 1
427                }
428              }
429            },
430            "kind": "method",
431            "accessibility": "public",
432            "static": true,
433            "optional": false,
434            "computed": false,
435            "value": {
436              "type": "FunctionExpression",
437              "function": {
438                "type": "ScriptFunction",
439                "id": {
440                  "type": "Identifier",
441                  "name": "_$init$_",
442                  "decorators": [],
443                  "loc": {
444                    "start": {
445                      "line": 1,
446                      "column": 1
447                    },
448                    "end": {
449                      "line": 1,
450                      "column": 1
451                    }
452                  }
453                },
454                "generator": false,
455                "async": false,
456                "expression": false,
457                "params": [],
458                "body": {
459                  "type": "BlockStatement",
460                  "statements": [],
461                  "loc": {
462                    "start": {
463                      "line": 1,
464                      "column": 1
465                    },
466                    "end": {
467                      "line": 1,
468                      "column": 1
469                    }
470                  }
471                },
472                "loc": {
473                  "start": {
474                    "line": 1,
475                    "column": 1
476                  },
477                  "end": {
478                    "line": 1,
479                    "column": 1
480                  }
481                }
482              },
483              "loc": {
484                "start": {
485                  "line": 1,
486                  "column": 1
487                },
488                "end": {
489                  "line": 1,
490                  "column": 1
491                }
492              }
493            },
494            "overloads": [],
495            "decorators": [],
496            "loc": {
497              "start": {
498                "line": 1,
499                "column": 1
500              },
501              "end": {
502                "line": 1,
503                "column": 1
504              }
505            }
506          },
507          {
508            "type": "ClassProperty",
509            "key": {
510              "type": "Identifier",
511              "name": "F1",
512              "decorators": [],
513              "loc": {
514                "start": {
515                  "line": 20,
516                  "column": 7
517                },
518                "end": {
519                  "line": 20,
520                  "column": 9
521                }
522              }
523            },
524            "value": {
525              "type": "ArrowFunctionExpression",
526              "function": {
527                "type": "ScriptFunction",
528                "id": null,
529                "generator": false,
530                "async": false,
531                "expression": false,
532                "params": [
533                  {
534                    "type": "ETSParameterExpression",
535                    "name": {
536                      "type": "Identifier",
537                      "name": "counter",
538                      "typeAnnotation": {
539                        "type": "ETSPrimitiveType",
540                        "loc": {
541                          "start": {
542                            "line": 20,
543                            "column": 27
544                          },
545                          "end": {
546                            "line": 20,
547                            "column": 30
548                          }
549                        }
550                      },
551                      "decorators": [],
552                      "loc": {
553                        "start": {
554                          "line": 20,
555                          "column": 18
556                        },
557                        "end": {
558                          "line": 20,
559                          "column": 30
560                        }
561                      }
562                    },
563                    "loc": {
564                      "start": {
565                        "line": 20,
566                        "column": 18
567                      },
568                      "end": {
569                        "line": 20,
570                        "column": 30
571                      }
572                    }
573                  }
574                ],
575                "body": {
576                  "type": "BlockStatement",
577                  "statements": [
578                    {
579                      "type": "VariableDeclaration",
580                      "declarations": [
581                        {
582                          "type": "VariableDeclarator",
583                          "id": {
584                            "type": "Identifier",
585                            "name": "funcWithLambda",
586                            "typeAnnotation": {
587                              "type": "ETSTypeReference",
588                              "part": {
589                                "type": "ETSTypeReferencePart",
590                                "name": {
591                                  "type": "Identifier",
592                                  "name": "T1",
593                                  "decorators": [],
594                                  "loc": {
595                                    "start": {
596                                      "line": 21,
597                                      "column": 25
598                                    },
599                                    "end": {
600                                      "line": 21,
601                                      "column": 27
602                                    }
603                                  }
604                                },
605                                "loc": {
606                                  "start": {
607                                    "line": 21,
608                                    "column": 25
609                                  },
610                                  "end": {
611                                    "line": 21,
612                                    "column": 29
613                                  }
614                                }
615                              },
616                              "loc": {
617                                "start": {
618                                  "line": 21,
619                                  "column": 25
620                                },
621                                "end": {
622                                  "line": 21,
623                                  "column": 29
624                                }
625                              }
626                            },
627                            "decorators": [],
628                            "loc": {
629                              "start": {
630                                "line": 21,
631                                "column": 9
632                              },
633                              "end": {
634                                "line": 21,
635                                "column": 23
636                              }
637                            }
638                          },
639                          "init": {
640                            "type": "ArrowFunctionExpression",
641                            "function": {
642                              "type": "ScriptFunction",
643                              "id": null,
644                              "generator": false,
645                              "async": false,
646                              "expression": false,
647                              "params": [
648                                {
649                                  "type": "ETSParameterExpression",
650                                  "name": {
651                                    "type": "Identifier",
652                                    "name": "lambda",
653                                    "typeAnnotation": {
654                                      "type": "ETSFunctionType",
655                                      "params": [
656                                        {
657                                          "type": "ETSParameterExpression",
658                                          "name": {
659                                            "type": "Identifier",
660                                            "name": "arg",
661                                            "typeAnnotation": {
662                                              "type": "ETSPrimitiveType",
663                                              "loc": {
664                                                "start": {
665                                                  "line": 21,
666                                                  "column": 45
667                                                },
668                                                "end": {
669                                                  "line": 21,
670                                                  "column": 48
671                                                }
672                                              }
673                                            },
674                                            "decorators": [],
675                                            "loc": {
676                                              "start": {
677                                                "line": 21,
678                                                "column": 40
679                                              },
680                                              "end": {
681                                                "line": 21,
682                                                "column": 48
683                                              }
684                                            }
685                                          },
686                                          "loc": {
687                                            "start": {
688                                              "line": 21,
689                                              "column": 40
690                                            },
691                                            "end": {
692                                              "line": 21,
693                                              "column": 48
694                                            }
695                                          }
696                                        }
697                                      ],
698                                      "returnType": {
699                                        "type": "ETSPrimitiveType",
700                                        "loc": {
701                                          "start": {
702                                            "line": 21,
703                                            "column": 53
704                                          },
705                                          "end": {
706                                            "line": 21,
707                                            "column": 56
708                                          }
709                                        }
710                                      },
711                                      "loc": {
712                                        "start": {
713                                          "line": 21,
714                                          "column": 39
715                                        },
716                                        "end": {
717                                          "line": 21,
718                                          "column": 56
719                                        }
720                                      }
721                                    },
722                                    "decorators": [],
723                                    "loc": {
724                                      "start": {
725                                        "line": 21,
726                                        "column": 31
727                                      },
728                                      "end": {
729                                        "line": 21,
730                                        "column": 56
731                                      }
732                                    }
733                                  },
734                                  "loc": {
735                                    "start": {
736                                      "line": 21,
737                                      "column": 31
738                                    },
739                                    "end": {
740                                      "line": 21,
741                                      "column": 56
742                                    }
743                                  }
744                                },
745                                {
746                                  "type": "ETSParameterExpression",
747                                  "name": {
748                                    "type": "Identifier",
749                                    "name": "arg",
750                                    "typeAnnotation": {
751                                      "type": "ETSPrimitiveType",
752                                      "loc": {
753                                        "start": {
754                                          "line": 21,
755                                          "column": 63
756                                        },
757                                        "end": {
758                                          "line": 21,
759                                          "column": 66
760                                        }
761                                      }
762                                    },
763                                    "decorators": [],
764                                    "loc": {
765                                      "start": {
766                                        "line": 21,
767                                        "column": 58
768                                      },
769                                      "end": {
770                                        "line": 21,
771                                        "column": 66
772                                      }
773                                    }
774                                  },
775                                  "loc": {
776                                    "start": {
777                                      "line": 21,
778                                      "column": 58
779                                    },
780                                    "end": {
781                                      "line": 21,
782                                      "column": 66
783                                    }
784                                  }
785                                }
786                              ],
787                              "body": {
788                                "type": "BlockStatement",
789                                "statements": [
790                                  {
791                                    "type": "ReturnStatement",
792                                    "argument": {
793                                      "type": "CallExpression",
794                                      "callee": {
795                                        "type": "Identifier",
796                                        "name": "lambda",
797                                        "decorators": [],
798                                        "loc": {
799                                          "start": {
800                                            "line": 21,
801                                            "column": 80
802                                          },
803                                          "end": {
804                                            "line": 21,
805                                            "column": 86
806                                          }
807                                        }
808                                      },
809                                      "arguments": [
810                                        {
811                                          "type": "Identifier",
812                                          "name": "arg",
813                                          "decorators": [],
814                                          "loc": {
815                                            "start": {
816                                              "line": 21,
817                                              "column": 87
818                                            },
819                                            "end": {
820                                              "line": 21,
821                                              "column": 90
822                                            }
823                                          }
824                                        }
825                                      ],
826                                      "optional": false,
827                                      "loc": {
828                                        "start": {
829                                          "line": 21,
830                                          "column": 80
831                                        },
832                                        "end": {
833                                          "line": 21,
834                                          "column": 91
835                                        }
836                                      }
837                                    },
838                                    "loc": {
839                                      "start": {
840                                        "line": 21,
841                                        "column": 73
842                                      },
843                                      "end": {
844                                        "line": 21,
845                                        "column": 91
846                                      }
847                                    }
848                                  }
849                                ],
850                                "loc": {
851                                  "start": {
852                                    "line": 21,
853                                    "column": 71
854                                  },
855                                  "end": {
856                                    "line": 21,
857                                    "column": 93
858                                  }
859                                }
860                              },
861                              "loc": {
862                                "start": {
863                                  "line": 21,
864                                  "column": 30
865                                },
866                                "end": {
867                                  "line": 21,
868                                  "column": 93
869                                }
870                              }
871                            },
872                            "loc": {
873                              "start": {
874                                "line": 21,
875                                "column": 30
876                              },
877                              "end": {
878                                "line": 21,
879                                "column": 93
880                              }
881                            }
882                          },
883                          "loc": {
884                            "start": {
885                              "line": 21,
886                              "column": 9
887                            },
888                            "end": {
889                              "line": 21,
890                              "column": 93
891                            }
892                          }
893                        }
894                      ],
895                      "kind": "let",
896                      "loc": {
897                        "start": {
898                          "line": 21,
899                          "column": 5
900                        },
901                        "end": {
902                          "line": 21,
903                          "column": 93
904                        }
905                      }
906                    },
907                    {
908                      "type": "VariableDeclaration",
909                      "declarations": [
910                        {
911                          "type": "VariableDeclarator",
912                          "id": {
913                            "type": "Identifier",
914                            "name": "it",
915                            "typeAnnotation": {
916                              "type": "ETSTypeReference",
917                              "part": {
918                                "type": "ETSTypeReferencePart",
919                                "name": {
920                                  "type": "Identifier",
921                                  "name": "T2",
922                                  "decorators": [],
923                                  "loc": {
924                                    "start": {
925                                      "line": 22,
926                                      "column": 13
927                                    },
928                                    "end": {
929                                      "line": 22,
930                                      "column": 15
931                                    }
932                                  }
933                                },
934                                "loc": {
935                                  "start": {
936                                    "line": 22,
937                                    "column": 13
938                                  },
939                                  "end": {
940                                    "line": 22,
941                                    "column": 17
942                                  }
943                                }
944                              },
945                              "loc": {
946                                "start": {
947                                  "line": 22,
948                                  "column": 13
949                                },
950                                "end": {
951                                  "line": 22,
952                                  "column": 17
953                                }
954                              }
955                            },
956                            "decorators": [],
957                            "loc": {
958                              "start": {
959                                "line": 22,
960                                "column": 9
961                              },
962                              "end": {
963                                "line": 22,
964                                "column": 11
965                              }
966                            }
967                          },
968                          "init": {
969                            "type": "ArrowFunctionExpression",
970                            "function": {
971                              "type": "ScriptFunction",
972                              "id": null,
973                              "generator": false,
974                              "async": false,
975                              "expression": false,
976                              "params": [
977                                {
978                                  "type": "ETSParameterExpression",
979                                  "name": {
980                                    "type": "Identifier",
981                                    "name": "c",
982                                    "typeAnnotation": {
983                                      "type": "ETSPrimitiveType",
984                                      "loc": {
985                                        "start": {
986                                          "line": 22,
987                                          "column": 22
988                                        },
989                                        "end": {
990                                          "line": 22,
991                                          "column": 25
992                                        }
993                                      }
994                                    },
995                                    "decorators": [],
996                                    "loc": {
997                                      "start": {
998                                        "line": 22,
999                                        "column": 19
1000                                      },
1001                                      "end": {
1002                                        "line": 22,
1003                                        "column": 25
1004                                      }
1005                                    }
1006                                  },
1007                                  "loc": {
1008                                    "start": {
1009                                      "line": 22,
1010                                      "column": 19
1011                                    },
1012                                    "end": {
1013                                      "line": 22,
1014                                      "column": 25
1015                                    }
1016                                  }
1017                                }
1018                              ],
1019                              "returnType": {
1020                                "type": "ETSPrimitiveType",
1021                                "loc": {
1022                                  "start": {
1023                                    "line": 22,
1024                                    "column": 28
1025                                  },
1026                                  "end": {
1027                                    "line": 22,
1028                                    "column": 31
1029                                  }
1030                                }
1031                              },
1032                              "body": {
1033                                "type": "BlockStatement",
1034                                "statements": [
1035                                  {
1036                                    "type": "ReturnStatement",
1037                                    "argument": {
1038                                      "type": "Identifier",
1039                                      "name": "c",
1040                                      "decorators": [],
1041                                      "loc": {
1042                                        "start": {
1043                                          "line": 22,
1044                                          "column": 43
1045                                        },
1046                                        "end": {
1047                                          "line": 22,
1048                                          "column": 44
1049                                        }
1050                                      }
1051                                    },
1052                                    "loc": {
1053                                      "start": {
1054                                        "line": 22,
1055                                        "column": 36
1056                                      },
1057                                      "end": {
1058                                        "line": 22,
1059                                        "column": 44
1060                                      }
1061                                    }
1062                                  }
1063                                ],
1064                                "loc": {
1065                                  "start": {
1066                                    "line": 22,
1067                                    "column": 35
1068                                  },
1069                                  "end": {
1070                                    "line": 22,
1071                                    "column": 45
1072                                  }
1073                                }
1074                              },
1075                              "loc": {
1076                                "start": {
1077                                  "line": 22,
1078                                  "column": 18
1079                                },
1080                                "end": {
1081                                  "line": 22,
1082                                  "column": 45
1083                                }
1084                              }
1085                            },
1086                            "loc": {
1087                              "start": {
1088                                "line": 22,
1089                                "column": 18
1090                              },
1091                              "end": {
1092                                "line": 22,
1093                                "column": 45
1094                              }
1095                            }
1096                          },
1097                          "loc": {
1098                            "start": {
1099                              "line": 22,
1100                              "column": 9
1101                            },
1102                            "end": {
1103                              "line": 22,
1104                              "column": 45
1105                            }
1106                          }
1107                        }
1108                      ],
1109                      "kind": "let",
1110                      "loc": {
1111                        "start": {
1112                          "line": 22,
1113                          "column": 5
1114                        },
1115                        "end": {
1116                          "line": 22,
1117                          "column": 45
1118                        }
1119                      }
1120                    },
1121                    {
1122                      "type": "WhileStatement",
1123                      "test": {
1124                        "type": "BinaryExpression",
1125                        "operator": ">",
1126                        "left": {
1127                          "type": "Identifier",
1128                          "name": "counter",
1129                          "decorators": [],
1130                          "loc": {
1131                            "start": {
1132                              "line": 24,
1133                              "column": 12
1134                            },
1135                            "end": {
1136                              "line": 24,
1137                              "column": 19
1138                            }
1139                          }
1140                        },
1141                        "right": {
1142                          "type": "NumberLiteral",
1143                          "value": 0,
1144                          "loc": {
1145                            "start": {
1146                              "line": 24,
1147                              "column": 22
1148                            },
1149                            "end": {
1150                              "line": 24,
1151                              "column": 23
1152                            }
1153                          }
1154                        },
1155                        "loc": {
1156                          "start": {
1157                            "line": 24,
1158                            "column": 12
1159                          },
1160                          "end": {
1161                            "line": 24,
1162                            "column": 23
1163                          }
1164                        }
1165                      },
1166                      "body": {
1167                        "type": "ExpressionStatement",
1168                        "expression": {
1169                          "type": "AssignmentExpression",
1170                          "operator": "=",
1171                          "left": {
1172                            "type": "Identifier",
1173                            "name": "counter",
1174                            "decorators": [],
1175                            "loc": {
1176                              "start": {
1177                                "line": 24,
1178                                "column": 25
1179                              },
1180                              "end": {
1181                                "line": 24,
1182                                "column": 32
1183                              }
1184                            }
1185                          },
1186                          "right": {
1187                            "type": "CallExpression",
1188                            "callee": {
1189                              "type": "Identifier",
1190                              "name": "funcWithLambda",
1191                              "decorators": [],
1192                              "loc": {
1193                                "start": {
1194                                  "line": 24,
1195                                  "column": 35
1196                                },
1197                                "end": {
1198                                  "line": 24,
1199                                  "column": 49
1200                                }
1201                              }
1202                            },
1203                            "arguments": [
1204                              {
1205                                "type": "Identifier",
1206                                "name": "it",
1207                                "decorators": [],
1208                                "loc": {
1209                                  "start": {
1210                                    "line": 24,
1211                                    "column": 50
1212                                  },
1213                                  "end": {
1214                                    "line": 24,
1215                                    "column": 52
1216                                  }
1217                                }
1218                              },
1219                              {
1220                                "type": "Identifier",
1221                                "name": "counter",
1222                                "decorators": [],
1223                                "loc": {
1224                                  "start": {
1225                                    "line": 24,
1226                                    "column": 54
1227                                  },
1228                                  "end": {
1229                                    "line": 24,
1230                                    "column": 61
1231                                  }
1232                                }
1233                              }
1234                            ],
1235                            "optional": false,
1236                            "loc": {
1237                              "start": {
1238                                "line": 24,
1239                                "column": 35
1240                              },
1241                              "end": {
1242                                "line": 24,
1243                                "column": 62
1244                              }
1245                            }
1246                          },
1247                          "loc": {
1248                            "start": {
1249                              "line": 24,
1250                              "column": 25
1251                            },
1252                            "end": {
1253                              "line": 24,
1254                              "column": 62
1255                            }
1256                          }
1257                        },
1258                        "loc": {
1259                          "start": {
1260                            "line": 24,
1261                            "column": 25
1262                          },
1263                          "end": {
1264                            "line": 24,
1265                            "column": 62
1266                          }
1267                        }
1268                      },
1269                      "loc": {
1270                        "start": {
1271                          "line": 24,
1272                          "column": 5
1273                        },
1274                        "end": {
1275                          "line": 24,
1276                          "column": 62
1277                        }
1278                      }
1279                    }
1280                  ],
1281                  "loc": {
1282                    "start": {
1283                      "line": 20,
1284                      "column": 35
1285                    },
1286                    "end": {
1287                      "line": 25,
1288                      "column": 2
1289                    }
1290                  }
1291                },
1292                "loc": {
1293                  "start": {
1294                    "line": 20,
1295                    "column": 17
1296                  },
1297                  "end": {
1298                    "line": 25,
1299                    "column": 2
1300                  }
1301                }
1302              },
1303              "loc": {
1304                "start": {
1305                  "line": 20,
1306                  "column": 17
1307                },
1308                "end": {
1309                  "line": 25,
1310                  "column": 2
1311                }
1312              }
1313            },
1314            "accessibility": "public",
1315            "static": true,
1316            "readonly": false,
1317            "declare": false,
1318            "optional": false,
1319            "computed": false,
1320            "typeAnnotation": {
1321              "type": "ETSTypeReference",
1322              "part": {
1323                "type": "ETSTypeReferencePart",
1324                "name": {
1325                  "type": "Identifier",
1326                  "name": "I2v",
1327                  "decorators": [],
1328                  "loc": {
1329                    "start": {
1330                      "line": 20,
1331                      "column": 11
1332                    },
1333                    "end": {
1334                      "line": 20,
1335                      "column": 14
1336                    }
1337                  }
1338                },
1339                "loc": {
1340                  "start": {
1341                    "line": 20,
1342                    "column": 11
1343                  },
1344                  "end": {
1345                    "line": 20,
1346                    "column": 16
1347                  }
1348                }
1349              },
1350              "loc": {
1351                "start": {
1352                  "line": 20,
1353                  "column": 11
1354                },
1355                "end": {
1356                  "line": 20,
1357                  "column": 16
1358                }
1359              }
1360            },
1361            "definite": false,
1362            "decorators": [],
1363            "loc": {
1364              "start": {
1365                "line": 20,
1366                "column": 7
1367              },
1368              "end": {
1369                "line": 25,
1370                "column": 2
1371              }
1372            }
1373          },
1374          {
1375            "type": "MethodDefinition",
1376            "key": {
1377              "type": "Identifier",
1378              "name": "main",
1379              "decorators": [],
1380              "loc": {
1381                "start": {
1382                  "line": 27,
1383                  "column": 10
1384                },
1385                "end": {
1386                  "line": 27,
1387                  "column": 14
1388                }
1389              }
1390            },
1391            "kind": "method",
1392            "accessibility": "public",
1393            "static": true,
1394            "optional": false,
1395            "computed": false,
1396            "value": {
1397              "type": "FunctionExpression",
1398              "function": {
1399                "type": "ScriptFunction",
1400                "id": {
1401                  "type": "Identifier",
1402                  "name": "main",
1403                  "decorators": [],
1404                  "loc": {
1405                    "start": {
1406                      "line": 27,
1407                      "column": 10
1408                    },
1409                    "end": {
1410                      "line": 27,
1411                      "column": 14
1412                    }
1413                  }
1414                },
1415                "generator": false,
1416                "async": false,
1417                "expression": false,
1418                "params": [],
1419                "body": {
1420                  "type": "BlockStatement",
1421                  "statements": [
1422                    {
1423                      "type": "ExpressionStatement",
1424                      "expression": {
1425                        "type": "CallExpression",
1426                        "callee": {
1427                          "type": "Identifier",
1428                          "name": "F1",
1429                          "decorators": [],
1430                          "loc": {
1431                            "start": {
1432                              "line": 28,
1433                              "column": 5
1434                            },
1435                            "end": {
1436                              "line": 28,
1437                              "column": 7
1438                            }
1439                          }
1440                        },
1441                        "arguments": [
1442                          {
1443                            "type": "NumberLiteral",
1444                            "value": 44,
1445                            "loc": {
1446                              "start": {
1447                                "line": 28,
1448                                "column": 8
1449                              },
1450                              "end": {
1451                                "line": 28,
1452                                "column": 10
1453                              }
1454                            }
1455                          }
1456                        ],
1457                        "optional": false,
1458                        "loc": {
1459                          "start": {
1460                            "line": 28,
1461                            "column": 5
1462                          },
1463                          "end": {
1464                            "line": 28,
1465                            "column": 11
1466                          }
1467                        }
1468                      },
1469                      "loc": {
1470                        "start": {
1471                          "line": 28,
1472                          "column": 5
1473                        },
1474                        "end": {
1475                          "line": 28,
1476                          "column": 11
1477                        }
1478                      }
1479                    },
1480                    {
1481                      "type": "ReturnStatement",
1482                      "argument": {
1483                        "type": "NumberLiteral",
1484                        "value": 0,
1485                        "loc": {
1486                          "start": {
1487                            "line": 29,
1488                            "column": 12
1489                          },
1490                          "end": {
1491                            "line": 29,
1492                            "column": 13
1493                          }
1494                        }
1495                      },
1496                      "loc": {
1497                        "start": {
1498                          "line": 29,
1499                          "column": 5
1500                        },
1501                        "end": {
1502                          "line": 29,
1503                          "column": 14
1504                        }
1505                      }
1506                    }
1507                  ],
1508                  "loc": {
1509                    "start": {
1510                      "line": 27,
1511                      "column": 17
1512                    },
1513                    "end": {
1514                      "line": 30,
1515                      "column": 2
1516                    }
1517                  }
1518                },
1519                "loc": {
1520                  "start": {
1521                    "line": 27,
1522                    "column": 14
1523                  },
1524                  "end": {
1525                    "line": 30,
1526                    "column": 2
1527                  }
1528                }
1529              },
1530              "loc": {
1531                "start": {
1532                  "line": 27,
1533                  "column": 14
1534                },
1535                "end": {
1536                  "line": 30,
1537                  "column": 2
1538                }
1539              }
1540            },
1541            "overloads": [],
1542            "decorators": [],
1543            "loc": {
1544              "start": {
1545                "line": 27,
1546                "column": 1
1547              },
1548              "end": {
1549                "line": 30,
1550                "column": 2
1551              }
1552            }
1553          }
1554        ],
1555        "loc": {
1556          "start": {
1557            "line": 1,
1558            "column": 1
1559          },
1560          "end": {
1561            "line": 1,
1562            "column": 1
1563          }
1564        }
1565      },
1566      "loc": {
1567        "start": {
1568          "line": 1,
1569          "column": 1
1570        },
1571        "end": {
1572          "line": 1,
1573          "column": 1
1574        }
1575      }
1576    }
1577  ],
1578  "loc": {
1579    "start": {
1580      "line": 1,
1581      "column": 1
1582    },
1583    "end": {
1584      "line": 31,
1585      "column": 1
1586    }
1587  }
1588}
1589