1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "ETSGLOBAL",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 1,
14              "column": 1
15            },
16            "end": {
17              "line": 1,
18              "column": 1
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "main",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 1,
34                  "column": 1
35                },
36                "end": {
37                  "line": 1,
38                  "column": 1
39                }
40              }
41            },
42            "kind": "method",
43            "accessibility": "public",
44            "static": true,
45            "optional": false,
46            "computed": false,
47            "value": {
48              "type": "FunctionExpression",
49              "function": {
50                "type": "ScriptFunction",
51                "id": {
52                  "type": "Identifier",
53                  "name": "main",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 1,
58                      "column": 1
59                    },
60                    "end": {
61                      "line": 1,
62                      "column": 1
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [],
70                "body": {
71                  "type": "BlockStatement",
72                  "statements": [],
73                  "loc": {
74                    "start": {
75                      "line": 1,
76                      "column": 1
77                    },
78                    "end": {
79                      "line": 1,
80                      "column": 1
81                    }
82                  }
83                },
84                "loc": {
85                  "start": {
86                    "line": 1,
87                    "column": 1
88                  },
89                  "end": {
90                    "line": 1,
91                    "column": 1
92                  }
93                }
94              },
95              "loc": {
96                "start": {
97                  "line": 1,
98                  "column": 1
99                },
100                "end": {
101                  "line": 1,
102                  "column": 1
103                }
104              }
105            },
106            "overloads": [],
107            "decorators": [],
108            "loc": {
109              "start": {
110                "line": 1,
111                "column": 1
112              },
113              "end": {
114                "line": 1,
115                "column": 1
116              }
117            }
118          },
119          {
120            "type": "MethodDefinition",
121            "key": {
122              "type": "Identifier",
123              "name": "_$init$_",
124              "decorators": [],
125              "loc": {
126                "start": {
127                  "line": 1,
128                  "column": 1
129                },
130                "end": {
131                  "line": 1,
132                  "column": 1
133                }
134              }
135            },
136            "kind": "method",
137            "accessibility": "public",
138            "static": true,
139            "optional": false,
140            "computed": false,
141            "value": {
142              "type": "FunctionExpression",
143              "function": {
144                "type": "ScriptFunction",
145                "id": {
146                  "type": "Identifier",
147                  "name": "_$init$_",
148                  "decorators": [],
149                  "loc": {
150                    "start": {
151                      "line": 1,
152                      "column": 1
153                    },
154                    "end": {
155                      "line": 1,
156                      "column": 1
157                    }
158                  }
159                },
160                "generator": false,
161                "async": false,
162                "expression": false,
163                "params": [],
164                "body": {
165                  "type": "BlockStatement",
166                  "statements": [
167                    {
168                      "type": "ExpressionStatement",
169                      "expression": {
170                        "type": "AssignmentExpression",
171                        "operator": "=",
172                        "left": {
173                          "type": "Identifier",
174                          "name": "lambda",
175                          "decorators": [],
176                          "loc": {
177                            "start": {
178                              "line": 16,
179                              "column": 5
180                            },
181                            "end": {
182                              "line": 16,
183                              "column": 11
184                            }
185                          }
186                        },
187                        "right": {
188                          "type": "ArrowFunctionExpression",
189                          "function": {
190                            "type": "ScriptFunction",
191                            "id": null,
192                            "generator": false,
193                            "async": false,
194                            "expression": false,
195                            "params": [],
196                            "returnType": {
197                              "type": "ETSPrimitiveType",
198                              "loc": {
199                                "start": {
200                                  "line": 16,
201                                  "column": 37
202                                },
203                                "end": {
204                                  "line": 16,
205                                  "column": 41
206                                }
207                              }
208                            },
209                            "body": {
210                              "type": "BlockStatement",
211                              "statements": [],
212                              "loc": {
213                                "start": {
214                                  "line": 16,
215                                  "column": 52
216                                },
217                                "end": {
218                                  "line": 16,
219                                  "column": 54
220                                }
221                              }
222                            }
223                            "throwMarker": "throws",
224                            "loc": {
225                              "start": {
226                                "line": 16,
227                                "column": 33
228                              },
229                              "end": {
230                                "line": 16,
231                                "column": 54
232                              }
233                            }
234                          },
235                          "loc": {
236                            "start": {
237                              "line": 16,
238                              "column": 33
239                            },
240                            "end": {
241                              "line": 16,
242                              "column": 54
243                            }
244                          }
245                        },
246                        "loc": {
247                          "start": {
248                            "line": 16,
249                            "column": 5
250                          },
251                          "end": {
252                            "line": 16,
253                            "column": 54
254                          }
255                        }
256                      },
257                      "loc": {
258                        "start": {
259                          "line": 16,
260                          "column": 5
261                        },
262                        "end": {
263                          "line": 16,
264                          "column": 54
265                        }
266                      }
267                    },
268                    {
269                      "type": "ExpressionStatement",
270                      "expression": {
271                        "type": "AssignmentExpression",
272                        "operator": "=",
273                        "left": {
274                          "type": "Identifier",
275                          "name": "lambda2",
276                          "decorators": [],
277                          "loc": {
278                            "start": {
279                              "line": 18,
280                              "column": 5
281                            },
282                            "end": {
283                              "line": 18,
284                              "column": 12
285                            }
286                          }
287                        },
288                        "right": {
289                          "type": "ArrowFunctionExpression",
290                          "function": {
291                            "type": "ScriptFunction",
292                            "id": null,
293                            "generator": false,
294                            "async": false,
295                            "expression": false,
296                            "params": [
297                              {
298                                "type": "ETSParameterExpression",
299                                "name": {
300                                  "type": "Identifier",
301                                  "name": "param",
302                                  "typeAnnotation": {
303                                    "type": "ETSFunctionType",
304                                    "params": [
305                                      {
306                                        "type": "ETSParameterExpression",
307                                        "name": {
308                                          "type": "Identifier",
309                                          "name": "c",
310                                          "typeAnnotation": {
311                                            "type": "ETSPrimitiveType",
312                                            "loc": {
313                                              "start": {
314                                                "line": 18,
315                                                "column": 84
316                                              },
317                                              "end": {
318                                                "line": 18,
319                                                "column": 87
320                                              }
321                                            }
322                                          },
323                                          "decorators": [],
324                                          "loc": {
325                                            "start": {
326                                              "line": 18,
327                                              "column": 81
328                                            },
329                                            "end": {
330                                              "line": 18,
331                                              "column": 87
332                                            }
333                                          }
334                                        },
335                                        "loc": {
336                                          "start": {
337                                            "line": 18,
338                                            "column": 81
339                                          },
340                                          "end": {
341                                            "line": 18,
342                                            "column": 87
343                                          }
344                                        }
345                                      },
346                                      {
347                                        "type": "ETSParameterExpression",
348                                        "name": {
349                                          "type": "Identifier",
350                                          "name": "b",
351                                          "typeAnnotation": {
352                                            "type": "ETSPrimitiveType",
353                                            "loc": {
354                                              "start": {
355                                                "line": 18,
356                                                "column": 92
357                                              },
358                                              "end": {
359                                                "line": 18,
360                                                "column": 95
361                                              }
362                                            }
363                                          },
364                                          "decorators": [],
365                                          "loc": {
366                                            "start": {
367                                              "line": 18,
368                                              "column": 89
369                                            },
370                                            "end": {
371                                              "line": 18,
372                                              "column": 95
373                                            }
374                                          }
375                                        },
376                                        "loc": {
377                                          "start": {
378                                            "line": 18,
379                                            "column": 89
380                                          },
381                                          "end": {
382                                            "line": 18,
383                                            "column": 95
384                                          }
385                                        }
386                                      }
387                                    ],
388                                    "returnType": {
389                                      "type": "ETSPrimitiveType",
390                                      "loc": {
391                                        "start": {
392                                          "line": 18,
393                                          "column": 100
394                                        },
395                                        "end": {
396                                          "line": 18,
397                                          "column": 104
398                                        }
399                                      }
400                                    }
401                                    "throwMarker": "throws",
402                                    "loc": {
403                                      "start": {
404                                        "line": 18,
405                                        "column": 80
406                                      },
407                                      "end": {
408                                        "line": 18,
409                                        "column": 104
410                                      }
411                                    }
412                                  },
413                                  "decorators": [],
414                                  "loc": {
415                                    "start": {
416                                      "line": 18,
417                                      "column": 73
418                                    },
419                                    "end": {
420                                      "line": 18,
421                                      "column": 104
422                                    }
423                                  }
424                                },
425                                "loc": {
426                                  "start": {
427                                    "line": 18,
428                                    "column": 73
429                                  },
430                                  "end": {
431                                    "line": 18,
432                                    "column": 104
433                                  }
434                                }
435                              }
436                            ],
437                            "returnType": {
438                              "type": "ETSPrimitiveType",
439                              "loc": {
440                                "start": {
441                                  "line": 18,
442                                  "column": 114
443                                },
444                                "end": {
445                                  "line": 18,
446                                  "column": 118
447                                }
448                              }
449                            },
450                            "body": {
451                              "type": "BlockStatement",
452                              "statements": [],
453                              "loc": {
454                                "start": {
455                                  "line": 18,
456                                  "column": 131
457                                },
458                                "end": {
459                                  "line": 18,
460                                  "column": 133
461                                }
462                              }
463                            }
464                            "throwMarker": "rethrows",
465                            "loc": {
466                              "start": {
467                                "line": 18,
468                                "column": 72
469                              },
470                              "end": {
471                                "line": 18,
472                                "column": 133
473                              }
474                            }
475                          },
476                          "loc": {
477                            "start": {
478                              "line": 18,
479                              "column": 72
480                            },
481                            "end": {
482                              "line": 18,
483                              "column": 133
484                            }
485                          }
486                        },
487                        "loc": {
488                          "start": {
489                            "line": 18,
490                            "column": 5
491                          },
492                          "end": {
493                            "line": 18,
494                            "column": 133
495                          }
496                        }
497                      },
498                      "loc": {
499                        "start": {
500                          "line": 18,
501                          "column": 5
502                        },
503                        "end": {
504                          "line": 18,
505                          "column": 133
506                        }
507                      }
508                    }
509                  ],
510                  "loc": {
511                    "start": {
512                      "line": 1,
513                      "column": 1
514                    },
515                    "end": {
516                      "line": 1,
517                      "column": 1
518                    }
519                  }
520                },
521                "loc": {
522                  "start": {
523                    "line": 1,
524                    "column": 1
525                  },
526                  "end": {
527                    "line": 1,
528                    "column": 1
529                  }
530                }
531              },
532              "loc": {
533                "start": {
534                  "line": 1,
535                  "column": 1
536                },
537                "end": {
538                  "line": 1,
539                  "column": 1
540                }
541              }
542            },
543            "overloads": [],
544            "decorators": [],
545            "loc": {
546              "start": {
547                "line": 1,
548                "column": 1
549              },
550              "end": {
551                "line": 1,
552                "column": 1
553              }
554            }
555          },
556          {
557            "type": "ClassProperty",
558            "key": {
559              "type": "Identifier",
560              "name": "lambda",
561              "decorators": [],
562              "loc": {
563                "start": {
564                  "line": 16,
565                  "column": 5
566                },
567                "end": {
568                  "line": 16,
569                  "column": 11
570                }
571              }
572            },
573            "accessibility": "public",
574            "static": true,
575            "readonly": false,
576            "declare": false,
577            "optional": false,
578            "computed": false,
579            "typeAnnotation": {
580              "type": "ETSFunctionType",
581              "params": [],
582              "returnType": {
583                "type": "ETSPrimitiveType",
584                "loc": {
585                  "start": {
586                    "line": 16,
587                    "column": 19
588                  },
589                  "end": {
590                    "line": 16,
591                    "column": 23
592                  }
593                }
594              }
595              "throwMarker": "throws",
596              "loc": {
597                "start": {
598                  "line": 16,
599                  "column": 13
600                },
601                "end": {
602                  "line": 16,
603                  "column": 23
604                }
605              }
606            },
607            "definite": false,
608            "decorators": [],
609            "loc": {
610              "start": {
611                "line": 16,
612                "column": 5
613              },
614              "end": {
615                "line": 16,
616                "column": 54
617              }
618            }
619          },
620          {
621            "type": "ClassProperty",
622            "key": {
623              "type": "Identifier",
624              "name": "lambda2",
625              "decorators": [],
626              "loc": {
627                "start": {
628                  "line": 18,
629                  "column": 5
630                },
631                "end": {
632                  "line": 18,
633                  "column": 12
634                }
635              }
636            },
637            "accessibility": "public",
638            "static": true,
639            "readonly": false,
640            "declare": false,
641            "optional": false,
642            "computed": false,
643            "typeAnnotation": {
644              "type": "ETSFunctionType",
645              "params": [
646                {
647                  "type": "ETSParameterExpression",
648                  "name": {
649                    "type": "Identifier",
650                    "name": "param",
651                    "typeAnnotation": {
652                      "type": "ETSFunctionType",
653                      "params": [
654                        {
655                          "type": "ETSParameterExpression",
656                          "name": {
657                            "type": "Identifier",
658                            "name": "c",
659                            "typeAnnotation": {
660                              "type": "ETSPrimitiveType",
661                              "loc": {
662                                "start": {
663                                  "line": 18,
664                                  "column": 26
665                                },
666                                "end": {
667                                  "line": 18,
668                                  "column": 29
669                                }
670                              }
671                            },
672                            "decorators": [],
673                            "loc": {
674                              "start": {
675                                "line": 18,
676                                "column": 23
677                              },
678                              "end": {
679                                "line": 18,
680                                "column": 29
681                              }
682                            }
683                          },
684                          "loc": {
685                            "start": {
686                              "line": 18,
687                              "column": 23
688                            },
689                            "end": {
690                              "line": 18,
691                              "column": 29
692                            }
693                          }
694                        },
695                        {
696                          "type": "ETSParameterExpression",
697                          "name": {
698                            "type": "Identifier",
699                            "name": "b",
700                            "typeAnnotation": {
701                              "type": "ETSPrimitiveType",
702                              "loc": {
703                                "start": {
704                                  "line": 18,
705                                  "column": 34
706                                },
707                                "end": {
708                                  "line": 18,
709                                  "column": 37
710                                }
711                              }
712                            },
713                            "decorators": [],
714                            "loc": {
715                              "start": {
716                                "line": 18,
717                                "column": 31
718                              },
719                              "end": {
720                                "line": 18,
721                                "column": 37
722                              }
723                            }
724                          },
725                          "loc": {
726                            "start": {
727                              "line": 18,
728                              "column": 31
729                            },
730                            "end": {
731                              "line": 18,
732                              "column": 37
733                            }
734                          }
735                        }
736                      ],
737                      "returnType": {
738                        "type": "ETSPrimitiveType",
739                        "loc": {
740                          "start": {
741                            "line": 18,
742                            "column": 42
743                          },
744                          "end": {
745                            "line": 18,
746                            "column": 46
747                          }
748                        }
749                      }
750                      "throwMarker": "throws",
751                      "loc": {
752                        "start": {
753                          "line": 18,
754                          "column": 22
755                        },
756                        "end": {
757                          "line": 18,
758                          "column": 46
759                        }
760                      }
761                    },
762                    "decorators": [],
763                    "loc": {
764                      "start": {
765                        "line": 18,
766                        "column": 15
767                      },
768                      "end": {
769                        "line": 18,
770                        "column": 46
771                      }
772                    }
773                  },
774                  "loc": {
775                    "start": {
776                      "line": 18,
777                      "column": 15
778                    },
779                    "end": {
780                      "line": 18,
781                      "column": 46
782                    }
783                  }
784                }
785              ],
786              "returnType": {
787                "type": "ETSPrimitiveType",
788                "loc": {
789                  "start": {
790                    "line": 18,
791                    "column": 58
792                  },
793                  "end": {
794                    "line": 18,
795                    "column": 62
796                  }
797                }
798              }
799              "throwMarker": "throws",
800              "loc": {
801                "start": {
802                  "line": 18,
803                  "column": 14
804                },
805                "end": {
806                  "line": 18,
807                  "column": 62
808                }
809              }
810            },
811            "definite": false,
812            "decorators": [],
813            "loc": {
814              "start": {
815                "line": 18,
816                "column": 5
817              },
818              "end": {
819                "line": 18,
820                "column": 133
821              }
822            }
823          }
824        ],
825        "loc": {
826          "start": {
827            "line": 1,
828            "column": 1
829          },
830          "end": {
831            "line": 1,
832            "column": 1
833          }
834        }
835      },
836      "loc": {
837        "start": {
838          "line": 1,
839          "column": 1
840        },
841        "end": {
842          "line": 1,
843          "column": 1
844        }
845      }
846    }
847  ],
848  "loc": {
849    "start": {
850      "line": 1,
851      "column": 1
852    },
853    "end": {
854      "line": 19,
855      "column": 1
856    }
857  }
858}
859