1[
2  {
3    "type": "adt",
4    "named": true,
5    "fields": {
6      "name": {
7        "multiple": true,
8        "required": false,
9        "types": [
10          {
11            "type": "(",
12            "named": false
13          },
14          {
15            "type": ")",
16            "named": false
17          },
18          {
19            "type": "constructor_operator",
20            "named": true
21          },
22          {
23            "type": "type",
24            "named": true
25          },
26          {
27            "type": "type_operator",
28            "named": true
29          }
30        ]
31      },
32      "type": {
33        "multiple": false,
34        "required": false,
35        "types": [
36          {
37            "type": "context",
38            "named": true
39          },
40          {
41            "type": "forall",
42            "named": true
43          },
44          {
45            "type": "fun",
46            "named": true
47          },
48          {
49            "type": "implicit_param",
50            "named": true
51          },
52          {
53            "type": "promoted",
54            "named": true
55          },
56          {
57            "type": "quasiquote",
58            "named": true
59          },
60          {
61            "type": "splice",
62            "named": true
63          },
64          {
65            "type": "type_apply",
66            "named": true
67          },
68          {
69            "type": "type_infix",
70            "named": true
71          },
72          {
73            "type": "type_list",
74            "named": true
75          },
76          {
77            "type": "type_literal",
78            "named": true
79          },
80          {
81            "type": "type_name",
82            "named": true
83          },
84          {
85            "type": "type_parens",
86            "named": true
87          },
88          {
89            "type": "type_star",
90            "named": true
91          },
92          {
93            "type": "type_tuple",
94            "named": true
95          },
96          {
97            "type": "type_unboxed_sum",
98            "named": true
99          },
100          {
101            "type": "type_unboxed_tuple",
102            "named": true
103          }
104        ]
105      }
106    },
107    "children": {
108      "multiple": true,
109      "required": false,
110      "types": [
111        {
112          "type": "annotated_type_variable",
113          "named": true
114        },
115        {
116          "type": "constructors",
117          "named": true
118        },
119        {
120          "type": "context",
121          "named": true
122        },
123        {
124          "type": "deriving",
125          "named": true
126        },
127        {
128          "type": "gadt_constructor",
129          "named": true
130        },
131        {
132          "type": "type_infix",
133          "named": true
134        },
135        {
136          "type": "type_variable",
137          "named": true
138        },
139        {
140          "type": "where",
141          "named": true
142        }
143      ]
144    }
145  },
146  {
147    "type": "alt",
148    "named": true,
149    "fields": {
150      "type": {
151        "multiple": false,
152        "required": false,
153        "types": [
154          {
155            "type": "context",
156            "named": true
157          },
158          {
159            "type": "forall",
160            "named": true
161          },
162          {
163            "type": "fun",
164            "named": true
165          },
166          {
167            "type": "implicit_param",
168            "named": true
169          },
170          {
171            "type": "promoted",
172            "named": true
173          },
174          {
175            "type": "quasiquote",
176            "named": true
177          },
178          {
179            "type": "splice",
180            "named": true
181          },
182          {
183            "type": "type_apply",
184            "named": true
185          },
186          {
187            "type": "type_infix",
188            "named": true
189          },
190          {
191            "type": "type_list",
192            "named": true
193          },
194          {
195            "type": "type_literal",
196            "named": true
197          },
198          {
199            "type": "type_name",
200            "named": true
201          },
202          {
203            "type": "type_parens",
204            "named": true
205          },
206          {
207            "type": "type_star",
208            "named": true
209          },
210          {
211            "type": "type_tuple",
212            "named": true
213          },
214          {
215            "type": "type_unboxed_sum",
216            "named": true
217          },
218          {
219            "type": "type_unboxed_tuple",
220            "named": true
221          }
222        ]
223      }
224    },
225    "children": {
226      "multiple": true,
227      "required": true,
228      "types": [
229        {
230          "type": "decls",
231          "named": true
232        },
233        {
234          "type": "exp_apply",
235          "named": true
236        },
237        {
238          "type": "exp_arithmetic_sequence",
239          "named": true
240        },
241        {
242          "type": "exp_case",
243          "named": true
244        },
245        {
246          "type": "exp_cond",
247          "named": true
248        },
249        {
250          "type": "exp_do",
251          "named": true
252        },
253        {
254          "type": "exp_if_guard",
255          "named": true
256        },
257        {
258          "type": "exp_infix",
259          "named": true
260        },
261        {
262          "type": "exp_lambda",
263          "named": true
264        },
265        {
266          "type": "exp_lambda_case",
267          "named": true
268        },
269        {
270          "type": "exp_let_in",
271          "named": true
272        },
273        {
274          "type": "exp_list",
275          "named": true
276        },
277        {
278          "type": "exp_list_comprehension",
279          "named": true
280        },
281        {
282          "type": "exp_literal",
283          "named": true
284        },
285        {
286          "type": "exp_name",
287          "named": true
288        },
289        {
290          "type": "exp_negation",
291          "named": true
292        },
293        {
294          "type": "exp_parens",
295          "named": true
296        },
297        {
298          "type": "exp_record",
299          "named": true
300        },
301        {
302          "type": "exp_section_left",
303          "named": true
304        },
305        {
306          "type": "exp_section_right",
307          "named": true
308        },
309        {
310          "type": "exp_th_quoted_name",
311          "named": true
312        },
313        {
314          "type": "exp_tuple",
315          "named": true
316        },
317        {
318          "type": "exp_type_application",
319          "named": true
320        },
321        {
322          "type": "exp_unboxed_sum",
323          "named": true
324        },
325        {
326          "type": "exp_unboxed_tuple",
327          "named": true
328        },
329        {
330          "type": "gdpat",
331          "named": true
332        },
333        {
334          "type": "pat_apply",
335          "named": true
336        },
337        {
338          "type": "pat_as",
339          "named": true
340        },
341        {
342          "type": "pat_infix",
343          "named": true
344        },
345        {
346          "type": "pat_irrefutable",
347          "named": true
348        },
349        {
350          "type": "pat_list",
351          "named": true
352        },
353        {
354          "type": "pat_literal",
355          "named": true
356        },
357        {
358          "type": "pat_name",
359          "named": true
360        },
361        {
362          "type": "pat_negation",
363          "named": true
364        },
365        {
366          "type": "pat_parens",
367          "named": true
368        },
369        {
370          "type": "pat_record",
371          "named": true
372        },
373        {
374          "type": "pat_strict",
375          "named": true
376        },
377        {
378          "type": "pat_tuple",
379          "named": true
380        },
381        {
382          "type": "pat_unboxed_tuple",
383          "named": true
384        },
385        {
386          "type": "pat_wildcard",
387          "named": true
388        },
389        {
390          "type": "quasiquote",
391          "named": true
392        },
393        {
394          "type": "splice",
395          "named": true
396        },
397        {
398          "type": "where",
399          "named": true
400        }
401      ]
402    }
403  },
404  {
405    "type": "alts",
406    "named": true,
407    "fields": {},
408    "children": {
409      "multiple": true,
410      "required": false,
411      "types": [
412        {
413          "type": "alt",
414          "named": true
415        }
416      ]
417    }
418  },
419  {
420    "type": "annotated_type_variable",
421    "named": true,
422    "fields": {
423      "type": {
424        "multiple": false,
425        "required": true,
426        "types": [
427          {
428            "type": "context",
429            "named": true
430          },
431          {
432            "type": "forall",
433            "named": true
434          },
435          {
436            "type": "fun",
437            "named": true
438          },
439          {
440            "type": "implicit_param",
441            "named": true
442          },
443          {
444            "type": "promoted",
445            "named": true
446          },
447          {
448            "type": "quasiquote",
449            "named": true
450          },
451          {
452            "type": "splice",
453            "named": true
454          },
455          {
456            "type": "type_apply",
457            "named": true
458          },
459          {
460            "type": "type_infix",
461            "named": true
462          },
463          {
464            "type": "type_list",
465            "named": true
466          },
467          {
468            "type": "type_literal",
469            "named": true
470          },
471          {
472            "type": "type_name",
473            "named": true
474          },
475          {
476            "type": "type_parens",
477            "named": true
478          },
479          {
480            "type": "type_star",
481            "named": true
482          },
483          {
484            "type": "type_tuple",
485            "named": true
486          },
487          {
488            "type": "type_unboxed_sum",
489            "named": true
490          },
491          {
492            "type": "type_unboxed_tuple",
493            "named": true
494          }
495        ]
496      }
497    },
498    "children": {
499      "multiple": false,
500      "required": true,
501      "types": [
502        {
503          "type": "type_variable",
504          "named": true
505        }
506      ]
507    }
508  },
509  {
510    "type": "bind_pattern",
511    "named": true,
512    "fields": {
513      "type": {
514        "multiple": false,
515        "required": false,
516        "types": [
517          {
518            "type": "context",
519            "named": true
520          },
521          {
522            "type": "forall",
523            "named": true
524          },
525          {
526            "type": "fun",
527            "named": true
528          },
529          {
530            "type": "implicit_param",
531            "named": true
532          },
533          {
534            "type": "promoted",
535            "named": true
536          },
537          {
538            "type": "quasiquote",
539            "named": true
540          },
541          {
542            "type": "splice",
543            "named": true
544          },
545          {
546            "type": "type_apply",
547            "named": true
548          },
549          {
550            "type": "type_infix",
551            "named": true
552          },
553          {
554            "type": "type_list",
555            "named": true
556          },
557          {
558            "type": "type_literal",
559            "named": true
560          },
561          {
562            "type": "type_name",
563            "named": true
564          },
565          {
566            "type": "type_parens",
567            "named": true
568          },
569          {
570            "type": "type_star",
571            "named": true
572          },
573          {
574            "type": "type_tuple",
575            "named": true
576          },
577          {
578            "type": "type_unboxed_sum",
579            "named": true
580          },
581          {
582            "type": "type_unboxed_tuple",
583            "named": true
584          }
585        ]
586      }
587    },
588    "children": {
589      "multiple": true,
590      "required": true,
591      "types": [
592        {
593          "type": "exp_apply",
594          "named": true
595        },
596        {
597          "type": "exp_arithmetic_sequence",
598          "named": true
599        },
600        {
601          "type": "exp_case",
602          "named": true
603        },
604        {
605          "type": "exp_cond",
606          "named": true
607        },
608        {
609          "type": "exp_do",
610          "named": true
611        },
612        {
613          "type": "exp_if_guard",
614          "named": true
615        },
616        {
617          "type": "exp_infix",
618          "named": true
619        },
620        {
621          "type": "exp_lambda",
622          "named": true
623        },
624        {
625          "type": "exp_lambda_case",
626          "named": true
627        },
628        {
629          "type": "exp_let_in",
630          "named": true
631        },
632        {
633          "type": "exp_list",
634          "named": true
635        },
636        {
637          "type": "exp_list_comprehension",
638          "named": true
639        },
640        {
641          "type": "exp_literal",
642          "named": true
643        },
644        {
645          "type": "exp_name",
646          "named": true
647        },
648        {
649          "type": "exp_negation",
650          "named": true
651        },
652        {
653          "type": "exp_parens",
654          "named": true
655        },
656        {
657          "type": "exp_record",
658          "named": true
659        },
660        {
661          "type": "exp_section_left",
662          "named": true
663        },
664        {
665          "type": "exp_section_right",
666          "named": true
667        },
668        {
669          "type": "exp_th_quoted_name",
670          "named": true
671        },
672        {
673          "type": "exp_tuple",
674          "named": true
675        },
676        {
677          "type": "exp_type_application",
678          "named": true
679        },
680        {
681          "type": "exp_unboxed_sum",
682          "named": true
683        },
684        {
685          "type": "exp_unboxed_tuple",
686          "named": true
687        },
688        {
689          "type": "pat_apply",
690          "named": true
691        },
692        {
693          "type": "pat_as",
694          "named": true
695        },
696        {
697          "type": "pat_infix",
698          "named": true
699        },
700        {
701          "type": "pat_irrefutable",
702          "named": true
703        },
704        {
705          "type": "pat_list",
706          "named": true
707        },
708        {
709          "type": "pat_literal",
710          "named": true
711        },
712        {
713          "type": "pat_name",
714          "named": true
715        },
716        {
717          "type": "pat_negation",
718          "named": true
719        },
720        {
721          "type": "pat_parens",
722          "named": true
723        },
724        {
725          "type": "pat_record",
726          "named": true
727        },
728        {
729          "type": "pat_strict",
730          "named": true
731        },
732        {
733          "type": "pat_tuple",
734          "named": true
735        },
736        {
737          "type": "pat_typed",
738          "named": true
739        },
740        {
741          "type": "pat_unboxed_tuple",
742          "named": true
743        },
744        {
745          "type": "pat_wildcard",
746          "named": true
747        },
748        {
749          "type": "quasiquote",
750          "named": true
751        },
752        {
753          "type": "splice",
754          "named": true
755        }
756      ]
757    }
758  },
759  {
760    "type": "calling_convention",
761    "named": true,
762    "fields": {}
763  },
764  {
765    "type": "class",
766    "named": true,
767    "fields": {},
768    "children": {
769      "multiple": true,
770      "required": true,
771      "types": [
772        {
773          "type": "class_body",
774          "named": true
775        },
776        {
777          "type": "class_head",
778          "named": true
779        },
780        {
781          "type": "context",
782          "named": true
783        },
784        {
785          "type": "fundeps",
786          "named": true
787        }
788      ]
789    }
790  },
791  {
792    "type": "class_body",
793    "named": true,
794    "fields": {},
795    "children": {
796      "multiple": true,
797      "required": true,
798      "types": [
799        {
800          "type": "data_family",
801          "named": true
802        },
803        {
804          "type": "decl_tyfam_sig",
805          "named": true
806        },
807        {
808          "type": "decl_type",
809          "named": true
810        },
811        {
812          "type": "default_signature",
813          "named": true
814        },
815        {
816          "type": "fixity",
817          "named": true
818        },
819        {
820          "type": "function",
821          "named": true
822        },
823        {
824          "type": "signature",
825          "named": true
826        },
827        {
828          "type": "where",
829          "named": true
830        }
831      ]
832    }
833  },
834  {
835    "type": "class_head",
836    "named": true,
837    "fields": {
838      "class": {
839        "multiple": false,
840        "required": false,
841        "types": [
842          {
843            "type": "class_name",
844            "named": true
845          }
846        ]
847      }
848    },
849    "children": {
850      "multiple": true,
851      "required": false,
852      "types": [
853        {
854          "type": "promoted",
855          "named": true
856        },
857        {
858          "type": "quasiquote",
859          "named": true
860        },
861        {
862          "type": "splice",
863          "named": true
864        },
865        {
866          "type": "type_infix",
867          "named": true
868        },
869        {
870          "type": "type_list",
871          "named": true
872        },
873        {
874          "type": "type_literal",
875          "named": true
876        },
877        {
878          "type": "type_name",
879          "named": true
880        },
881        {
882          "type": "type_parens",
883          "named": true
884        },
885        {
886          "type": "type_star",
887          "named": true
888        },
889        {
890          "type": "type_tuple",
891          "named": true
892        },
893        {
894          "type": "type_unboxed_sum",
895          "named": true
896        },
897        {
898          "type": "type_unboxed_tuple",
899          "named": true
900        }
901      ]
902    }
903  },
904  {
905    "type": "class_name",
906    "named": true,
907    "fields": {},
908    "children": {
909      "multiple": false,
910      "required": true,
911      "types": [
912        {
913          "type": "annotated_type_variable",
914          "named": true
915        },
916        {
917          "type": "constructor_operator",
918          "named": true
919        },
920        {
921          "type": "promoted",
922          "named": true
923        },
924        {
925          "type": "qualified_constructor_operator",
926          "named": true
927        },
928        {
929          "type": "qualified_type",
930          "named": true
931        },
932        {
933          "type": "qualified_type_operator",
934          "named": true
935        },
936        {
937          "type": "tycon_arrow",
938          "named": true
939        },
940        {
941          "type": "type",
942          "named": true
943        },
944        {
945          "type": "type_operator",
946          "named": true
947        },
948        {
949          "type": "type_variable",
950          "named": true
951        }
952      ]
953    }
954  },
955  {
956    "type": "con_list",
957    "named": true,
958    "fields": {}
959  },
960  {
961    "type": "con_tuple",
962    "named": true,
963    "fields": {},
964    "children": {
965      "multiple": true,
966      "required": true,
967      "types": [
968        {
969          "type": "comma",
970          "named": true
971        }
972      ]
973    }
974  },
975  {
976    "type": "con_unit",
977    "named": true,
978    "fields": {}
979  },
980  {
981    "type": "constraint",
982    "named": true,
983    "fields": {
984      "class": {
985        "multiple": false,
986        "required": false,
987        "types": [
988          {
989            "type": "class_name",
990            "named": true
991          }
992        ]
993      }
994    },
995    "children": {
996      "multiple": true,
997      "required": false,
998      "types": [
999        {
1000          "type": "promoted",
1001          "named": true
1002        },
1003        {
1004          "type": "quasiquote",
1005          "named": true
1006        },
1007        {
1008          "type": "splice",
1009          "named": true
1010        },
1011        {
1012          "type": "type_infix",
1013          "named": true
1014        },
1015        {
1016          "type": "type_list",
1017          "named": true
1018        },
1019        {
1020          "type": "type_literal",
1021          "named": true
1022        },
1023        {
1024          "type": "type_name",
1025          "named": true
1026        },
1027        {
1028          "type": "type_parens",
1029          "named": true
1030        },
1031        {
1032          "type": "type_star",
1033          "named": true
1034        },
1035        {
1036          "type": "type_tuple",
1037          "named": true
1038        },
1039        {
1040          "type": "type_unboxed_sum",
1041          "named": true
1042        },
1043        {
1044          "type": "type_unboxed_tuple",
1045          "named": true
1046        }
1047      ]
1048    }
1049  },
1050  {
1051    "type": "constructor",
1052    "named": true,
1053    "fields": {}
1054  },
1055  {
1056    "type": "constructor_operator",
1057    "named": true,
1058    "fields": {}
1059  },
1060  {
1061    "type": "constructors",
1062    "named": true,
1063    "fields": {},
1064    "children": {
1065      "multiple": true,
1066      "required": true,
1067      "types": [
1068        {
1069          "type": "context",
1070          "named": true
1071        },
1072        {
1073          "type": "data_constructor",
1074          "named": true
1075        },
1076        {
1077          "type": "data_constructor_infix",
1078          "named": true
1079        },
1080        {
1081          "type": "data_constructor_record",
1082          "named": true
1083        },
1084        {
1085          "type": "forall",
1086          "named": true
1087        }
1088      ]
1089    }
1090  },
1091  {
1092    "type": "context",
1093    "named": true,
1094    "fields": {},
1095    "children": {
1096      "multiple": true,
1097      "required": false,
1098      "types": [
1099        {
1100          "type": "comma",
1101          "named": true
1102        },
1103        {
1104          "type": "constraint",
1105          "named": true
1106        },
1107        {
1108          "type": "context",
1109          "named": true
1110        },
1111        {
1112          "type": "forall",
1113          "named": true
1114        },
1115        {
1116          "type": "fun",
1117          "named": true
1118        },
1119        {
1120          "type": "implicit_param",
1121          "named": true
1122        },
1123        {
1124          "type": "promoted",
1125          "named": true
1126        },
1127        {
1128          "type": "quasiquote",
1129          "named": true
1130        },
1131        {
1132          "type": "splice",
1133          "named": true
1134        },
1135        {
1136          "type": "type_apply",
1137          "named": true
1138        },
1139        {
1140          "type": "type_infix",
1141          "named": true
1142        },
1143        {
1144          "type": "type_list",
1145          "named": true
1146        },
1147        {
1148          "type": "type_literal",
1149          "named": true
1150        },
1151        {
1152          "type": "type_name",
1153          "named": true
1154        },
1155        {
1156          "type": "type_parens",
1157          "named": true
1158        },
1159        {
1160          "type": "type_star",
1161          "named": true
1162        },
1163        {
1164          "type": "type_tuple",
1165          "named": true
1166        },
1167        {
1168          "type": "type_unboxed_sum",
1169          "named": true
1170        },
1171        {
1172          "type": "type_unboxed_tuple",
1173          "named": true
1174        }
1175      ]
1176    }
1177  },
1178  {
1179    "type": "data_constructor",
1180    "named": true,
1181    "fields": {},
1182    "children": {
1183      "multiple": true,
1184      "required": true,
1185      "types": [
1186        {
1187          "type": "constructor",
1188          "named": true
1189        },
1190        {
1191          "type": "promoted",
1192          "named": true
1193        },
1194        {
1195          "type": "quasiquote",
1196          "named": true
1197        },
1198        {
1199          "type": "splice",
1200          "named": true
1201        },
1202        {
1203          "type": "strict_type",
1204          "named": true
1205        },
1206        {
1207          "type": "type_list",
1208          "named": true
1209        },
1210        {
1211          "type": "type_literal",
1212          "named": true
1213        },
1214        {
1215          "type": "type_name",
1216          "named": true
1217        },
1218        {
1219          "type": "type_parens",
1220          "named": true
1221        },
1222        {
1223          "type": "type_star",
1224          "named": true
1225        },
1226        {
1227          "type": "type_tuple",
1228          "named": true
1229        },
1230        {
1231          "type": "type_unboxed_sum",
1232          "named": true
1233        },
1234        {
1235          "type": "type_unboxed_tuple",
1236          "named": true
1237        }
1238      ]
1239    }
1240  },
1241  {
1242    "type": "data_constructor_infix",
1243    "named": true,
1244    "fields": {},
1245    "children": {
1246      "multiple": true,
1247      "required": true,
1248      "types": [
1249        {
1250          "type": "constructor",
1251          "named": true
1252        },
1253        {
1254          "type": "constructor_operator",
1255          "named": true
1256        },
1257        {
1258          "type": "promoted",
1259          "named": true
1260        },
1261        {
1262          "type": "quasiquote",
1263          "named": true
1264        },
1265        {
1266          "type": "splice",
1267          "named": true
1268        },
1269        {
1270          "type": "strict_type",
1271          "named": true
1272        },
1273        {
1274          "type": "type_apply",
1275          "named": true
1276        },
1277        {
1278          "type": "type_infix",
1279          "named": true
1280        },
1281        {
1282          "type": "type_list",
1283          "named": true
1284        },
1285        {
1286          "type": "type_literal",
1287          "named": true
1288        },
1289        {
1290          "type": "type_name",
1291          "named": true
1292        },
1293        {
1294          "type": "type_parens",
1295          "named": true
1296        },
1297        {
1298          "type": "type_star",
1299          "named": true
1300        },
1301        {
1302          "type": "type_tuple",
1303          "named": true
1304        },
1305        {
1306          "type": "type_unboxed_sum",
1307          "named": true
1308        },
1309        {
1310          "type": "type_unboxed_tuple",
1311          "named": true
1312        }
1313      ]
1314    }
1315  },
1316  {
1317    "type": "data_constructor_record",
1318    "named": true,
1319    "fields": {},
1320    "children": {
1321      "multiple": true,
1322      "required": true,
1323      "types": [
1324        {
1325          "type": "constructor",
1326          "named": true
1327        },
1328        {
1329          "type": "record_fields",
1330          "named": true
1331        }
1332      ]
1333    }
1334  },
1335  {
1336    "type": "data_family",
1337    "named": true,
1338    "fields": {
1339      "name": {
1340        "multiple": true,
1341        "required": false,
1342        "types": [
1343          {
1344            "type": "(",
1345            "named": false
1346          },
1347          {
1348            "type": ")",
1349            "named": false
1350          },
1351          {
1352            "type": "constructor_operator",
1353            "named": true
1354          },
1355          {
1356            "type": "type",
1357            "named": true
1358          },
1359          {
1360            "type": "type_operator",
1361            "named": true
1362          }
1363        ]
1364      },
1365      "type": {
1366        "multiple": false,
1367        "required": false,
1368        "types": [
1369          {
1370            "type": "context",
1371            "named": true
1372          },
1373          {
1374            "type": "forall",
1375            "named": true
1376          },
1377          {
1378            "type": "fun",
1379            "named": true
1380          },
1381          {
1382            "type": "implicit_param",
1383            "named": true
1384          },
1385          {
1386            "type": "promoted",
1387            "named": true
1388          },
1389          {
1390            "type": "quasiquote",
1391            "named": true
1392          },
1393          {
1394            "type": "splice",
1395            "named": true
1396          },
1397          {
1398            "type": "type_apply",
1399            "named": true
1400          },
1401          {
1402            "type": "type_infix",
1403            "named": true
1404          },
1405          {
1406            "type": "type_list",
1407            "named": true
1408          },
1409          {
1410            "type": "type_literal",
1411            "named": true
1412          },
1413          {
1414            "type": "type_name",
1415            "named": true
1416          },
1417          {
1418            "type": "type_parens",
1419            "named": true
1420          },
1421          {
1422            "type": "type_star",
1423            "named": true
1424          },
1425          {
1426            "type": "type_tuple",
1427            "named": true
1428          },
1429          {
1430            "type": "type_unboxed_sum",
1431            "named": true
1432          },
1433          {
1434            "type": "type_unboxed_tuple",
1435            "named": true
1436          }
1437        ]
1438      }
1439    },
1440    "children": {
1441      "multiple": true,
1442      "required": false,
1443      "types": [
1444        {
1445          "type": "annotated_type_variable",
1446          "named": true
1447        },
1448        {
1449          "type": "type_infix",
1450          "named": true
1451        },
1452        {
1453          "type": "type_variable",
1454          "named": true
1455        }
1456      ]
1457    }
1458  },
1459  {
1460    "type": "data_instance",
1461    "named": true,
1462    "fields": {
1463      "type": {
1464        "multiple": false,
1465        "required": false,
1466        "types": [
1467          {
1468            "type": "context",
1469            "named": true
1470          },
1471          {
1472            "type": "forall",
1473            "named": true
1474          },
1475          {
1476            "type": "fun",
1477            "named": true
1478          },
1479          {
1480            "type": "implicit_param",
1481            "named": true
1482          },
1483          {
1484            "type": "promoted",
1485            "named": true
1486          },
1487          {
1488            "type": "quasiquote",
1489            "named": true
1490          },
1491          {
1492            "type": "splice",
1493            "named": true
1494          },
1495          {
1496            "type": "type_apply",
1497            "named": true
1498          },
1499          {
1500            "type": "type_infix",
1501            "named": true
1502          },
1503          {
1504            "type": "type_list",
1505            "named": true
1506          },
1507          {
1508            "type": "type_literal",
1509            "named": true
1510          },
1511          {
1512            "type": "type_name",
1513            "named": true
1514          },
1515          {
1516            "type": "type_parens",
1517            "named": true
1518          },
1519          {
1520            "type": "type_star",
1521            "named": true
1522          },
1523          {
1524            "type": "type_tuple",
1525            "named": true
1526          },
1527          {
1528            "type": "type_unboxed_sum",
1529            "named": true
1530          },
1531          {
1532            "type": "type_unboxed_tuple",
1533            "named": true
1534          }
1535        ]
1536      }
1537    },
1538    "children": {
1539      "multiple": true,
1540      "required": true,
1541      "types": [
1542        {
1543          "type": "constructors",
1544          "named": true
1545        },
1546        {
1547          "type": "context",
1548          "named": true
1549        },
1550        {
1551          "type": "deriving",
1552          "named": true
1553        },
1554        {
1555          "type": "forall",
1556          "named": true
1557        },
1558        {
1559          "type": "gadt_constructor",
1560          "named": true
1561        },
1562        {
1563          "type": "newtype_constructor",
1564          "named": true
1565        },
1566        {
1567          "type": "promoted",
1568          "named": true
1569        },
1570        {
1571          "type": "quasiquote",
1572          "named": true
1573        },
1574        {
1575          "type": "splice",
1576          "named": true
1577        },
1578        {
1579          "type": "type_apply",
1580          "named": true
1581        },
1582        {
1583          "type": "type_infix",
1584          "named": true
1585        },
1586        {
1587          "type": "type_list",
1588          "named": true
1589        },
1590        {
1591          "type": "type_literal",
1592          "named": true
1593        },
1594        {
1595          "type": "type_name",
1596          "named": true
1597        },
1598        {
1599          "type": "type_parens",
1600          "named": true
1601        },
1602        {
1603          "type": "type_star",
1604          "named": true
1605        },
1606        {
1607          "type": "type_tuple",
1608          "named": true
1609        },
1610        {
1611          "type": "type_unboxed_sum",
1612          "named": true
1613        },
1614        {
1615          "type": "type_unboxed_tuple",
1616          "named": true
1617        },
1618        {
1619          "type": "where",
1620          "named": true
1621        }
1622      ]
1623    }
1624  },
1625  {
1626    "type": "decl_tyfam_sig",
1627    "named": true,
1628    "fields": {
1629      "name": {
1630        "multiple": true,
1631        "required": false,
1632        "types": [
1633          {
1634            "type": "(",
1635            "named": false
1636          },
1637          {
1638            "type": ")",
1639            "named": false
1640          },
1641          {
1642            "type": "constructor_operator",
1643            "named": true
1644          },
1645          {
1646            "type": "type",
1647            "named": true
1648          },
1649          {
1650            "type": "type_operator",
1651            "named": true
1652          }
1653        ]
1654      },
1655      "type": {
1656        "multiple": false,
1657        "required": true,
1658        "types": [
1659          {
1660            "type": "context",
1661            "named": true
1662          },
1663          {
1664            "type": "forall",
1665            "named": true
1666          },
1667          {
1668            "type": "fun",
1669            "named": true
1670          },
1671          {
1672            "type": "implicit_param",
1673            "named": true
1674          },
1675          {
1676            "type": "promoted",
1677            "named": true
1678          },
1679          {
1680            "type": "quasiquote",
1681            "named": true
1682          },
1683          {
1684            "type": "splice",
1685            "named": true
1686          },
1687          {
1688            "type": "type_apply",
1689            "named": true
1690          },
1691          {
1692            "type": "type_infix",
1693            "named": true
1694          },
1695          {
1696            "type": "type_list",
1697            "named": true
1698          },
1699          {
1700            "type": "type_literal",
1701            "named": true
1702          },
1703          {
1704            "type": "type_name",
1705            "named": true
1706          },
1707          {
1708            "type": "type_parens",
1709            "named": true
1710          },
1711          {
1712            "type": "type_star",
1713            "named": true
1714          },
1715          {
1716            "type": "type_tuple",
1717            "named": true
1718          },
1719          {
1720            "type": "type_unboxed_sum",
1721            "named": true
1722          },
1723          {
1724            "type": "type_unboxed_tuple",
1725            "named": true
1726          }
1727        ]
1728      }
1729    },
1730    "children": {
1731      "multiple": true,
1732      "required": false,
1733      "types": [
1734        {
1735          "type": "annotated_type_variable",
1736          "named": true
1737        },
1738        {
1739          "type": "type_infix",
1740          "named": true
1741        },
1742        {
1743          "type": "type_variable",
1744          "named": true
1745        }
1746      ]
1747    }
1748  },
1749  {
1750    "type": "decl_type",
1751    "named": true,
1752    "fields": {
1753      "name": {
1754        "multiple": true,
1755        "required": false,
1756        "types": [
1757          {
1758            "type": "(",
1759            "named": false
1760          },
1761          {
1762            "type": ")",
1763            "named": false
1764          },
1765          {
1766            "type": "constructor_operator",
1767            "named": true
1768          },
1769          {
1770            "type": "type",
1771            "named": true
1772          },
1773          {
1774            "type": "type_operator",
1775            "named": true
1776          }
1777        ]
1778      },
1779      "type": {
1780        "multiple": false,
1781        "required": false,
1782        "types": [
1783          {
1784            "type": "context",
1785            "named": true
1786          },
1787          {
1788            "type": "forall",
1789            "named": true
1790          },
1791          {
1792            "type": "fun",
1793            "named": true
1794          },
1795          {
1796            "type": "implicit_param",
1797            "named": true
1798          },
1799          {
1800            "type": "promoted",
1801            "named": true
1802          },
1803          {
1804            "type": "quasiquote",
1805            "named": true
1806          },
1807          {
1808            "type": "splice",
1809            "named": true
1810          },
1811          {
1812            "type": "type_apply",
1813            "named": true
1814          },
1815          {
1816            "type": "type_infix",
1817            "named": true
1818          },
1819          {
1820            "type": "type_list",
1821            "named": true
1822          },
1823          {
1824            "type": "type_literal",
1825            "named": true
1826          },
1827          {
1828            "type": "type_name",
1829            "named": true
1830          },
1831          {
1832            "type": "type_parens",
1833            "named": true
1834          },
1835          {
1836            "type": "type_star",
1837            "named": true
1838          },
1839          {
1840            "type": "type_tuple",
1841            "named": true
1842          },
1843          {
1844            "type": "type_unboxed_sum",
1845            "named": true
1846          },
1847          {
1848            "type": "type_unboxed_tuple",
1849            "named": true
1850          }
1851        ]
1852      }
1853    },
1854    "children": {
1855      "multiple": true,
1856      "required": false,
1857      "types": [
1858        {
1859          "type": "annotated_type_variable",
1860          "named": true
1861        },
1862        {
1863          "type": "context",
1864          "named": true
1865        },
1866        {
1867          "type": "forall",
1868          "named": true
1869        },
1870        {
1871          "type": "fun",
1872          "named": true
1873        },
1874        {
1875          "type": "implicit_param",
1876          "named": true
1877        },
1878        {
1879          "type": "promoted",
1880          "named": true
1881        },
1882        {
1883          "type": "quasiquote",
1884          "named": true
1885        },
1886        {
1887          "type": "splice",
1888          "named": true
1889        },
1890        {
1891          "type": "type_apply",
1892          "named": true
1893        },
1894        {
1895          "type": "type_infix",
1896          "named": true
1897        },
1898        {
1899          "type": "type_list",
1900          "named": true
1901        },
1902        {
1903          "type": "type_literal",
1904          "named": true
1905        },
1906        {
1907          "type": "type_name",
1908          "named": true
1909        },
1910        {
1911          "type": "type_parens",
1912          "named": true
1913        },
1914        {
1915          "type": "type_star",
1916          "named": true
1917        },
1918        {
1919          "type": "type_tuple",
1920          "named": true
1921        },
1922        {
1923          "type": "type_unboxed_sum",
1924          "named": true
1925        },
1926        {
1927          "type": "type_unboxed_tuple",
1928          "named": true
1929        },
1930        {
1931          "type": "type_variable",
1932          "named": true
1933        }
1934      ]
1935    }
1936  },
1937  {
1938    "type": "decls",
1939    "named": true,
1940    "fields": {},
1941    "children": {
1942      "multiple": true,
1943      "required": false,
1944      "types": [
1945        {
1946          "type": "fixity",
1947          "named": true
1948        },
1949        {
1950          "type": "function",
1951          "named": true
1952        },
1953        {
1954          "type": "signature",
1955          "named": true
1956        }
1957      ]
1958    }
1959  },
1960  {
1961    "type": "default_declaration",
1962    "named": true,
1963    "fields": {},
1964    "children": {
1965      "multiple": true,
1966      "required": false,
1967      "types": [
1968        {
1969          "type": "comma",
1970          "named": true
1971        },
1972        {
1973          "type": "promoted",
1974          "named": true
1975        },
1976        {
1977          "type": "quasiquote",
1978          "named": true
1979        },
1980        {
1981          "type": "splice",
1982          "named": true
1983        },
1984        {
1985          "type": "type_apply",
1986          "named": true
1987        },
1988        {
1989          "type": "type_infix",
1990          "named": true
1991        },
1992        {
1993          "type": "type_list",
1994          "named": true
1995        },
1996        {
1997          "type": "type_literal",
1998          "named": true
1999        },
2000        {
2001          "type": "type_name",
2002          "named": true
2003        },
2004        {
2005          "type": "type_parens",
2006          "named": true
2007        },
2008        {
2009          "type": "type_star",
2010          "named": true
2011        },
2012        {
2013          "type": "type_tuple",
2014          "named": true
2015        },
2016        {
2017          "type": "type_unboxed_sum",
2018          "named": true
2019        },
2020        {
2021          "type": "type_unboxed_tuple",
2022          "named": true
2023        }
2024      ]
2025    }
2026  },
2027  {
2028    "type": "default_signature",
2029    "named": true,
2030    "fields": {},
2031    "children": {
2032      "multiple": false,
2033      "required": true,
2034      "types": [
2035        {
2036          "type": "signature",
2037          "named": true
2038        }
2039      ]
2040    }
2041  },
2042  {
2043    "type": "deriving",
2044    "named": true,
2045    "fields": {
2046      "class": {
2047        "multiple": true,
2048        "required": false,
2049        "types": [
2050          {
2051            "type": "(",
2052            "named": false
2053          },
2054          {
2055            "type": ")",
2056            "named": false
2057          },
2058          {
2059            "type": "constraint",
2060            "named": true
2061          },
2062          {
2063            "type": "context",
2064            "named": true
2065          },
2066          {
2067            "type": "forall",
2068            "named": true
2069          },
2070          {
2071            "type": "qualified_type",
2072            "named": true
2073          },
2074          {
2075            "type": "type",
2076            "named": true
2077          }
2078        ]
2079      }
2080    },
2081    "children": {
2082      "multiple": true,
2083      "required": false,
2084      "types": [
2085        {
2086          "type": "comma",
2087          "named": true
2088        },
2089        {
2090          "type": "deriving_strategy",
2091          "named": true
2092        },
2093        {
2094          "type": "via",
2095          "named": true
2096        }
2097      ]
2098    }
2099  },
2100  {
2101    "type": "deriving_declaration",
2102    "named": true,
2103    "fields": {},
2104    "children": {
2105      "multiple": true,
2106      "required": true,
2107      "types": [
2108        {
2109          "type": "context",
2110          "named": true
2111        },
2112        {
2113          "type": "deriving_strategy",
2114          "named": true
2115        },
2116        {
2117          "type": "forall",
2118          "named": true
2119        },
2120        {
2121          "type": "instance_head",
2122          "named": true
2123        },
2124        {
2125          "type": "via",
2126          "named": true
2127        }
2128      ]
2129    }
2130  },
2131  {
2132    "type": "deriving_strategy",
2133    "named": true,
2134    "fields": {}
2135  },
2136  {
2137    "type": "do_module",
2138    "named": true,
2139    "fields": {},
2140    "children": {
2141      "multiple": true,
2142      "required": true,
2143      "types": [
2144        {
2145          "type": "module",
2146          "named": true
2147        }
2148      ]
2149    }
2150  },
2151  {
2152    "type": "equation",
2153    "named": true,
2154    "fields": {
2155      "lhs": {
2156        "multiple": false,
2157        "required": false,
2158        "types": [
2159          {
2160            "type": "pat_apply",
2161            "named": true
2162          },
2163          {
2164            "type": "pat_as",
2165            "named": true
2166          },
2167          {
2168            "type": "pat_infix",
2169            "named": true
2170          },
2171          {
2172            "type": "pat_irrefutable",
2173            "named": true
2174          },
2175          {
2176            "type": "pat_list",
2177            "named": true
2178          },
2179          {
2180            "type": "pat_literal",
2181            "named": true
2182          },
2183          {
2184            "type": "pat_name",
2185            "named": true
2186          },
2187          {
2188            "type": "pat_negation",
2189            "named": true
2190          },
2191          {
2192            "type": "pat_parens",
2193            "named": true
2194          },
2195          {
2196            "type": "pat_record",
2197            "named": true
2198          },
2199          {
2200            "type": "pat_strict",
2201            "named": true
2202          },
2203          {
2204            "type": "pat_tuple",
2205            "named": true
2206          },
2207          {
2208            "type": "pat_unboxed_tuple",
2209            "named": true
2210          },
2211          {
2212            "type": "pat_wildcard",
2213            "named": true
2214          },
2215          {
2216            "type": "quasiquote",
2217            "named": true
2218          },
2219          {
2220            "type": "splice",
2221            "named": true
2222          }
2223        ]
2224      },
2225      "rhs": {
2226        "multiple": true,
2227        "required": false,
2228        "types": [
2229          {
2230            "type": "::",
2231            "named": false
2232          },
2233          {
2234            "type": "context",
2235            "named": true
2236          },
2237          {
2238            "type": "exp_apply",
2239            "named": true
2240          },
2241          {
2242            "type": "exp_arithmetic_sequence",
2243            "named": true
2244          },
2245          {
2246            "type": "exp_case",
2247            "named": true
2248          },
2249          {
2250            "type": "exp_cond",
2251            "named": true
2252          },
2253          {
2254            "type": "exp_do",
2255            "named": true
2256          },
2257          {
2258            "type": "exp_if_guard",
2259            "named": true
2260          },
2261          {
2262            "type": "exp_infix",
2263            "named": true
2264          },
2265          {
2266            "type": "exp_lambda",
2267            "named": true
2268          },
2269          {
2270            "type": "exp_lambda_case",
2271            "named": true
2272          },
2273          {
2274            "type": "exp_let_in",
2275            "named": true
2276          },
2277          {
2278            "type": "exp_list",
2279            "named": true
2280          },
2281          {
2282            "type": "exp_list_comprehension",
2283            "named": true
2284          },
2285          {
2286            "type": "exp_literal",
2287            "named": true
2288          },
2289          {
2290            "type": "exp_name",
2291            "named": true
2292          },
2293          {
2294            "type": "exp_negation",
2295            "named": true
2296          },
2297          {
2298            "type": "exp_parens",
2299            "named": true
2300          },
2301          {
2302            "type": "exp_record",
2303            "named": true
2304          },
2305          {
2306            "type": "exp_section_left",
2307            "named": true
2308          },
2309          {
2310            "type": "exp_section_right",
2311            "named": true
2312          },
2313          {
2314            "type": "exp_th_quoted_name",
2315            "named": true
2316          },
2317          {
2318            "type": "exp_tuple",
2319            "named": true
2320          },
2321          {
2322            "type": "exp_type_application",
2323            "named": true
2324          },
2325          {
2326            "type": "exp_unboxed_sum",
2327            "named": true
2328          },
2329          {
2330            "type": "exp_unboxed_tuple",
2331            "named": true
2332          },
2333          {
2334            "type": "forall",
2335            "named": true
2336          },
2337          {
2338            "type": "fun",
2339            "named": true
2340          },
2341          {
2342            "type": "implicit_param",
2343            "named": true
2344          },
2345          {
2346            "type": "pat_apply",
2347            "named": true
2348          },
2349          {
2350            "type": "pat_as",
2351            "named": true
2352          },
2353          {
2354            "type": "pat_infix",
2355            "named": true
2356          },
2357          {
2358            "type": "pat_irrefutable",
2359            "named": true
2360          },
2361          {
2362            "type": "pat_list",
2363            "named": true
2364          },
2365          {
2366            "type": "pat_literal",
2367            "named": true
2368          },
2369          {
2370            "type": "pat_name",
2371            "named": true
2372          },
2373          {
2374            "type": "pat_negation",
2375            "named": true
2376          },
2377          {
2378            "type": "pat_parens",
2379            "named": true
2380          },
2381          {
2382            "type": "pat_record",
2383            "named": true
2384          },
2385          {
2386            "type": "pat_strict",
2387            "named": true
2388          },
2389          {
2390            "type": "pat_tuple",
2391            "named": true
2392          },
2393          {
2394            "type": "pat_unboxed_tuple",
2395            "named": true
2396          },
2397          {
2398            "type": "pat_wildcard",
2399            "named": true
2400          },
2401          {
2402            "type": "promoted",
2403            "named": true
2404          },
2405          {
2406            "type": "quasiquote",
2407            "named": true
2408          },
2409          {
2410            "type": "splice",
2411            "named": true
2412          },
2413          {
2414            "type": "type_apply",
2415            "named": true
2416          },
2417          {
2418            "type": "type_infix",
2419            "named": true
2420          },
2421          {
2422            "type": "type_list",
2423            "named": true
2424          },
2425          {
2426            "type": "type_literal",
2427            "named": true
2428          },
2429          {
2430            "type": "type_name",
2431            "named": true
2432          },
2433          {
2434            "type": "type_parens",
2435            "named": true
2436          },
2437          {
2438            "type": "type_star",
2439            "named": true
2440          },
2441          {
2442            "type": "type_tuple",
2443            "named": true
2444          },
2445          {
2446            "type": "type_unboxed_sum",
2447            "named": true
2448          },
2449          {
2450            "type": "type_unboxed_tuple",
2451            "named": true
2452          }
2453        ]
2454      },
2455      "type": {
2456        "multiple": true,
2457        "required": false,
2458        "types": [
2459          {
2460            "type": "context",
2461            "named": true
2462          },
2463          {
2464            "type": "forall",
2465            "named": true
2466          },
2467          {
2468            "type": "fun",
2469            "named": true
2470          },
2471          {
2472            "type": "implicit_param",
2473            "named": true
2474          },
2475          {
2476            "type": "promoted",
2477            "named": true
2478          },
2479          {
2480            "type": "quasiquote",
2481            "named": true
2482          },
2483          {
2484            "type": "splice",
2485            "named": true
2486          },
2487          {
2488            "type": "type_apply",
2489            "named": true
2490          },
2491          {
2492            "type": "type_infix",
2493            "named": true
2494          },
2495          {
2496            "type": "type_list",
2497            "named": true
2498          },
2499          {
2500            "type": "type_literal",
2501            "named": true
2502          },
2503          {
2504            "type": "type_name",
2505            "named": true
2506          },
2507          {
2508            "type": "type_parens",
2509            "named": true
2510          },
2511          {
2512            "type": "type_star",
2513            "named": true
2514          },
2515          {
2516            "type": "type_tuple",
2517            "named": true
2518          },
2519          {
2520            "type": "type_unboxed_sum",
2521            "named": true
2522          },
2523          {
2524            "type": "type_unboxed_tuple",
2525            "named": true
2526          }
2527        ]
2528      }
2529    },
2530    "children": {
2531      "multiple": true,
2532      "required": false,
2533      "types": [
2534        {
2535          "type": "context",
2536          "named": true
2537        },
2538        {
2539          "type": "decls",
2540          "named": true
2541        },
2542        {
2543          "type": "forall",
2544          "named": true
2545        },
2546        {
2547          "type": "fun",
2548          "named": true
2549        },
2550        {
2551          "type": "guard_equation",
2552          "named": true
2553        },
2554        {
2555          "type": "implicit_param",
2556          "named": true
2557        },
2558        {
2559          "type": "pat_apply",
2560          "named": true
2561        },
2562        {
2563          "type": "pat_as",
2564          "named": true
2565        },
2566        {
2567          "type": "pat_infix",
2568          "named": true
2569        },
2570        {
2571          "type": "pat_irrefutable",
2572          "named": true
2573        },
2574        {
2575          "type": "pat_list",
2576          "named": true
2577        },
2578        {
2579          "type": "pat_literal",
2580          "named": true
2581        },
2582        {
2583          "type": "pat_name",
2584          "named": true
2585        },
2586        {
2587          "type": "pat_negation",
2588          "named": true
2589        },
2590        {
2591          "type": "pat_parens",
2592          "named": true
2593        },
2594        {
2595          "type": "pat_record",
2596          "named": true
2597        },
2598        {
2599          "type": "pat_strict",
2600          "named": true
2601        },
2602        {
2603          "type": "pat_tuple",
2604          "named": true
2605        },
2606        {
2607          "type": "pat_unboxed_tuple",
2608          "named": true
2609        },
2610        {
2611          "type": "pat_wildcard",
2612          "named": true
2613        },
2614        {
2615          "type": "pattern",
2616          "named": true
2617        },
2618        {
2619          "type": "promoted",
2620          "named": true
2621        },
2622        {
2623          "type": "quasiquote",
2624          "named": true
2625        },
2626        {
2627          "type": "splice",
2628          "named": true
2629        },
2630        {
2631          "type": "type_apply",
2632          "named": true
2633        },
2634        {
2635          "type": "type_infix",
2636          "named": true
2637        },
2638        {
2639          "type": "type_list",
2640          "named": true
2641        },
2642        {
2643          "type": "type_literal",
2644          "named": true
2645        },
2646        {
2647          "type": "type_name",
2648          "named": true
2649        },
2650        {
2651          "type": "type_parens",
2652          "named": true
2653        },
2654        {
2655          "type": "type_star",
2656          "named": true
2657        },
2658        {
2659          "type": "type_tuple",
2660          "named": true
2661        },
2662        {
2663          "type": "type_unboxed_sum",
2664          "named": true
2665        },
2666        {
2667          "type": "type_unboxed_tuple",
2668          "named": true
2669        },
2670        {
2671          "type": "where",
2672          "named": true
2673        }
2674      ]
2675    }
2676  },
2677  {
2678    "type": "exp_apply",
2679    "named": true,
2680    "fields": {},
2681    "children": {
2682      "multiple": true,
2683      "required": true,
2684      "types": [
2685        {
2686          "type": "exp_arithmetic_sequence",
2687          "named": true
2688        },
2689        {
2690          "type": "exp_case",
2691          "named": true
2692        },
2693        {
2694          "type": "exp_cond",
2695          "named": true
2696        },
2697        {
2698          "type": "exp_do",
2699          "named": true
2700        },
2701        {
2702          "type": "exp_lambda",
2703          "named": true
2704        },
2705        {
2706          "type": "exp_lambda_case",
2707          "named": true
2708        },
2709        {
2710          "type": "exp_let_in",
2711          "named": true
2712        },
2713        {
2714          "type": "exp_list",
2715          "named": true
2716        },
2717        {
2718          "type": "exp_list_comprehension",
2719          "named": true
2720        },
2721        {
2722          "type": "exp_literal",
2723          "named": true
2724        },
2725        {
2726          "type": "exp_name",
2727          "named": true
2728        },
2729        {
2730          "type": "exp_parens",
2731          "named": true
2732        },
2733        {
2734          "type": "exp_record",
2735          "named": true
2736        },
2737        {
2738          "type": "exp_section_left",
2739          "named": true
2740        },
2741        {
2742          "type": "exp_section_right",
2743          "named": true
2744        },
2745        {
2746          "type": "exp_th_quoted_name",
2747          "named": true
2748        },
2749        {
2750          "type": "exp_tuple",
2751          "named": true
2752        },
2753        {
2754          "type": "exp_type_application",
2755          "named": true
2756        },
2757        {
2758          "type": "exp_unboxed_sum",
2759          "named": true
2760        },
2761        {
2762          "type": "exp_unboxed_tuple",
2763          "named": true
2764        },
2765        {
2766          "type": "quasiquote",
2767          "named": true
2768        },
2769        {
2770          "type": "splice",
2771          "named": true
2772        }
2773      ]
2774    }
2775  },
2776  {
2777    "type": "exp_arithmetic_sequence",
2778    "named": true,
2779    "fields": {
2780      "from": {
2781        "multiple": true,
2782        "required": true,
2783        "types": [
2784          {
2785            "type": "::",
2786            "named": false
2787          },
2788          {
2789            "type": "context",
2790            "named": true
2791          },
2792          {
2793            "type": "exp_apply",
2794            "named": true
2795          },
2796          {
2797            "type": "exp_arithmetic_sequence",
2798            "named": true
2799          },
2800          {
2801            "type": "exp_case",
2802            "named": true
2803          },
2804          {
2805            "type": "exp_cond",
2806            "named": true
2807          },
2808          {
2809            "type": "exp_do",
2810            "named": true
2811          },
2812          {
2813            "type": "exp_if_guard",
2814            "named": true
2815          },
2816          {
2817            "type": "exp_infix",
2818            "named": true
2819          },
2820          {
2821            "type": "exp_lambda",
2822            "named": true
2823          },
2824          {
2825            "type": "exp_lambda_case",
2826            "named": true
2827          },
2828          {
2829            "type": "exp_let_in",
2830            "named": true
2831          },
2832          {
2833            "type": "exp_list",
2834            "named": true
2835          },
2836          {
2837            "type": "exp_list_comprehension",
2838            "named": true
2839          },
2840          {
2841            "type": "exp_literal",
2842            "named": true
2843          },
2844          {
2845            "type": "exp_name",
2846            "named": true
2847          },
2848          {
2849            "type": "exp_negation",
2850            "named": true
2851          },
2852          {
2853            "type": "exp_parens",
2854            "named": true
2855          },
2856          {
2857            "type": "exp_record",
2858            "named": true
2859          },
2860          {
2861            "type": "exp_section_left",
2862            "named": true
2863          },
2864          {
2865            "type": "exp_section_right",
2866            "named": true
2867          },
2868          {
2869            "type": "exp_th_quoted_name",
2870            "named": true
2871          },
2872          {
2873            "type": "exp_tuple",
2874            "named": true
2875          },
2876          {
2877            "type": "exp_type_application",
2878            "named": true
2879          },
2880          {
2881            "type": "exp_unboxed_sum",
2882            "named": true
2883          },
2884          {
2885            "type": "exp_unboxed_tuple",
2886            "named": true
2887          },
2888          {
2889            "type": "forall",
2890            "named": true
2891          },
2892          {
2893            "type": "fun",
2894            "named": true
2895          },
2896          {
2897            "type": "implicit_param",
2898            "named": true
2899          },
2900          {
2901            "type": "promoted",
2902            "named": true
2903          },
2904          {
2905            "type": "quasiquote",
2906            "named": true
2907          },
2908          {
2909            "type": "splice",
2910            "named": true
2911          },
2912          {
2913            "type": "type_apply",
2914            "named": true
2915          },
2916          {
2917            "type": "type_infix",
2918            "named": true
2919          },
2920          {
2921            "type": "type_list",
2922            "named": true
2923          },
2924          {
2925            "type": "type_literal",
2926            "named": true
2927          },
2928          {
2929            "type": "type_name",
2930            "named": true
2931          },
2932          {
2933            "type": "type_parens",
2934            "named": true
2935          },
2936          {
2937            "type": "type_star",
2938            "named": true
2939          },
2940          {
2941            "type": "type_tuple",
2942            "named": true
2943          },
2944          {
2945            "type": "type_unboxed_sum",
2946            "named": true
2947          },
2948          {
2949            "type": "type_unboxed_tuple",
2950            "named": true
2951          }
2952        ]
2953      },
2954      "step": {
2955        "multiple": true,
2956        "required": false,
2957        "types": [
2958          {
2959            "type": "::",
2960            "named": false
2961          },
2962          {
2963            "type": "context",
2964            "named": true
2965          },
2966          {
2967            "type": "exp_apply",
2968            "named": true
2969          },
2970          {
2971            "type": "exp_arithmetic_sequence",
2972            "named": true
2973          },
2974          {
2975            "type": "exp_case",
2976            "named": true
2977          },
2978          {
2979            "type": "exp_cond",
2980            "named": true
2981          },
2982          {
2983            "type": "exp_do",
2984            "named": true
2985          },
2986          {
2987            "type": "exp_if_guard",
2988            "named": true
2989          },
2990          {
2991            "type": "exp_infix",
2992            "named": true
2993          },
2994          {
2995            "type": "exp_lambda",
2996            "named": true
2997          },
2998          {
2999            "type": "exp_lambda_case",
3000            "named": true
3001          },
3002          {
3003            "type": "exp_let_in",
3004            "named": true
3005          },
3006          {
3007            "type": "exp_list",
3008            "named": true
3009          },
3010          {
3011            "type": "exp_list_comprehension",
3012            "named": true
3013          },
3014          {
3015            "type": "exp_literal",
3016            "named": true
3017          },
3018          {
3019            "type": "exp_name",
3020            "named": true
3021          },
3022          {
3023            "type": "exp_negation",
3024            "named": true
3025          },
3026          {
3027            "type": "exp_parens",
3028            "named": true
3029          },
3030          {
3031            "type": "exp_record",
3032            "named": true
3033          },
3034          {
3035            "type": "exp_section_left",
3036            "named": true
3037          },
3038          {
3039            "type": "exp_section_right",
3040            "named": true
3041          },
3042          {
3043            "type": "exp_th_quoted_name",
3044            "named": true
3045          },
3046          {
3047            "type": "exp_tuple",
3048            "named": true
3049          },
3050          {
3051            "type": "exp_type_application",
3052            "named": true
3053          },
3054          {
3055            "type": "exp_unboxed_sum",
3056            "named": true
3057          },
3058          {
3059            "type": "exp_unboxed_tuple",
3060            "named": true
3061          },
3062          {
3063            "type": "forall",
3064            "named": true
3065          },
3066          {
3067            "type": "fun",
3068            "named": true
3069          },
3070          {
3071            "type": "implicit_param",
3072            "named": true
3073          },
3074          {
3075            "type": "promoted",
3076            "named": true
3077          },
3078          {
3079            "type": "quasiquote",
3080            "named": true
3081          },
3082          {
3083            "type": "splice",
3084            "named": true
3085          },
3086          {
3087            "type": "type_apply",
3088            "named": true
3089          },
3090          {
3091            "type": "type_infix",
3092            "named": true
3093          },
3094          {
3095            "type": "type_list",
3096            "named": true
3097          },
3098          {
3099            "type": "type_literal",
3100            "named": true
3101          },
3102          {
3103            "type": "type_name",
3104            "named": true
3105          },
3106          {
3107            "type": "type_parens",
3108            "named": true
3109          },
3110          {
3111            "type": "type_star",
3112            "named": true
3113          },
3114          {
3115            "type": "type_tuple",
3116            "named": true
3117          },
3118          {
3119            "type": "type_unboxed_sum",
3120            "named": true
3121          },
3122          {
3123            "type": "type_unboxed_tuple",
3124            "named": true
3125          }
3126        ]
3127      },
3128      "to": {
3129        "multiple": true,
3130        "required": false,
3131        "types": [
3132          {
3133            "type": "::",
3134            "named": false
3135          },
3136          {
3137            "type": "context",
3138            "named": true
3139          },
3140          {
3141            "type": "exp_apply",
3142            "named": true
3143          },
3144          {
3145            "type": "exp_arithmetic_sequence",
3146            "named": true
3147          },
3148          {
3149            "type": "exp_case",
3150            "named": true
3151          },
3152          {
3153            "type": "exp_cond",
3154            "named": true
3155          },
3156          {
3157            "type": "exp_do",
3158            "named": true
3159          },
3160          {
3161            "type": "exp_if_guard",
3162            "named": true
3163          },
3164          {
3165            "type": "exp_infix",
3166            "named": true
3167          },
3168          {
3169            "type": "exp_lambda",
3170            "named": true
3171          },
3172          {
3173            "type": "exp_lambda_case",
3174            "named": true
3175          },
3176          {
3177            "type": "exp_let_in",
3178            "named": true
3179          },
3180          {
3181            "type": "exp_list",
3182            "named": true
3183          },
3184          {
3185            "type": "exp_list_comprehension",
3186            "named": true
3187          },
3188          {
3189            "type": "exp_literal",
3190            "named": true
3191          },
3192          {
3193            "type": "exp_name",
3194            "named": true
3195          },
3196          {
3197            "type": "exp_negation",
3198            "named": true
3199          },
3200          {
3201            "type": "exp_parens",
3202            "named": true
3203          },
3204          {
3205            "type": "exp_record",
3206            "named": true
3207          },
3208          {
3209            "type": "exp_section_left",
3210            "named": true
3211          },
3212          {
3213            "type": "exp_section_right",
3214            "named": true
3215          },
3216          {
3217            "type": "exp_th_quoted_name",
3218            "named": true
3219          },
3220          {
3221            "type": "exp_tuple",
3222            "named": true
3223          },
3224          {
3225            "type": "exp_type_application",
3226            "named": true
3227          },
3228          {
3229            "type": "exp_unboxed_sum",
3230            "named": true
3231          },
3232          {
3233            "type": "exp_unboxed_tuple",
3234            "named": true
3235          },
3236          {
3237            "type": "forall",
3238            "named": true
3239          },
3240          {
3241            "type": "fun",
3242            "named": true
3243          },
3244          {
3245            "type": "implicit_param",
3246            "named": true
3247          },
3248          {
3249            "type": "promoted",
3250            "named": true
3251          },
3252          {
3253            "type": "quasiquote",
3254            "named": true
3255          },
3256          {
3257            "type": "splice",
3258            "named": true
3259          },
3260          {
3261            "type": "type_apply",
3262            "named": true
3263          },
3264          {
3265            "type": "type_infix",
3266            "named": true
3267          },
3268          {
3269            "type": "type_list",
3270            "named": true
3271          },
3272          {
3273            "type": "type_literal",
3274            "named": true
3275          },
3276          {
3277            "type": "type_name",
3278            "named": true
3279          },
3280          {
3281            "type": "type_parens",
3282            "named": true
3283          },
3284          {
3285            "type": "type_star",
3286            "named": true
3287          },
3288          {
3289            "type": "type_tuple",
3290            "named": true
3291          },
3292          {
3293            "type": "type_unboxed_sum",
3294            "named": true
3295          },
3296          {
3297            "type": "type_unboxed_tuple",
3298            "named": true
3299          }
3300        ]
3301      },
3302      "type": {
3303        "multiple": true,
3304        "required": false,
3305        "types": [
3306          {
3307            "type": "context",
3308            "named": true
3309          },
3310          {
3311            "type": "forall",
3312            "named": true
3313          },
3314          {
3315            "type": "fun",
3316            "named": true
3317          },
3318          {
3319            "type": "implicit_param",
3320            "named": true
3321          },
3322          {
3323            "type": "promoted",
3324            "named": true
3325          },
3326          {
3327            "type": "quasiquote",
3328            "named": true
3329          },
3330          {
3331            "type": "splice",
3332            "named": true
3333          },
3334          {
3335            "type": "type_apply",
3336            "named": true
3337          },
3338          {
3339            "type": "type_infix",
3340            "named": true
3341          },
3342          {
3343            "type": "type_list",
3344            "named": true
3345          },
3346          {
3347            "type": "type_literal",
3348            "named": true
3349          },
3350          {
3351            "type": "type_name",
3352            "named": true
3353          },
3354          {
3355            "type": "type_parens",
3356            "named": true
3357          },
3358          {
3359            "type": "type_star",
3360            "named": true
3361          },
3362          {
3363            "type": "type_tuple",
3364            "named": true
3365          },
3366          {
3367            "type": "type_unboxed_sum",
3368            "named": true
3369          },
3370          {
3371            "type": "type_unboxed_tuple",
3372            "named": true
3373          }
3374        ]
3375      }
3376    },
3377    "children": {
3378      "multiple": false,
3379      "required": false,
3380      "types": [
3381        {
3382          "type": "comma",
3383          "named": true
3384        }
3385      ]
3386    }
3387  },
3388  {
3389    "type": "exp_case",
3390    "named": true,
3391    "fields": {
3392      "type": {
3393        "multiple": false,
3394        "required": false,
3395        "types": [
3396          {
3397            "type": "context",
3398            "named": true
3399          },
3400          {
3401            "type": "forall",
3402            "named": true
3403          },
3404          {
3405            "type": "fun",
3406            "named": true
3407          },
3408          {
3409            "type": "implicit_param",
3410            "named": true
3411          },
3412          {
3413            "type": "promoted",
3414            "named": true
3415          },
3416          {
3417            "type": "quasiquote",
3418            "named": true
3419          },
3420          {
3421            "type": "splice",
3422            "named": true
3423          },
3424          {
3425            "type": "type_apply",
3426            "named": true
3427          },
3428          {
3429            "type": "type_infix",
3430            "named": true
3431          },
3432          {
3433            "type": "type_list",
3434            "named": true
3435          },
3436          {
3437            "type": "type_literal",
3438            "named": true
3439          },
3440          {
3441            "type": "type_name",
3442            "named": true
3443          },
3444          {
3445            "type": "type_parens",
3446            "named": true
3447          },
3448          {
3449            "type": "type_star",
3450            "named": true
3451          },
3452          {
3453            "type": "type_tuple",
3454            "named": true
3455          },
3456          {
3457            "type": "type_unboxed_sum",
3458            "named": true
3459          },
3460          {
3461            "type": "type_unboxed_tuple",
3462            "named": true
3463          }
3464        ]
3465      }
3466    },
3467    "children": {
3468      "multiple": true,
3469      "required": true,
3470      "types": [
3471        {
3472          "type": "alts",
3473          "named": true
3474        },
3475        {
3476          "type": "exp_apply",
3477          "named": true
3478        },
3479        {
3480          "type": "exp_arithmetic_sequence",
3481          "named": true
3482        },
3483        {
3484          "type": "exp_case",
3485          "named": true
3486        },
3487        {
3488          "type": "exp_cond",
3489          "named": true
3490        },
3491        {
3492          "type": "exp_do",
3493          "named": true
3494        },
3495        {
3496          "type": "exp_if_guard",
3497          "named": true
3498        },
3499        {
3500          "type": "exp_infix",
3501          "named": true
3502        },
3503        {
3504          "type": "exp_lambda",
3505          "named": true
3506        },
3507        {
3508          "type": "exp_lambda_case",
3509          "named": true
3510        },
3511        {
3512          "type": "exp_let_in",
3513          "named": true
3514        },
3515        {
3516          "type": "exp_list",
3517          "named": true
3518        },
3519        {
3520          "type": "exp_list_comprehension",
3521          "named": true
3522        },
3523        {
3524          "type": "exp_literal",
3525          "named": true
3526        },
3527        {
3528          "type": "exp_name",
3529          "named": true
3530        },
3531        {
3532          "type": "exp_negation",
3533          "named": true
3534        },
3535        {
3536          "type": "exp_parens",
3537          "named": true
3538        },
3539        {
3540          "type": "exp_record",
3541          "named": true
3542        },
3543        {
3544          "type": "exp_section_left",
3545          "named": true
3546        },
3547        {
3548          "type": "exp_section_right",
3549          "named": true
3550        },
3551        {
3552          "type": "exp_th_quoted_name",
3553          "named": true
3554        },
3555        {
3556          "type": "exp_tuple",
3557          "named": true
3558        },
3559        {
3560          "type": "exp_type_application",
3561          "named": true
3562        },
3563        {
3564          "type": "exp_unboxed_sum",
3565          "named": true
3566        },
3567        {
3568          "type": "exp_unboxed_tuple",
3569          "named": true
3570        },
3571        {
3572          "type": "quasiquote",
3573          "named": true
3574        },
3575        {
3576          "type": "splice",
3577          "named": true
3578        }
3579      ]
3580    }
3581  },
3582  {
3583    "type": "exp_cond",
3584    "named": true,
3585    "fields": {
3586      "else": {
3587        "multiple": true,
3588        "required": true,
3589        "types": [
3590          {
3591            "type": "::",
3592            "named": false
3593          },
3594          {
3595            "type": "context",
3596            "named": true
3597          },
3598          {
3599            "type": "exp_apply",
3600            "named": true
3601          },
3602          {
3603            "type": "exp_arithmetic_sequence",
3604            "named": true
3605          },
3606          {
3607            "type": "exp_case",
3608            "named": true
3609          },
3610          {
3611            "type": "exp_cond",
3612            "named": true
3613          },
3614          {
3615            "type": "exp_do",
3616            "named": true
3617          },
3618          {
3619            "type": "exp_if_guard",
3620            "named": true
3621          },
3622          {
3623            "type": "exp_infix",
3624            "named": true
3625          },
3626          {
3627            "type": "exp_lambda",
3628            "named": true
3629          },
3630          {
3631            "type": "exp_lambda_case",
3632            "named": true
3633          },
3634          {
3635            "type": "exp_let_in",
3636            "named": true
3637          },
3638          {
3639            "type": "exp_list",
3640            "named": true
3641          },
3642          {
3643            "type": "exp_list_comprehension",
3644            "named": true
3645          },
3646          {
3647            "type": "exp_literal",
3648            "named": true
3649          },
3650          {
3651            "type": "exp_name",
3652            "named": true
3653          },
3654          {
3655            "type": "exp_negation",
3656            "named": true
3657          },
3658          {
3659            "type": "exp_parens",
3660            "named": true
3661          },
3662          {
3663            "type": "exp_record",
3664            "named": true
3665          },
3666          {
3667            "type": "exp_section_left",
3668            "named": true
3669          },
3670          {
3671            "type": "exp_section_right",
3672            "named": true
3673          },
3674          {
3675            "type": "exp_th_quoted_name",
3676            "named": true
3677          },
3678          {
3679            "type": "exp_tuple",
3680            "named": true
3681          },
3682          {
3683            "type": "exp_type_application",
3684            "named": true
3685          },
3686          {
3687            "type": "exp_unboxed_sum",
3688            "named": true
3689          },
3690          {
3691            "type": "exp_unboxed_tuple",
3692            "named": true
3693          },
3694          {
3695            "type": "forall",
3696            "named": true
3697          },
3698          {
3699            "type": "fun",
3700            "named": true
3701          },
3702          {
3703            "type": "implicit_param",
3704            "named": true
3705          },
3706          {
3707            "type": "promoted",
3708            "named": true
3709          },
3710          {
3711            "type": "quasiquote",
3712            "named": true
3713          },
3714          {
3715            "type": "splice",
3716            "named": true
3717          },
3718          {
3719            "type": "type_apply",
3720            "named": true
3721          },
3722          {
3723            "type": "type_infix",
3724            "named": true
3725          },
3726          {
3727            "type": "type_list",
3728            "named": true
3729          },
3730          {
3731            "type": "type_literal",
3732            "named": true
3733          },
3734          {
3735            "type": "type_name",
3736            "named": true
3737          },
3738          {
3739            "type": "type_parens",
3740            "named": true
3741          },
3742          {
3743            "type": "type_star",
3744            "named": true
3745          },
3746          {
3747            "type": "type_tuple",
3748            "named": true
3749          },
3750          {
3751            "type": "type_unboxed_sum",
3752            "named": true
3753          },
3754          {
3755            "type": "type_unboxed_tuple",
3756            "named": true
3757          }
3758        ]
3759      },
3760      "if": {
3761        "multiple": true,
3762        "required": true,
3763        "types": [
3764          {
3765            "type": "::",
3766            "named": false
3767          },
3768          {
3769            "type": "context",
3770            "named": true
3771          },
3772          {
3773            "type": "exp_apply",
3774            "named": true
3775          },
3776          {
3777            "type": "exp_arithmetic_sequence",
3778            "named": true
3779          },
3780          {
3781            "type": "exp_case",
3782            "named": true
3783          },
3784          {
3785            "type": "exp_cond",
3786            "named": true
3787          },
3788          {
3789            "type": "exp_do",
3790            "named": true
3791          },
3792          {
3793            "type": "exp_if_guard",
3794            "named": true
3795          },
3796          {
3797            "type": "exp_infix",
3798            "named": true
3799          },
3800          {
3801            "type": "exp_lambda",
3802            "named": true
3803          },
3804          {
3805            "type": "exp_lambda_case",
3806            "named": true
3807          },
3808          {
3809            "type": "exp_let_in",
3810            "named": true
3811          },
3812          {
3813            "type": "exp_list",
3814            "named": true
3815          },
3816          {
3817            "type": "exp_list_comprehension",
3818            "named": true
3819          },
3820          {
3821            "type": "exp_literal",
3822            "named": true
3823          },
3824          {
3825            "type": "exp_name",
3826            "named": true
3827          },
3828          {
3829            "type": "exp_negation",
3830            "named": true
3831          },
3832          {
3833            "type": "exp_parens",
3834            "named": true
3835          },
3836          {
3837            "type": "exp_record",
3838            "named": true
3839          },
3840          {
3841            "type": "exp_section_left",
3842            "named": true
3843          },
3844          {
3845            "type": "exp_section_right",
3846            "named": true
3847          },
3848          {
3849            "type": "exp_th_quoted_name",
3850            "named": true
3851          },
3852          {
3853            "type": "exp_tuple",
3854            "named": true
3855          },
3856          {
3857            "type": "exp_type_application",
3858            "named": true
3859          },
3860          {
3861            "type": "exp_unboxed_sum",
3862            "named": true
3863          },
3864          {
3865            "type": "exp_unboxed_tuple",
3866            "named": true
3867          },
3868          {
3869            "type": "forall",
3870            "named": true
3871          },
3872          {
3873            "type": "fun",
3874            "named": true
3875          },
3876          {
3877            "type": "implicit_param",
3878            "named": true
3879          },
3880          {
3881            "type": "promoted",
3882            "named": true
3883          },
3884          {
3885            "type": "quasiquote",
3886            "named": true
3887          },
3888          {
3889            "type": "splice",
3890            "named": true
3891          },
3892          {
3893            "type": "type_apply",
3894            "named": true
3895          },
3896          {
3897            "type": "type_infix",
3898            "named": true
3899          },
3900          {
3901            "type": "type_list",
3902            "named": true
3903          },
3904          {
3905            "type": "type_literal",
3906            "named": true
3907          },
3908          {
3909            "type": "type_name",
3910            "named": true
3911          },
3912          {
3913            "type": "type_parens",
3914            "named": true
3915          },
3916          {
3917            "type": "type_star",
3918            "named": true
3919          },
3920          {
3921            "type": "type_tuple",
3922            "named": true
3923          },
3924          {
3925            "type": "type_unboxed_sum",
3926            "named": true
3927          },
3928          {
3929            "type": "type_unboxed_tuple",
3930            "named": true
3931          }
3932        ]
3933      },
3934      "then": {
3935        "multiple": true,
3936        "required": true,
3937        "types": [
3938          {
3939            "type": "::",
3940            "named": false
3941          },
3942          {
3943            "type": "context",
3944            "named": true
3945          },
3946          {
3947            "type": "exp_apply",
3948            "named": true
3949          },
3950          {
3951            "type": "exp_arithmetic_sequence",
3952            "named": true
3953          },
3954          {
3955            "type": "exp_case",
3956            "named": true
3957          },
3958          {
3959            "type": "exp_cond",
3960            "named": true
3961          },
3962          {
3963            "type": "exp_do",
3964            "named": true
3965          },
3966          {
3967            "type": "exp_if_guard",
3968            "named": true
3969          },
3970          {
3971            "type": "exp_infix",
3972            "named": true
3973          },
3974          {
3975            "type": "exp_lambda",
3976            "named": true
3977          },
3978          {
3979            "type": "exp_lambda_case",
3980            "named": true
3981          },
3982          {
3983            "type": "exp_let_in",
3984            "named": true
3985          },
3986          {
3987            "type": "exp_list",
3988            "named": true
3989          },
3990          {
3991            "type": "exp_list_comprehension",
3992            "named": true
3993          },
3994          {
3995            "type": "exp_literal",
3996            "named": true
3997          },
3998          {
3999            "type": "exp_name",
4000            "named": true
4001          },
4002          {
4003            "type": "exp_negation",
4004            "named": true
4005          },
4006          {
4007            "type": "exp_parens",
4008            "named": true
4009          },
4010          {
4011            "type": "exp_record",
4012            "named": true
4013          },
4014          {
4015            "type": "exp_section_left",
4016            "named": true
4017          },
4018          {
4019            "type": "exp_section_right",
4020            "named": true
4021          },
4022          {
4023            "type": "exp_th_quoted_name",
4024            "named": true
4025          },
4026          {
4027            "type": "exp_tuple",
4028            "named": true
4029          },
4030          {
4031            "type": "exp_type_application",
4032            "named": true
4033          },
4034          {
4035            "type": "exp_unboxed_sum",
4036            "named": true
4037          },
4038          {
4039            "type": "exp_unboxed_tuple",
4040            "named": true
4041          },
4042          {
4043            "type": "forall",
4044            "named": true
4045          },
4046          {
4047            "type": "fun",
4048            "named": true
4049          },
4050          {
4051            "type": "implicit_param",
4052            "named": true
4053          },
4054          {
4055            "type": "promoted",
4056            "named": true
4057          },
4058          {
4059            "type": "quasiquote",
4060            "named": true
4061          },
4062          {
4063            "type": "splice",
4064            "named": true
4065          },
4066          {
4067            "type": "type_apply",
4068            "named": true
4069          },
4070          {
4071            "type": "type_infix",
4072            "named": true
4073          },
4074          {
4075            "type": "type_list",
4076            "named": true
4077          },
4078          {
4079            "type": "type_literal",
4080            "named": true
4081          },
4082          {
4083            "type": "type_name",
4084            "named": true
4085          },
4086          {
4087            "type": "type_parens",
4088            "named": true
4089          },
4090          {
4091            "type": "type_star",
4092            "named": true
4093          },
4094          {
4095            "type": "type_tuple",
4096            "named": true
4097          },
4098          {
4099            "type": "type_unboxed_sum",
4100            "named": true
4101          },
4102          {
4103            "type": "type_unboxed_tuple",
4104            "named": true
4105          }
4106        ]
4107      },
4108      "type": {
4109        "multiple": true,
4110        "required": false,
4111        "types": [
4112          {
4113            "type": "context",
4114            "named": true
4115          },
4116          {
4117            "type": "forall",
4118            "named": true
4119          },
4120          {
4121            "type": "fun",
4122            "named": true
4123          },
4124          {
4125            "type": "implicit_param",
4126            "named": true
4127          },
4128          {
4129            "type": "promoted",
4130            "named": true
4131          },
4132          {
4133            "type": "quasiquote",
4134            "named": true
4135          },
4136          {
4137            "type": "splice",
4138            "named": true
4139          },
4140          {
4141            "type": "type_apply",
4142            "named": true
4143          },
4144          {
4145            "type": "type_infix",
4146            "named": true
4147          },
4148          {
4149            "type": "type_list",
4150            "named": true
4151          },
4152          {
4153            "type": "type_literal",
4154            "named": true
4155          },
4156          {
4157            "type": "type_name",
4158            "named": true
4159          },
4160          {
4161            "type": "type_parens",
4162            "named": true
4163          },
4164          {
4165            "type": "type_star",
4166            "named": true
4167          },
4168          {
4169            "type": "type_tuple",
4170            "named": true
4171          },
4172          {
4173            "type": "type_unboxed_sum",
4174            "named": true
4175          },
4176          {
4177            "type": "type_unboxed_tuple",
4178            "named": true
4179          }
4180        ]
4181      }
4182    }
4183  },
4184  {
4185    "type": "exp_do",
4186    "named": true,
4187    "fields": {},
4188    "children": {
4189      "multiple": true,
4190      "required": false,
4191      "types": [
4192        {
4193          "type": "do_module",
4194          "named": true
4195        },
4196        {
4197          "type": "stmt",
4198          "named": true
4199        }
4200      ]
4201    }
4202  },
4203  {
4204    "type": "exp_field",
4205    "named": true,
4206    "fields": {
4207      "type": {
4208        "multiple": false,
4209        "required": false,
4210        "types": [
4211          {
4212            "type": "context",
4213            "named": true
4214          },
4215          {
4216            "type": "forall",
4217            "named": true
4218          },
4219          {
4220            "type": "fun",
4221            "named": true
4222          },
4223          {
4224            "type": "implicit_param",
4225            "named": true
4226          },
4227          {
4228            "type": "promoted",
4229            "named": true
4230          },
4231          {
4232            "type": "quasiquote",
4233            "named": true
4234          },
4235          {
4236            "type": "splice",
4237            "named": true
4238          },
4239          {
4240            "type": "type_apply",
4241            "named": true
4242          },
4243          {
4244            "type": "type_infix",
4245            "named": true
4246          },
4247          {
4248            "type": "type_list",
4249            "named": true
4250          },
4251          {
4252            "type": "type_literal",
4253            "named": true
4254          },
4255          {
4256            "type": "type_name",
4257            "named": true
4258          },
4259          {
4260            "type": "type_parens",
4261            "named": true
4262          },
4263          {
4264            "type": "type_star",
4265            "named": true
4266          },
4267          {
4268            "type": "type_tuple",
4269            "named": true
4270          },
4271          {
4272            "type": "type_unboxed_sum",
4273            "named": true
4274          },
4275          {
4276            "type": "type_unboxed_tuple",
4277            "named": true
4278          }
4279        ]
4280      }
4281    },
4282    "children": {
4283      "multiple": true,
4284      "required": true,
4285      "types": [
4286        {
4287          "type": "exp_apply",
4288          "named": true
4289        },
4290        {
4291          "type": "exp_arithmetic_sequence",
4292          "named": true
4293        },
4294        {
4295          "type": "exp_case",
4296          "named": true
4297        },
4298        {
4299          "type": "exp_cond",
4300          "named": true
4301        },
4302        {
4303          "type": "exp_do",
4304          "named": true
4305        },
4306        {
4307          "type": "exp_if_guard",
4308          "named": true
4309        },
4310        {
4311          "type": "exp_infix",
4312          "named": true
4313        },
4314        {
4315          "type": "exp_lambda",
4316          "named": true
4317        },
4318        {
4319          "type": "exp_lambda_case",
4320          "named": true
4321        },
4322        {
4323          "type": "exp_let_in",
4324          "named": true
4325        },
4326        {
4327          "type": "exp_list",
4328          "named": true
4329        },
4330        {
4331          "type": "exp_list_comprehension",
4332          "named": true
4333        },
4334        {
4335          "type": "exp_literal",
4336          "named": true
4337        },
4338        {
4339          "type": "exp_name",
4340          "named": true
4341        },
4342        {
4343          "type": "exp_negation",
4344          "named": true
4345        },
4346        {
4347          "type": "exp_parens",
4348          "named": true
4349        },
4350        {
4351          "type": "exp_record",
4352          "named": true
4353        },
4354        {
4355          "type": "exp_section_left",
4356          "named": true
4357        },
4358        {
4359          "type": "exp_section_right",
4360          "named": true
4361        },
4362        {
4363          "type": "exp_th_quoted_name",
4364          "named": true
4365        },
4366        {
4367          "type": "exp_tuple",
4368          "named": true
4369        },
4370        {
4371          "type": "exp_type_application",
4372          "named": true
4373        },
4374        {
4375          "type": "exp_unboxed_sum",
4376          "named": true
4377        },
4378        {
4379          "type": "exp_unboxed_tuple",
4380          "named": true
4381        },
4382        {
4383          "type": "operator",
4384          "named": true
4385        },
4386        {
4387          "type": "qualified_operator",
4388          "named": true
4389        },
4390        {
4391          "type": "qualified_variable",
4392          "named": true
4393        },
4394        {
4395          "type": "quasiquote",
4396          "named": true
4397        },
4398        {
4399          "type": "splice",
4400          "named": true
4401        },
4402        {
4403          "type": "variable",
4404          "named": true
4405        },
4406        {
4407          "type": "wildcard",
4408          "named": true
4409        }
4410      ]
4411    }
4412  },
4413  {
4414    "type": "exp_if_guard",
4415    "named": true,
4416    "fields": {},
4417    "children": {
4418      "multiple": true,
4419      "required": true,
4420      "types": [
4421        {
4422          "type": "gdpat",
4423          "named": true
4424        }
4425      ]
4426    }
4427  },
4428  {
4429    "type": "exp_in",
4430    "named": true,
4431    "fields": {
4432      "type": {
4433        "multiple": false,
4434        "required": false,
4435        "types": [
4436          {
4437            "type": "context",
4438            "named": true
4439          },
4440          {
4441            "type": "forall",
4442            "named": true
4443          },
4444          {
4445            "type": "fun",
4446            "named": true
4447          },
4448          {
4449            "type": "implicit_param",
4450            "named": true
4451          },
4452          {
4453            "type": "promoted",
4454            "named": true
4455          },
4456          {
4457            "type": "quasiquote",
4458            "named": true
4459          },
4460          {
4461            "type": "splice",
4462            "named": true
4463          },
4464          {
4465            "type": "type_apply",
4466            "named": true
4467          },
4468          {
4469            "type": "type_infix",
4470            "named": true
4471          },
4472          {
4473            "type": "type_list",
4474            "named": true
4475          },
4476          {
4477            "type": "type_literal",
4478            "named": true
4479          },
4480          {
4481            "type": "type_name",
4482            "named": true
4483          },
4484          {
4485            "type": "type_parens",
4486            "named": true
4487          },
4488          {
4489            "type": "type_star",
4490            "named": true
4491          },
4492          {
4493            "type": "type_tuple",
4494            "named": true
4495          },
4496          {
4497            "type": "type_unboxed_sum",
4498            "named": true
4499          },
4500          {
4501            "type": "type_unboxed_tuple",
4502            "named": true
4503          }
4504        ]
4505      }
4506    },
4507    "children": {
4508      "multiple": false,
4509      "required": true,
4510      "types": [
4511        {
4512          "type": "exp_apply",
4513          "named": true
4514        },
4515        {
4516          "type": "exp_arithmetic_sequence",
4517          "named": true
4518        },
4519        {
4520          "type": "exp_case",
4521          "named": true
4522        },
4523        {
4524          "type": "exp_cond",
4525          "named": true
4526        },
4527        {
4528          "type": "exp_do",
4529          "named": true
4530        },
4531        {
4532          "type": "exp_if_guard",
4533          "named": true
4534        },
4535        {
4536          "type": "exp_infix",
4537          "named": true
4538        },
4539        {
4540          "type": "exp_lambda",
4541          "named": true
4542        },
4543        {
4544          "type": "exp_lambda_case",
4545          "named": true
4546        },
4547        {
4548          "type": "exp_let_in",
4549          "named": true
4550        },
4551        {
4552          "type": "exp_list",
4553          "named": true
4554        },
4555        {
4556          "type": "exp_list_comprehension",
4557          "named": true
4558        },
4559        {
4560          "type": "exp_literal",
4561          "named": true
4562        },
4563        {
4564          "type": "exp_name",
4565          "named": true
4566        },
4567        {
4568          "type": "exp_negation",
4569          "named": true
4570        },
4571        {
4572          "type": "exp_parens",
4573          "named": true
4574        },
4575        {
4576          "type": "exp_record",
4577          "named": true
4578        },
4579        {
4580          "type": "exp_section_left",
4581          "named": true
4582        },
4583        {
4584          "type": "exp_section_right",
4585          "named": true
4586        },
4587        {
4588          "type": "exp_th_quoted_name",
4589          "named": true
4590        },
4591        {
4592          "type": "exp_tuple",
4593          "named": true
4594        },
4595        {
4596          "type": "exp_type_application",
4597          "named": true
4598        },
4599        {
4600          "type": "exp_unboxed_sum",
4601          "named": true
4602        },
4603        {
4604          "type": "exp_unboxed_tuple",
4605          "named": true
4606        },
4607        {
4608          "type": "quasiquote",
4609          "named": true
4610        },
4611        {
4612          "type": "splice",
4613          "named": true
4614        }
4615      ]
4616    }
4617  },
4618  {
4619    "type": "exp_infix",
4620    "named": true,
4621    "fields": {},
4622    "children": {
4623      "multiple": true,
4624      "required": true,
4625      "types": [
4626        {
4627          "type": "constructor",
4628          "named": true
4629        },
4630        {
4631          "type": "constructor_operator",
4632          "named": true
4633        },
4634        {
4635          "type": "exp_apply",
4636          "named": true
4637        },
4638        {
4639          "type": "exp_arithmetic_sequence",
4640          "named": true
4641        },
4642        {
4643          "type": "exp_case",
4644          "named": true
4645        },
4646        {
4647          "type": "exp_cond",
4648          "named": true
4649        },
4650        {
4651          "type": "exp_do",
4652          "named": true
4653        },
4654        {
4655          "type": "exp_if_guard",
4656          "named": true
4657        },
4658        {
4659          "type": "exp_infix",
4660          "named": true
4661        },
4662        {
4663          "type": "exp_lambda",
4664          "named": true
4665        },
4666        {
4667          "type": "exp_lambda_case",
4668          "named": true
4669        },
4670        {
4671          "type": "exp_let_in",
4672          "named": true
4673        },
4674        {
4675          "type": "exp_list",
4676          "named": true
4677        },
4678        {
4679          "type": "exp_list_comprehension",
4680          "named": true
4681        },
4682        {
4683          "type": "exp_literal",
4684          "named": true
4685        },
4686        {
4687          "type": "exp_name",
4688          "named": true
4689        },
4690        {
4691          "type": "exp_negation",
4692          "named": true
4693        },
4694        {
4695          "type": "exp_parens",
4696          "named": true
4697        },
4698        {
4699          "type": "exp_record",
4700          "named": true
4701        },
4702        {
4703          "type": "exp_section_left",
4704          "named": true
4705        },
4706        {
4707          "type": "exp_section_right",
4708          "named": true
4709        },
4710        {
4711          "type": "exp_th_quoted_name",
4712          "named": true
4713        },
4714        {
4715          "type": "exp_tuple",
4716          "named": true
4717        },
4718        {
4719          "type": "exp_type_application",
4720          "named": true
4721        },
4722        {
4723          "type": "exp_unboxed_sum",
4724          "named": true
4725        },
4726        {
4727          "type": "exp_unboxed_tuple",
4728          "named": true
4729        },
4730        {
4731          "type": "operator",
4732          "named": true
4733        },
4734        {
4735          "type": "qualified_constructor",
4736          "named": true
4737        },
4738        {
4739          "type": "qualified_constructor_operator",
4740          "named": true
4741        },
4742        {
4743          "type": "qualified_operator",
4744          "named": true
4745        },
4746        {
4747          "type": "qualified_variable",
4748          "named": true
4749        },
4750        {
4751          "type": "quasiquote",
4752          "named": true
4753        },
4754        {
4755          "type": "splice",
4756          "named": true
4757        },
4758        {
4759          "type": "variable",
4760          "named": true
4761        }
4762      ]
4763    }
4764  },
4765  {
4766    "type": "exp_lambda",
4767    "named": true,
4768    "fields": {
4769      "type": {
4770        "multiple": false,
4771        "required": false,
4772        "types": [
4773          {
4774            "type": "context",
4775            "named": true
4776          },
4777          {
4778            "type": "forall",
4779            "named": true
4780          },
4781          {
4782            "type": "fun",
4783            "named": true
4784          },
4785          {
4786            "type": "implicit_param",
4787            "named": true
4788          },
4789          {
4790            "type": "promoted",
4791            "named": true
4792          },
4793          {
4794            "type": "quasiquote",
4795            "named": true
4796          },
4797          {
4798            "type": "splice",
4799            "named": true
4800          },
4801          {
4802            "type": "type_apply",
4803            "named": true
4804          },
4805          {
4806            "type": "type_infix",
4807            "named": true
4808          },
4809          {
4810            "type": "type_list",
4811            "named": true
4812          },
4813          {
4814            "type": "type_literal",
4815            "named": true
4816          },
4817          {
4818            "type": "type_name",
4819            "named": true
4820          },
4821          {
4822            "type": "type_parens",
4823            "named": true
4824          },
4825          {
4826            "type": "type_star",
4827            "named": true
4828          },
4829          {
4830            "type": "type_tuple",
4831            "named": true
4832          },
4833          {
4834            "type": "type_unboxed_sum",
4835            "named": true
4836          },
4837          {
4838            "type": "type_unboxed_tuple",
4839            "named": true
4840          }
4841        ]
4842      }
4843    },
4844    "children": {
4845      "multiple": true,
4846      "required": true,
4847      "types": [
4848        {
4849          "type": "exp_apply",
4850          "named": true
4851        },
4852        {
4853          "type": "exp_arithmetic_sequence",
4854          "named": true
4855        },
4856        {
4857          "type": "exp_case",
4858          "named": true
4859        },
4860        {
4861          "type": "exp_cond",
4862          "named": true
4863        },
4864        {
4865          "type": "exp_do",
4866          "named": true
4867        },
4868        {
4869          "type": "exp_if_guard",
4870          "named": true
4871        },
4872        {
4873          "type": "exp_infix",
4874          "named": true
4875        },
4876        {
4877          "type": "exp_lambda",
4878          "named": true
4879        },
4880        {
4881          "type": "exp_lambda_case",
4882          "named": true
4883        },
4884        {
4885          "type": "exp_let_in",
4886          "named": true
4887        },
4888        {
4889          "type": "exp_list",
4890          "named": true
4891        },
4892        {
4893          "type": "exp_list_comprehension",
4894          "named": true
4895        },
4896        {
4897          "type": "exp_literal",
4898          "named": true
4899        },
4900        {
4901          "type": "exp_name",
4902          "named": true
4903        },
4904        {
4905          "type": "exp_negation",
4906          "named": true
4907        },
4908        {
4909          "type": "exp_parens",
4910          "named": true
4911        },
4912        {
4913          "type": "exp_record",
4914          "named": true
4915        },
4916        {
4917          "type": "exp_section_left",
4918          "named": true
4919        },
4920        {
4921          "type": "exp_section_right",
4922          "named": true
4923        },
4924        {
4925          "type": "exp_th_quoted_name",
4926          "named": true
4927        },
4928        {
4929          "type": "exp_tuple",
4930          "named": true
4931        },
4932        {
4933          "type": "exp_type_application",
4934          "named": true
4935        },
4936        {
4937          "type": "exp_unboxed_sum",
4938          "named": true
4939        },
4940        {
4941          "type": "exp_unboxed_tuple",
4942          "named": true
4943        },
4944        {
4945          "type": "pat_as",
4946          "named": true
4947        },
4948        {
4949          "type": "pat_irrefutable",
4950          "named": true
4951        },
4952        {
4953          "type": "pat_list",
4954          "named": true
4955        },
4956        {
4957          "type": "pat_literal",
4958          "named": true
4959        },
4960        {
4961          "type": "pat_name",
4962          "named": true
4963        },
4964        {
4965          "type": "pat_parens",
4966          "named": true
4967        },
4968        {
4969          "type": "pat_record",
4970          "named": true
4971        },
4972        {
4973          "type": "pat_strict",
4974          "named": true
4975        },
4976        {
4977          "type": "pat_tuple",
4978          "named": true
4979        },
4980        {
4981          "type": "pat_unboxed_tuple",
4982          "named": true
4983        },
4984        {
4985          "type": "pat_wildcard",
4986          "named": true
4987        },
4988        {
4989          "type": "quasiquote",
4990          "named": true
4991        },
4992        {
4993          "type": "splice",
4994          "named": true
4995        }
4996      ]
4997    }
4998  },
4999  {
5000    "type": "exp_lambda_case",
5001    "named": true,
5002    "fields": {},
5003    "children": {
5004      "multiple": false,
5005      "required": false,
5006      "types": [
5007        {
5008          "type": "alts",
5009          "named": true
5010        }
5011      ]
5012    }
5013  },
5014  {
5015    "type": "exp_let",
5016    "named": true,
5017    "fields": {},
5018    "children": {
5019      "multiple": false,
5020      "required": false,
5021      "types": [
5022        {
5023          "type": "decls",
5024          "named": true
5025        }
5026      ]
5027    }
5028  },
5029  {
5030    "type": "exp_let_in",
5031    "named": true,
5032    "fields": {},
5033    "children": {
5034      "multiple": true,
5035      "required": true,
5036      "types": [
5037        {
5038          "type": "exp_in",
5039          "named": true
5040        },
5041        {
5042          "type": "exp_let",
5043          "named": true
5044        }
5045      ]
5046    }
5047  },
5048  {
5049    "type": "exp_list",
5050    "named": true,
5051    "fields": {
5052      "type": {
5053        "multiple": true,
5054        "required": false,
5055        "types": [
5056          {
5057            "type": "context",
5058            "named": true
5059          },
5060          {
5061            "type": "forall",
5062            "named": true
5063          },
5064          {
5065            "type": "fun",
5066            "named": true
5067          },
5068          {
5069            "type": "implicit_param",
5070            "named": true
5071          },
5072          {
5073            "type": "promoted",
5074            "named": true
5075          },
5076          {
5077            "type": "quasiquote",
5078            "named": true
5079          },
5080          {
5081            "type": "splice",
5082            "named": true
5083          },
5084          {
5085            "type": "type_apply",
5086            "named": true
5087          },
5088          {
5089            "type": "type_infix",
5090            "named": true
5091          },
5092          {
5093            "type": "type_list",
5094            "named": true
5095          },
5096          {
5097            "type": "type_literal",
5098            "named": true
5099          },
5100          {
5101            "type": "type_name",
5102            "named": true
5103          },
5104          {
5105            "type": "type_parens",
5106            "named": true
5107          },
5108          {
5109            "type": "type_star",
5110            "named": true
5111          },
5112          {
5113            "type": "type_tuple",
5114            "named": true
5115          },
5116          {
5117            "type": "type_unboxed_sum",
5118            "named": true
5119          },
5120          {
5121            "type": "type_unboxed_tuple",
5122            "named": true
5123          }
5124        ]
5125      }
5126    },
5127    "children": {
5128      "multiple": true,
5129      "required": true,
5130      "types": [
5131        {
5132          "type": "comma",
5133          "named": true
5134        },
5135        {
5136          "type": "exp_apply",
5137          "named": true
5138        },
5139        {
5140          "type": "exp_arithmetic_sequence",
5141          "named": true
5142        },
5143        {
5144          "type": "exp_case",
5145          "named": true
5146        },
5147        {
5148          "type": "exp_cond",
5149          "named": true
5150        },
5151        {
5152          "type": "exp_do",
5153          "named": true
5154        },
5155        {
5156          "type": "exp_if_guard",
5157          "named": true
5158        },
5159        {
5160          "type": "exp_infix",
5161          "named": true
5162        },
5163        {
5164          "type": "exp_lambda",
5165          "named": true
5166        },
5167        {
5168          "type": "exp_lambda_case",
5169          "named": true
5170        },
5171        {
5172          "type": "exp_let_in",
5173          "named": true
5174        },
5175        {
5176          "type": "exp_list",
5177          "named": true
5178        },
5179        {
5180          "type": "exp_list_comprehension",
5181          "named": true
5182        },
5183        {
5184          "type": "exp_literal",
5185          "named": true
5186        },
5187        {
5188          "type": "exp_name",
5189          "named": true
5190        },
5191        {
5192          "type": "exp_negation",
5193          "named": true
5194        },
5195        {
5196          "type": "exp_parens",
5197          "named": true
5198        },
5199        {
5200          "type": "exp_record",
5201          "named": true
5202        },
5203        {
5204          "type": "exp_section_left",
5205          "named": true
5206        },
5207        {
5208          "type": "exp_section_right",
5209          "named": true
5210        },
5211        {
5212          "type": "exp_th_quoted_name",
5213          "named": true
5214        },
5215        {
5216          "type": "exp_tuple",
5217          "named": true
5218        },
5219        {
5220          "type": "exp_type_application",
5221          "named": true
5222        },
5223        {
5224          "type": "exp_unboxed_sum",
5225          "named": true
5226        },
5227        {
5228          "type": "exp_unboxed_tuple",
5229          "named": true
5230        },
5231        {
5232          "type": "quasiquote",
5233          "named": true
5234        },
5235        {
5236          "type": "splice",
5237          "named": true
5238        }
5239      ]
5240    }
5241  },
5242  {
5243    "type": "exp_list_comprehension",
5244    "named": true,
5245    "fields": {
5246      "type": {
5247        "multiple": false,
5248        "required": false,
5249        "types": [
5250          {
5251            "type": "context",
5252            "named": true
5253          },
5254          {
5255            "type": "forall",
5256            "named": true
5257          },
5258          {
5259            "type": "fun",
5260            "named": true
5261          },
5262          {
5263            "type": "implicit_param",
5264            "named": true
5265          },
5266          {
5267            "type": "promoted",
5268            "named": true
5269          },
5270          {
5271            "type": "quasiquote",
5272            "named": true
5273          },
5274          {
5275            "type": "splice",
5276            "named": true
5277          },
5278          {
5279            "type": "type_apply",
5280            "named": true
5281          },
5282          {
5283            "type": "type_infix",
5284            "named": true
5285          },
5286          {
5287            "type": "type_list",
5288            "named": true
5289          },
5290          {
5291            "type": "type_literal",
5292            "named": true
5293          },
5294          {
5295            "type": "type_name",
5296            "named": true
5297          },
5298          {
5299            "type": "type_parens",
5300            "named": true
5301          },
5302          {
5303            "type": "type_star",
5304            "named": true
5305          },
5306          {
5307            "type": "type_tuple",
5308            "named": true
5309          },
5310          {
5311            "type": "type_unboxed_sum",
5312            "named": true
5313          },
5314          {
5315            "type": "type_unboxed_tuple",
5316            "named": true
5317          }
5318        ]
5319      }
5320    },
5321    "children": {
5322      "multiple": true,
5323      "required": true,
5324      "types": [
5325        {
5326          "type": "comma",
5327          "named": true
5328        },
5329        {
5330          "type": "exp_apply",
5331          "named": true
5332        },
5333        {
5334          "type": "exp_arithmetic_sequence",
5335          "named": true
5336        },
5337        {
5338          "type": "exp_case",
5339          "named": true
5340        },
5341        {
5342          "type": "exp_cond",
5343          "named": true
5344        },
5345        {
5346          "type": "exp_do",
5347          "named": true
5348        },
5349        {
5350          "type": "exp_if_guard",
5351          "named": true
5352        },
5353        {
5354          "type": "exp_infix",
5355          "named": true
5356        },
5357        {
5358          "type": "exp_lambda",
5359          "named": true
5360        },
5361        {
5362          "type": "exp_lambda_case",
5363          "named": true
5364        },
5365        {
5366          "type": "exp_let_in",
5367          "named": true
5368        },
5369        {
5370          "type": "exp_list",
5371          "named": true
5372        },
5373        {
5374          "type": "exp_list_comprehension",
5375          "named": true
5376        },
5377        {
5378          "type": "exp_literal",
5379          "named": true
5380        },
5381        {
5382          "type": "exp_name",
5383          "named": true
5384        },
5385        {
5386          "type": "exp_negation",
5387          "named": true
5388        },
5389        {
5390          "type": "exp_parens",
5391          "named": true
5392        },
5393        {
5394          "type": "exp_record",
5395          "named": true
5396        },
5397        {
5398          "type": "exp_section_left",
5399          "named": true
5400        },
5401        {
5402          "type": "exp_section_right",
5403          "named": true
5404        },
5405        {
5406          "type": "exp_th_quoted_name",
5407          "named": true
5408        },
5409        {
5410          "type": "exp_tuple",
5411          "named": true
5412        },
5413        {
5414          "type": "exp_type_application",
5415          "named": true
5416        },
5417        {
5418          "type": "exp_unboxed_sum",
5419          "named": true
5420        },
5421        {
5422          "type": "exp_unboxed_tuple",
5423          "named": true
5424        },
5425        {
5426          "type": "qual",
5427          "named": true
5428        },
5429        {
5430          "type": "quasiquote",
5431          "named": true
5432        },
5433        {
5434          "type": "splice",
5435          "named": true
5436        }
5437      ]
5438    }
5439  },
5440  {
5441    "type": "exp_literal",
5442    "named": true,
5443    "fields": {},
5444    "children": {
5445      "multiple": false,
5446      "required": true,
5447      "types": [
5448        {
5449          "type": "char",
5450          "named": true
5451        },
5452        {
5453          "type": "con_list",
5454          "named": true
5455        },
5456        {
5457          "type": "con_tuple",
5458          "named": true
5459        },
5460        {
5461          "type": "con_unit",
5462          "named": true
5463        },
5464        {
5465          "type": "float",
5466          "named": true
5467        },
5468        {
5469          "type": "integer",
5470          "named": true
5471        },
5472        {
5473          "type": "string",
5474          "named": true
5475        }
5476      ]
5477    }
5478  },
5479  {
5480    "type": "exp_name",
5481    "named": true,
5482    "fields": {},
5483    "children": {
5484      "multiple": false,
5485      "required": true,
5486      "types": [
5487        {
5488          "type": "constructor",
5489          "named": true
5490        },
5491        {
5492          "type": "constructor_operator",
5493          "named": true
5494        },
5495        {
5496          "type": "implicit_parid",
5497          "named": true
5498        },
5499        {
5500          "type": "label",
5501          "named": true
5502        },
5503        {
5504          "type": "operator",
5505          "named": true
5506        },
5507        {
5508          "type": "qualified_constructor",
5509          "named": true
5510        },
5511        {
5512          "type": "qualified_constructor_operator",
5513          "named": true
5514        },
5515        {
5516          "type": "qualified_operator",
5517          "named": true
5518        },
5519        {
5520          "type": "qualified_variable",
5521          "named": true
5522        },
5523        {
5524          "type": "variable",
5525          "named": true
5526        }
5527      ]
5528    }
5529  },
5530  {
5531    "type": "exp_negation",
5532    "named": true,
5533    "fields": {},
5534    "children": {
5535      "multiple": false,
5536      "required": true,
5537      "types": [
5538        {
5539          "type": "exp_arithmetic_sequence",
5540          "named": true
5541        },
5542        {
5543          "type": "exp_do",
5544          "named": true
5545        },
5546        {
5547          "type": "exp_lambda_case",
5548          "named": true
5549        },
5550        {
5551          "type": "exp_list",
5552          "named": true
5553        },
5554        {
5555          "type": "exp_list_comprehension",
5556          "named": true
5557        },
5558        {
5559          "type": "exp_literal",
5560          "named": true
5561        },
5562        {
5563          "type": "exp_name",
5564          "named": true
5565        },
5566        {
5567          "type": "exp_parens",
5568          "named": true
5569        },
5570        {
5571          "type": "exp_record",
5572          "named": true
5573        },
5574        {
5575          "type": "exp_section_left",
5576          "named": true
5577        },
5578        {
5579          "type": "exp_section_right",
5580          "named": true
5581        },
5582        {
5583          "type": "exp_th_quoted_name",
5584          "named": true
5585        },
5586        {
5587          "type": "exp_tuple",
5588          "named": true
5589        },
5590        {
5591          "type": "exp_type_application",
5592          "named": true
5593        },
5594        {
5595          "type": "exp_unboxed_sum",
5596          "named": true
5597        },
5598        {
5599          "type": "exp_unboxed_tuple",
5600          "named": true
5601        },
5602        {
5603          "type": "quasiquote",
5604          "named": true
5605        },
5606        {
5607          "type": "splice",
5608          "named": true
5609        }
5610      ]
5611    }
5612  },
5613  {
5614    "type": "exp_parens",
5615    "named": true,
5616    "fields": {
5617      "type": {
5618        "multiple": false,
5619        "required": false,
5620        "types": [
5621          {
5622            "type": "context",
5623            "named": true
5624          },
5625          {
5626            "type": "forall",
5627            "named": true
5628          },
5629          {
5630            "type": "fun",
5631            "named": true
5632          },
5633          {
5634            "type": "implicit_param",
5635            "named": true
5636          },
5637          {
5638            "type": "promoted",
5639            "named": true
5640          },
5641          {
5642            "type": "quasiquote",
5643            "named": true
5644          },
5645          {
5646            "type": "splice",
5647            "named": true
5648          },
5649          {
5650            "type": "type_apply",
5651            "named": true
5652          },
5653          {
5654            "type": "type_infix",
5655            "named": true
5656          },
5657          {
5658            "type": "type_list",
5659            "named": true
5660          },
5661          {
5662            "type": "type_literal",
5663            "named": true
5664          },
5665          {
5666            "type": "type_name",
5667            "named": true
5668          },
5669          {
5670            "type": "type_parens",
5671            "named": true
5672          },
5673          {
5674            "type": "type_star",
5675            "named": true
5676          },
5677          {
5678            "type": "type_tuple",
5679            "named": true
5680          },
5681          {
5682            "type": "type_unboxed_sum",
5683            "named": true
5684          },
5685          {
5686            "type": "type_unboxed_tuple",
5687            "named": true
5688          }
5689        ]
5690      }
5691    },
5692    "children": {
5693      "multiple": false,
5694      "required": true,
5695      "types": [
5696        {
5697          "type": "exp_apply",
5698          "named": true
5699        },
5700        {
5701          "type": "exp_arithmetic_sequence",
5702          "named": true
5703        },
5704        {
5705          "type": "exp_case",
5706          "named": true
5707        },
5708        {
5709          "type": "exp_cond",
5710          "named": true
5711        },
5712        {
5713          "type": "exp_do",
5714          "named": true
5715        },
5716        {
5717          "type": "exp_if_guard",
5718          "named": true
5719        },
5720        {
5721          "type": "exp_infix",
5722          "named": true
5723        },
5724        {
5725          "type": "exp_lambda",
5726          "named": true
5727        },
5728        {
5729          "type": "exp_lambda_case",
5730          "named": true
5731        },
5732        {
5733          "type": "exp_let_in",
5734          "named": true
5735        },
5736        {
5737          "type": "exp_list",
5738          "named": true
5739        },
5740        {
5741          "type": "exp_list_comprehension",
5742          "named": true
5743        },
5744        {
5745          "type": "exp_literal",
5746          "named": true
5747        },
5748        {
5749          "type": "exp_name",
5750          "named": true
5751        },
5752        {
5753          "type": "exp_negation",
5754          "named": true
5755        },
5756        {
5757          "type": "exp_parens",
5758          "named": true
5759        },
5760        {
5761          "type": "exp_record",
5762          "named": true
5763        },
5764        {
5765          "type": "exp_section_left",
5766          "named": true
5767        },
5768        {
5769          "type": "exp_section_right",
5770          "named": true
5771        },
5772        {
5773          "type": "exp_th_quoted_name",
5774          "named": true
5775        },
5776        {
5777          "type": "exp_tuple",
5778          "named": true
5779        },
5780        {
5781          "type": "exp_type_application",
5782          "named": true
5783        },
5784        {
5785          "type": "exp_unboxed_sum",
5786          "named": true
5787        },
5788        {
5789          "type": "exp_unboxed_tuple",
5790          "named": true
5791        },
5792        {
5793          "type": "quasiquote",
5794          "named": true
5795        },
5796        {
5797          "type": "splice",
5798          "named": true
5799        }
5800      ]
5801    }
5802  },
5803  {
5804    "type": "exp_record",
5805    "named": true,
5806    "fields": {},
5807    "children": {
5808      "multiple": true,
5809      "required": true,
5810      "types": [
5811        {
5812          "type": "comma",
5813          "named": true
5814        },
5815        {
5816          "type": "exp_arithmetic_sequence",
5817          "named": true
5818        },
5819        {
5820          "type": "exp_do",
5821          "named": true
5822        },
5823        {
5824          "type": "exp_field",
5825          "named": true
5826        },
5827        {
5828          "type": "exp_lambda_case",
5829          "named": true
5830        },
5831        {
5832          "type": "exp_list",
5833          "named": true
5834        },
5835        {
5836          "type": "exp_list_comprehension",
5837          "named": true
5838        },
5839        {
5840          "type": "exp_literal",
5841          "named": true
5842        },
5843        {
5844          "type": "exp_name",
5845          "named": true
5846        },
5847        {
5848          "type": "exp_parens",
5849          "named": true
5850        },
5851        {
5852          "type": "exp_record",
5853          "named": true
5854        },
5855        {
5856          "type": "exp_section_left",
5857          "named": true
5858        },
5859        {
5860          "type": "exp_section_right",
5861          "named": true
5862        },
5863        {
5864          "type": "exp_th_quoted_name",
5865          "named": true
5866        },
5867        {
5868          "type": "exp_tuple",
5869          "named": true
5870        },
5871        {
5872          "type": "exp_type_application",
5873          "named": true
5874        },
5875        {
5876          "type": "exp_unboxed_sum",
5877          "named": true
5878        },
5879        {
5880          "type": "exp_unboxed_tuple",
5881          "named": true
5882        },
5883        {
5884          "type": "quasiquote",
5885          "named": true
5886        },
5887        {
5888          "type": "splice",
5889          "named": true
5890        }
5891      ]
5892    }
5893  },
5894  {
5895    "type": "exp_section_left",
5896    "named": true,
5897    "fields": {},
5898    "children": {
5899      "multiple": true,
5900      "required": true,
5901      "types": [
5902        {
5903          "type": "constructor",
5904          "named": true
5905        },
5906        {
5907          "type": "constructor_operator",
5908          "named": true
5909        },
5910        {
5911          "type": "exp_apply",
5912          "named": true
5913        },
5914        {
5915          "type": "exp_arithmetic_sequence",
5916          "named": true
5917        },
5918        {
5919          "type": "exp_case",
5920          "named": true
5921        },
5922        {
5923          "type": "exp_cond",
5924          "named": true
5925        },
5926        {
5927          "type": "exp_do",
5928          "named": true
5929        },
5930        {
5931          "type": "exp_if_guard",
5932          "named": true
5933        },
5934        {
5935          "type": "exp_infix",
5936          "named": true
5937        },
5938        {
5939          "type": "exp_lambda",
5940          "named": true
5941        },
5942        {
5943          "type": "exp_lambda_case",
5944          "named": true
5945        },
5946        {
5947          "type": "exp_let_in",
5948          "named": true
5949        },
5950        {
5951          "type": "exp_list",
5952          "named": true
5953        },
5954        {
5955          "type": "exp_list_comprehension",
5956          "named": true
5957        },
5958        {
5959          "type": "exp_literal",
5960          "named": true
5961        },
5962        {
5963          "type": "exp_name",
5964          "named": true
5965        },
5966        {
5967          "type": "exp_negation",
5968          "named": true
5969        },
5970        {
5971          "type": "exp_parens",
5972          "named": true
5973        },
5974        {
5975          "type": "exp_record",
5976          "named": true
5977        },
5978        {
5979          "type": "exp_section_left",
5980          "named": true
5981        },
5982        {
5983          "type": "exp_section_right",
5984          "named": true
5985        },
5986        {
5987          "type": "exp_th_quoted_name",
5988          "named": true
5989        },
5990        {
5991          "type": "exp_tuple",
5992          "named": true
5993        },
5994        {
5995          "type": "exp_type_application",
5996          "named": true
5997        },
5998        {
5999          "type": "exp_unboxed_sum",
6000          "named": true
6001        },
6002        {
6003          "type": "exp_unboxed_tuple",
6004          "named": true
6005        },
6006        {
6007          "type": "operator",
6008          "named": true
6009        },
6010        {
6011          "type": "qualified_constructor",
6012          "named": true
6013        },
6014        {
6015          "type": "qualified_constructor_operator",
6016          "named": true
6017        },
6018        {
6019          "type": "qualified_operator",
6020          "named": true
6021        },
6022        {
6023          "type": "qualified_variable",
6024          "named": true
6025        },
6026        {
6027          "type": "quasiquote",
6028          "named": true
6029        },
6030        {
6031          "type": "splice",
6032          "named": true
6033        },
6034        {
6035          "type": "variable",
6036          "named": true
6037        }
6038      ]
6039    }
6040  },
6041  {
6042    "type": "exp_section_right",
6043    "named": true,
6044    "fields": {},
6045    "children": {
6046      "multiple": true,
6047      "required": true,
6048      "types": [
6049        {
6050          "type": "constructor",
6051          "named": true
6052        },
6053        {
6054          "type": "constructor_operator",
6055          "named": true
6056        },
6057        {
6058          "type": "exp_apply",
6059          "named": true
6060        },
6061        {
6062          "type": "exp_arithmetic_sequence",
6063          "named": true
6064        },
6065        {
6066          "type": "exp_case",
6067          "named": true
6068        },
6069        {
6070          "type": "exp_cond",
6071          "named": true
6072        },
6073        {
6074          "type": "exp_do",
6075          "named": true
6076        },
6077        {
6078          "type": "exp_if_guard",
6079          "named": true
6080        },
6081        {
6082          "type": "exp_infix",
6083          "named": true
6084        },
6085        {
6086          "type": "exp_lambda",
6087          "named": true
6088        },
6089        {
6090          "type": "exp_lambda_case",
6091          "named": true
6092        },
6093        {
6094          "type": "exp_let_in",
6095          "named": true
6096        },
6097        {
6098          "type": "exp_list",
6099          "named": true
6100        },
6101        {
6102          "type": "exp_list_comprehension",
6103          "named": true
6104        },
6105        {
6106          "type": "exp_literal",
6107          "named": true
6108        },
6109        {
6110          "type": "exp_name",
6111          "named": true
6112        },
6113        {
6114          "type": "exp_negation",
6115          "named": true
6116        },
6117        {
6118          "type": "exp_parens",
6119          "named": true
6120        },
6121        {
6122          "type": "exp_record",
6123          "named": true
6124        },
6125        {
6126          "type": "exp_section_left",
6127          "named": true
6128        },
6129        {
6130          "type": "exp_section_right",
6131          "named": true
6132        },
6133        {
6134          "type": "exp_th_quoted_name",
6135          "named": true
6136        },
6137        {
6138          "type": "exp_tuple",
6139          "named": true
6140        },
6141        {
6142          "type": "exp_type_application",
6143          "named": true
6144        },
6145        {
6146          "type": "exp_unboxed_sum",
6147          "named": true
6148        },
6149        {
6150          "type": "exp_unboxed_tuple",
6151          "named": true
6152        },
6153        {
6154          "type": "operator",
6155          "named": true
6156        },
6157        {
6158          "type": "qualified_constructor",
6159          "named": true
6160        },
6161        {
6162          "type": "qualified_constructor_operator",
6163          "named": true
6164        },
6165        {
6166          "type": "qualified_operator",
6167          "named": true
6168        },
6169        {
6170          "type": "qualified_variable",
6171          "named": true
6172        },
6173        {
6174          "type": "quasiquote",
6175          "named": true
6176        },
6177        {
6178          "type": "splice",
6179          "named": true
6180        },
6181        {
6182          "type": "variable",
6183          "named": true
6184        }
6185      ]
6186    }
6187  },
6188  {
6189    "type": "exp_th_quoted_name",
6190    "named": true,
6191    "fields": {},
6192    "children": {
6193      "multiple": false,
6194      "required": true,
6195      "types": [
6196        {
6197          "type": "constructor",
6198          "named": true
6199        },
6200        {
6201          "type": "constructor_operator",
6202          "named": true
6203        },
6204        {
6205          "type": "operator",
6206          "named": true
6207        },
6208        {
6209          "type": "promoted",
6210          "named": true
6211        },
6212        {
6213          "type": "qualified_constructor",
6214          "named": true
6215        },
6216        {
6217          "type": "qualified_constructor_operator",
6218          "named": true
6219        },
6220        {
6221          "type": "qualified_operator",
6222          "named": true
6223        },
6224        {
6225          "type": "qualified_variable",
6226          "named": true
6227        },
6228        {
6229          "type": "quasiquote",
6230          "named": true
6231        },
6232        {
6233          "type": "splice",
6234          "named": true
6235        },
6236        {
6237          "type": "type_list",
6238          "named": true
6239        },
6240        {
6241          "type": "type_literal",
6242          "named": true
6243        },
6244        {
6245          "type": "type_name",
6246          "named": true
6247        },
6248        {
6249          "type": "type_parens",
6250          "named": true
6251        },
6252        {
6253          "type": "type_star",
6254          "named": true
6255        },
6256        {
6257          "type": "type_tuple",
6258          "named": true
6259        },
6260        {
6261          "type": "type_unboxed_sum",
6262          "named": true
6263        },
6264        {
6265          "type": "type_unboxed_tuple",
6266          "named": true
6267        },
6268        {
6269          "type": "variable",
6270          "named": true
6271        }
6272      ]
6273    }
6274  },
6275  {
6276    "type": "exp_tuple",
6277    "named": true,
6278    "fields": {
6279      "type": {
6280        "multiple": true,
6281        "required": false,
6282        "types": [
6283          {
6284            "type": "context",
6285            "named": true
6286          },
6287          {
6288            "type": "forall",
6289            "named": true
6290          },
6291          {
6292            "type": "fun",
6293            "named": true
6294          },
6295          {
6296            "type": "implicit_param",
6297            "named": true
6298          },
6299          {
6300            "type": "promoted",
6301            "named": true
6302          },
6303          {
6304            "type": "quasiquote",
6305            "named": true
6306          },
6307          {
6308            "type": "splice",
6309            "named": true
6310          },
6311          {
6312            "type": "type_apply",
6313            "named": true
6314          },
6315          {
6316            "type": "type_infix",
6317            "named": true
6318          },
6319          {
6320            "type": "type_list",
6321            "named": true
6322          },
6323          {
6324            "type": "type_literal",
6325            "named": true
6326          },
6327          {
6328            "type": "type_name",
6329            "named": true
6330          },
6331          {
6332            "type": "type_parens",
6333            "named": true
6334          },
6335          {
6336            "type": "type_star",
6337            "named": true
6338          },
6339          {
6340            "type": "type_tuple",
6341            "named": true
6342          },
6343          {
6344            "type": "type_unboxed_sum",
6345            "named": true
6346          },
6347          {
6348            "type": "type_unboxed_tuple",
6349            "named": true
6350          }
6351        ]
6352      }
6353    },
6354    "children": {
6355      "multiple": true,
6356      "required": true,
6357      "types": [
6358        {
6359          "type": "comma",
6360          "named": true
6361        },
6362        {
6363          "type": "exp_apply",
6364          "named": true
6365        },
6366        {
6367          "type": "exp_arithmetic_sequence",
6368          "named": true
6369        },
6370        {
6371          "type": "exp_case",
6372          "named": true
6373        },
6374        {
6375          "type": "exp_cond",
6376          "named": true
6377        },
6378        {
6379          "type": "exp_do",
6380          "named": true
6381        },
6382        {
6383          "type": "exp_if_guard",
6384          "named": true
6385        },
6386        {
6387          "type": "exp_infix",
6388          "named": true
6389        },
6390        {
6391          "type": "exp_lambda",
6392          "named": true
6393        },
6394        {
6395          "type": "exp_lambda_case",
6396          "named": true
6397        },
6398        {
6399          "type": "exp_let_in",
6400          "named": true
6401        },
6402        {
6403          "type": "exp_list",
6404          "named": true
6405        },
6406        {
6407          "type": "exp_list_comprehension",
6408          "named": true
6409        },
6410        {
6411          "type": "exp_literal",
6412          "named": true
6413        },
6414        {
6415          "type": "exp_name",
6416          "named": true
6417        },
6418        {
6419          "type": "exp_negation",
6420          "named": true
6421        },
6422        {
6423          "type": "exp_parens",
6424          "named": true
6425        },
6426        {
6427          "type": "exp_record",
6428          "named": true
6429        },
6430        {
6431          "type": "exp_section_left",
6432          "named": true
6433        },
6434        {
6435          "type": "exp_section_right",
6436          "named": true
6437        },
6438        {
6439          "type": "exp_th_quoted_name",
6440          "named": true
6441        },
6442        {
6443          "type": "exp_tuple",
6444          "named": true
6445        },
6446        {
6447          "type": "exp_type_application",
6448          "named": true
6449        },
6450        {
6451          "type": "exp_unboxed_sum",
6452          "named": true
6453        },
6454        {
6455          "type": "exp_unboxed_tuple",
6456          "named": true
6457        },
6458        {
6459          "type": "quasiquote",
6460          "named": true
6461        },
6462        {
6463          "type": "splice",
6464          "named": true
6465        }
6466      ]
6467    }
6468  },
6469  {
6470    "type": "exp_type_application",
6471    "named": true,
6472    "fields": {},
6473    "children": {
6474      "multiple": false,
6475      "required": true,
6476      "types": [
6477        {
6478          "type": "promoted",
6479          "named": true
6480        },
6481        {
6482          "type": "quasiquote",
6483          "named": true
6484        },
6485        {
6486          "type": "splice",
6487          "named": true
6488        },
6489        {
6490          "type": "type_list",
6491          "named": true
6492        },
6493        {
6494          "type": "type_literal",
6495          "named": true
6496        },
6497        {
6498          "type": "type_name",
6499          "named": true
6500        },
6501        {
6502          "type": "type_parens",
6503          "named": true
6504        },
6505        {
6506          "type": "type_star",
6507          "named": true
6508        },
6509        {
6510          "type": "type_tuple",
6511          "named": true
6512        },
6513        {
6514          "type": "type_unboxed_sum",
6515          "named": true
6516        },
6517        {
6518          "type": "type_unboxed_tuple",
6519          "named": true
6520        }
6521      ]
6522    }
6523  },
6524  {
6525    "type": "exp_unboxed_sum",
6526    "named": true,
6527    "fields": {
6528      "type": {
6529        "multiple": true,
6530        "required": false,
6531        "types": [
6532          {
6533            "type": "context",
6534            "named": true
6535          },
6536          {
6537            "type": "forall",
6538            "named": true
6539          },
6540          {
6541            "type": "fun",
6542            "named": true
6543          },
6544          {
6545            "type": "implicit_param",
6546            "named": true
6547          },
6548          {
6549            "type": "promoted",
6550            "named": true
6551          },
6552          {
6553            "type": "quasiquote",
6554            "named": true
6555          },
6556          {
6557            "type": "splice",
6558            "named": true
6559          },
6560          {
6561            "type": "type_apply",
6562            "named": true
6563          },
6564          {
6565            "type": "type_infix",
6566            "named": true
6567          },
6568          {
6569            "type": "type_list",
6570            "named": true
6571          },
6572          {
6573            "type": "type_literal",
6574            "named": true
6575          },
6576          {
6577            "type": "type_name",
6578            "named": true
6579          },
6580          {
6581            "type": "type_parens",
6582            "named": true
6583          },
6584          {
6585            "type": "type_star",
6586            "named": true
6587          },
6588          {
6589            "type": "type_tuple",
6590            "named": true
6591          },
6592          {
6593            "type": "type_unboxed_sum",
6594            "named": true
6595          },
6596          {
6597            "type": "type_unboxed_tuple",
6598            "named": true
6599          }
6600        ]
6601      }
6602    },
6603    "children": {
6604      "multiple": true,
6605      "required": true,
6606      "types": [
6607        {
6608          "type": "exp_apply",
6609          "named": true
6610        },
6611        {
6612          "type": "exp_arithmetic_sequence",
6613          "named": true
6614        },
6615        {
6616          "type": "exp_case",
6617          "named": true
6618        },
6619        {
6620          "type": "exp_cond",
6621          "named": true
6622        },
6623        {
6624          "type": "exp_do",
6625          "named": true
6626        },
6627        {
6628          "type": "exp_if_guard",
6629          "named": true
6630        },
6631        {
6632          "type": "exp_infix",
6633          "named": true
6634        },
6635        {
6636          "type": "exp_lambda",
6637          "named": true
6638        },
6639        {
6640          "type": "exp_lambda_case",
6641          "named": true
6642        },
6643        {
6644          "type": "exp_let_in",
6645          "named": true
6646        },
6647        {
6648          "type": "exp_list",
6649          "named": true
6650        },
6651        {
6652          "type": "exp_list_comprehension",
6653          "named": true
6654        },
6655        {
6656          "type": "exp_literal",
6657          "named": true
6658        },
6659        {
6660          "type": "exp_name",
6661          "named": true
6662        },
6663        {
6664          "type": "exp_negation",
6665          "named": true
6666        },
6667        {
6668          "type": "exp_parens",
6669          "named": true
6670        },
6671        {
6672          "type": "exp_record",
6673          "named": true
6674        },
6675        {
6676          "type": "exp_section_left",
6677          "named": true
6678        },
6679        {
6680          "type": "exp_section_right",
6681          "named": true
6682        },
6683        {
6684          "type": "exp_sum_empty",
6685          "named": true
6686        },
6687        {
6688          "type": "exp_th_quoted_name",
6689          "named": true
6690        },
6691        {
6692          "type": "exp_tuple",
6693          "named": true
6694        },
6695        {
6696          "type": "exp_type_application",
6697          "named": true
6698        },
6699        {
6700          "type": "exp_unboxed_sum",
6701          "named": true
6702        },
6703        {
6704          "type": "exp_unboxed_tuple",
6705          "named": true
6706        },
6707        {
6708          "type": "quasiquote",
6709          "named": true
6710        },
6711        {
6712          "type": "splice",
6713          "named": true
6714        }
6715      ]
6716    }
6717  },
6718  {
6719    "type": "exp_unboxed_tuple",
6720    "named": true,
6721    "fields": {
6722      "type": {
6723        "multiple": true,
6724        "required": false,
6725        "types": [
6726          {
6727            "type": "context",
6728            "named": true
6729          },
6730          {
6731            "type": "forall",
6732            "named": true
6733          },
6734          {
6735            "type": "fun",
6736            "named": true
6737          },
6738          {
6739            "type": "implicit_param",
6740            "named": true
6741          },
6742          {
6743            "type": "promoted",
6744            "named": true
6745          },
6746          {
6747            "type": "quasiquote",
6748            "named": true
6749          },
6750          {
6751            "type": "splice",
6752            "named": true
6753          },
6754          {
6755            "type": "type_apply",
6756            "named": true
6757          },
6758          {
6759            "type": "type_infix",
6760            "named": true
6761          },
6762          {
6763            "type": "type_list",
6764            "named": true
6765          },
6766          {
6767            "type": "type_literal",
6768            "named": true
6769          },
6770          {
6771            "type": "type_name",
6772            "named": true
6773          },
6774          {
6775            "type": "type_parens",
6776            "named": true
6777          },
6778          {
6779            "type": "type_star",
6780            "named": true
6781          },
6782          {
6783            "type": "type_tuple",
6784            "named": true
6785          },
6786          {
6787            "type": "type_unboxed_sum",
6788            "named": true
6789          },
6790          {
6791            "type": "type_unboxed_tuple",
6792            "named": true
6793          }
6794        ]
6795      }
6796    },
6797    "children": {
6798      "multiple": true,
6799      "required": true,
6800      "types": [
6801        {
6802          "type": "comma",
6803          "named": true
6804        },
6805        {
6806          "type": "exp_apply",
6807          "named": true
6808        },
6809        {
6810          "type": "exp_arithmetic_sequence",
6811          "named": true
6812        },
6813        {
6814          "type": "exp_case",
6815          "named": true
6816        },
6817        {
6818          "type": "exp_cond",
6819          "named": true
6820        },
6821        {
6822          "type": "exp_do",
6823          "named": true
6824        },
6825        {
6826          "type": "exp_if_guard",
6827          "named": true
6828        },
6829        {
6830          "type": "exp_infix",
6831          "named": true
6832        },
6833        {
6834          "type": "exp_lambda",
6835          "named": true
6836        },
6837        {
6838          "type": "exp_lambda_case",
6839          "named": true
6840        },
6841        {
6842          "type": "exp_let_in",
6843          "named": true
6844        },
6845        {
6846          "type": "exp_list",
6847          "named": true
6848        },
6849        {
6850          "type": "exp_list_comprehension",
6851          "named": true
6852        },
6853        {
6854          "type": "exp_literal",
6855          "named": true
6856        },
6857        {
6858          "type": "exp_name",
6859          "named": true
6860        },
6861        {
6862          "type": "exp_negation",
6863          "named": true
6864        },
6865        {
6866          "type": "exp_parens",
6867          "named": true
6868        },
6869        {
6870          "type": "exp_record",
6871          "named": true
6872        },
6873        {
6874          "type": "exp_section_left",
6875          "named": true
6876        },
6877        {
6878          "type": "exp_section_right",
6879          "named": true
6880        },
6881        {
6882          "type": "exp_th_quoted_name",
6883          "named": true
6884        },
6885        {
6886          "type": "exp_tuple",
6887          "named": true
6888        },
6889        {
6890          "type": "exp_type_application",
6891          "named": true
6892        },
6893        {
6894          "type": "exp_unboxed_sum",
6895          "named": true
6896        },
6897        {
6898          "type": "exp_unboxed_tuple",
6899          "named": true
6900        },
6901        {
6902          "type": "quasiquote",
6903          "named": true
6904        },
6905        {
6906          "type": "splice",
6907          "named": true
6908        }
6909      ]
6910    }
6911  },
6912  {
6913    "type": "expent",
6914    "named": true,
6915    "fields": {},
6916    "children": {
6917      "multiple": false,
6918      "required": true,
6919      "types": [
6920        {
6921          "type": "string",
6922          "named": true
6923        }
6924      ]
6925    }
6926  },
6927  {
6928    "type": "export",
6929    "named": true,
6930    "fields": {
6931      "module": {
6932        "multiple": false,
6933        "required": false,
6934        "types": [
6935          {
6936            "type": "module",
6937            "named": true
6938          },
6939          {
6940            "type": "qualified_module",
6941            "named": true
6942          }
6943        ]
6944      }
6945    },
6946    "children": {
6947      "multiple": true,
6948      "required": false,
6949      "types": [
6950        {
6951          "type": "constructor_operator",
6952          "named": true
6953        },
6954        {
6955          "type": "export_names",
6956          "named": true
6957        },
6958        {
6959          "type": "namespace",
6960          "named": true
6961        },
6962        {
6963          "type": "operator",
6964          "named": true
6965        },
6966        {
6967          "type": "qualified_constructor_operator",
6968          "named": true
6969        },
6970        {
6971          "type": "qualified_operator",
6972          "named": true
6973        },
6974        {
6975          "type": "qualified_type",
6976          "named": true
6977        },
6978        {
6979          "type": "qualified_type_operator",
6980          "named": true
6981        },
6982        {
6983          "type": "qualified_variable",
6984          "named": true
6985        },
6986        {
6987          "type": "type",
6988          "named": true
6989        },
6990        {
6991          "type": "type_operator",
6992          "named": true
6993        },
6994        {
6995          "type": "variable",
6996          "named": true
6997        }
6998      ]
6999    }
7000  },
7001  {
7002    "type": "export_names",
7003    "named": true,
7004    "fields": {},
7005    "children": {
7006      "multiple": true,
7007      "required": false,
7008      "types": [
7009        {
7010          "type": "all_names",
7011          "named": true
7012        },
7013        {
7014          "type": "comma",
7015          "named": true
7016        },
7017        {
7018          "type": "constructor",
7019          "named": true
7020        },
7021        {
7022          "type": "constructor_operator",
7023          "named": true
7024        },
7025        {
7026          "type": "operator",
7027          "named": true
7028        },
7029        {
7030          "type": "variable",
7031          "named": true
7032        }
7033      ]
7034    }
7035  },
7036  {
7037    "type": "exports",
7038    "named": true,
7039    "fields": {},
7040    "children": {
7041      "multiple": true,
7042      "required": false,
7043      "types": [
7044        {
7045          "type": "comma",
7046          "named": true
7047        },
7048        {
7049          "type": "export",
7050          "named": true
7051        }
7052      ]
7053    }
7054  },
7055  {
7056    "type": "field",
7057    "named": true,
7058    "fields": {},
7059    "children": {
7060      "multiple": true,
7061      "required": true,
7062      "types": [
7063        {
7064          "type": "comma",
7065          "named": true
7066        },
7067        {
7068          "type": "context",
7069          "named": true
7070        },
7071        {
7072          "type": "forall",
7073          "named": true
7074        },
7075        {
7076          "type": "fun",
7077          "named": true
7078        },
7079        {
7080          "type": "promoted",
7081          "named": true
7082        },
7083        {
7084          "type": "quasiquote",
7085          "named": true
7086        },
7087        {
7088          "type": "splice",
7089          "named": true
7090        },
7091        {
7092          "type": "strict_type",
7093          "named": true
7094        },
7095        {
7096          "type": "type_apply",
7097          "named": true
7098        },
7099        {
7100          "type": "type_infix",
7101          "named": true
7102        },
7103        {
7104          "type": "type_list",
7105          "named": true
7106        },
7107        {
7108          "type": "type_literal",
7109          "named": true
7110        },
7111        {
7112          "type": "type_name",
7113          "named": true
7114        },
7115        {
7116          "type": "type_parens",
7117          "named": true
7118        },
7119        {
7120          "type": "type_star",
7121          "named": true
7122        },
7123        {
7124          "type": "type_tuple",
7125          "named": true
7126        },
7127        {
7128          "type": "type_unboxed_sum",
7129          "named": true
7130        },
7131        {
7132          "type": "type_unboxed_tuple",
7133          "named": true
7134        },
7135        {
7136          "type": "variable",
7137          "named": true
7138        }
7139      ]
7140    }
7141  },
7142  {
7143    "type": "fixity",
7144    "named": true,
7145    "fields": {},
7146    "children": {
7147      "multiple": true,
7148      "required": true,
7149      "types": [
7150        {
7151          "type": "comma",
7152          "named": true
7153        },
7154        {
7155          "type": "constructor",
7156          "named": true
7157        },
7158        {
7159          "type": "constructor_operator",
7160          "named": true
7161        },
7162        {
7163          "type": "integer",
7164          "named": true
7165        },
7166        {
7167          "type": "varop",
7168          "named": true
7169        }
7170      ]
7171    }
7172  },
7173  {
7174    "type": "forall",
7175    "named": true,
7176    "fields": {},
7177    "children": {
7178      "multiple": true,
7179      "required": true,
7180      "types": [
7181        {
7182          "type": "constraint",
7183          "named": true
7184        },
7185        {
7186          "type": "context",
7187          "named": true
7188        },
7189        {
7190          "type": "forall",
7191          "named": true
7192        },
7193        {
7194          "type": "fun",
7195          "named": true
7196        },
7197        {
7198          "type": "promoted",
7199          "named": true
7200        },
7201        {
7202          "type": "quantifiers",
7203          "named": true
7204        },
7205        {
7206          "type": "quasiquote",
7207          "named": true
7208        },
7209        {
7210          "type": "splice",
7211          "named": true
7212        },
7213        {
7214          "type": "type_apply",
7215          "named": true
7216        },
7217        {
7218          "type": "type_infix",
7219          "named": true
7220        },
7221        {
7222          "type": "type_list",
7223          "named": true
7224        },
7225        {
7226          "type": "type_literal",
7227          "named": true
7228        },
7229        {
7230          "type": "type_name",
7231          "named": true
7232        },
7233        {
7234          "type": "type_parens",
7235          "named": true
7236        },
7237        {
7238          "type": "type_star",
7239          "named": true
7240        },
7241        {
7242          "type": "type_tuple",
7243          "named": true
7244        },
7245        {
7246          "type": "type_unboxed_sum",
7247          "named": true
7248        },
7249        {
7250          "type": "type_unboxed_tuple",
7251          "named": true
7252        }
7253      ]
7254    }
7255  },
7256  {
7257    "type": "foreign_export",
7258    "named": true,
7259    "fields": {},
7260    "children": {
7261      "multiple": true,
7262      "required": true,
7263      "types": [
7264        {
7265          "type": "calling_convention",
7266          "named": true
7267        },
7268        {
7269          "type": "expent",
7270          "named": true
7271        },
7272        {
7273          "type": "safety",
7274          "named": true
7275        },
7276        {
7277          "type": "signature",
7278          "named": true
7279        }
7280      ]
7281    }
7282  },
7283  {
7284    "type": "foreign_import",
7285    "named": true,
7286    "fields": {},
7287    "children": {
7288      "multiple": true,
7289      "required": true,
7290      "types": [
7291        {
7292          "type": "calling_convention",
7293          "named": true
7294        },
7295        {
7296          "type": "impent",
7297          "named": true
7298        },
7299        {
7300          "type": "safety",
7301          "named": true
7302        },
7303        {
7304          "type": "signature",
7305          "named": true
7306        }
7307      ]
7308    }
7309  },
7310  {
7311    "type": "fun",
7312    "named": true,
7313    "fields": {},
7314    "children": {
7315      "multiple": true,
7316      "required": true,
7317      "types": [
7318        {
7319          "type": "context",
7320          "named": true
7321        },
7322        {
7323          "type": "forall",
7324          "named": true
7325        },
7326        {
7327          "type": "fun",
7328          "named": true
7329        },
7330        {
7331          "type": "promoted",
7332          "named": true
7333        },
7334        {
7335          "type": "quasiquote",
7336          "named": true
7337        },
7338        {
7339          "type": "splice",
7340          "named": true
7341        },
7342        {
7343          "type": "strict_type",
7344          "named": true
7345        },
7346        {
7347          "type": "type_apply",
7348          "named": true
7349        },
7350        {
7351          "type": "type_infix",
7352          "named": true
7353        },
7354        {
7355          "type": "type_list",
7356          "named": true
7357        },
7358        {
7359          "type": "type_literal",
7360          "named": true
7361        },
7362        {
7363          "type": "type_name",
7364          "named": true
7365        },
7366        {
7367          "type": "type_parens",
7368          "named": true
7369        },
7370        {
7371          "type": "type_star",
7372          "named": true
7373        },
7374        {
7375          "type": "type_tuple",
7376          "named": true
7377        },
7378        {
7379          "type": "type_unboxed_sum",
7380          "named": true
7381        },
7382        {
7383          "type": "type_unboxed_tuple",
7384          "named": true
7385        }
7386      ]
7387    }
7388  },
7389  {
7390    "type": "function",
7391    "named": true,
7392    "fields": {
7393      "infix": {
7394        "multiple": false,
7395        "required": false,
7396        "types": [
7397          {
7398            "type": "infix",
7399            "named": true
7400          }
7401        ]
7402      },
7403      "name": {
7404        "multiple": true,
7405        "required": false,
7406        "types": [
7407          {
7408            "type": "(",
7409            "named": false
7410          },
7411          {
7412            "type": ")",
7413            "named": false
7414          },
7415          {
7416            "type": "implicit_parid",
7417            "named": true
7418          },
7419          {
7420            "type": "operator",
7421            "named": true
7422          },
7423          {
7424            "type": "variable",
7425            "named": true
7426          }
7427        ]
7428      },
7429      "pattern": {
7430        "multiple": false,
7431        "required": false,
7432        "types": [
7433          {
7434            "type": "pat_apply",
7435            "named": true
7436          },
7437          {
7438            "type": "pat_as",
7439            "named": true
7440          },
7441          {
7442            "type": "pat_infix",
7443            "named": true
7444          },
7445          {
7446            "type": "pat_irrefutable",
7447            "named": true
7448          },
7449          {
7450            "type": "pat_list",
7451            "named": true
7452          },
7453          {
7454            "type": "pat_literal",
7455            "named": true
7456          },
7457          {
7458            "type": "pat_name",
7459            "named": true
7460          },
7461          {
7462            "type": "pat_negation",
7463            "named": true
7464          },
7465          {
7466            "type": "pat_parens",
7467            "named": true
7468          },
7469          {
7470            "type": "pat_record",
7471            "named": true
7472          },
7473          {
7474            "type": "pat_strict",
7475            "named": true
7476          },
7477          {
7478            "type": "pat_tuple",
7479            "named": true
7480          },
7481          {
7482            "type": "pat_typed",
7483            "named": true
7484          },
7485          {
7486            "type": "pat_unboxed_tuple",
7487            "named": true
7488          },
7489          {
7490            "type": "pat_wildcard",
7491            "named": true
7492          },
7493          {
7494            "type": "quasiquote",
7495            "named": true
7496          },
7497          {
7498            "type": "splice",
7499            "named": true
7500          }
7501        ]
7502      },
7503      "patterns": {
7504        "multiple": false,
7505        "required": false,
7506        "types": [
7507          {
7508            "type": "patterns",
7509            "named": true
7510          }
7511        ]
7512      },
7513      "rhs": {
7514        "multiple": true,
7515        "required": false,
7516        "types": [
7517          {
7518            "type": "::",
7519            "named": false
7520          },
7521          {
7522            "type": "context",
7523            "named": true
7524          },
7525          {
7526            "type": "exp_apply",
7527            "named": true
7528          },
7529          {
7530            "type": "exp_arithmetic_sequence",
7531            "named": true
7532          },
7533          {
7534            "type": "exp_case",
7535            "named": true
7536          },
7537          {
7538            "type": "exp_cond",
7539            "named": true
7540          },
7541          {
7542            "type": "exp_do",
7543            "named": true
7544          },
7545          {
7546            "type": "exp_if_guard",
7547            "named": true
7548          },
7549          {
7550            "type": "exp_infix",
7551            "named": true
7552          },
7553          {
7554            "type": "exp_lambda",
7555            "named": true
7556          },
7557          {
7558            "type": "exp_lambda_case",
7559            "named": true
7560          },
7561          {
7562            "type": "exp_let_in",
7563            "named": true
7564          },
7565          {
7566            "type": "exp_list",
7567            "named": true
7568          },
7569          {
7570            "type": "exp_list_comprehension",
7571            "named": true
7572          },
7573          {
7574            "type": "exp_literal",
7575            "named": true
7576          },
7577          {
7578            "type": "exp_name",
7579            "named": true
7580          },
7581          {
7582            "type": "exp_negation",
7583            "named": true
7584          },
7585          {
7586            "type": "exp_parens",
7587            "named": true
7588          },
7589          {
7590            "type": "exp_record",
7591            "named": true
7592          },
7593          {
7594            "type": "exp_section_left",
7595            "named": true
7596          },
7597          {
7598            "type": "exp_section_right",
7599            "named": true
7600          },
7601          {
7602            "type": "exp_th_quoted_name",
7603            "named": true
7604          },
7605          {
7606            "type": "exp_tuple",
7607            "named": true
7608          },
7609          {
7610            "type": "exp_type_application",
7611            "named": true
7612          },
7613          {
7614            "type": "exp_unboxed_sum",
7615            "named": true
7616          },
7617          {
7618            "type": "exp_unboxed_tuple",
7619            "named": true
7620          },
7621          {
7622            "type": "forall",
7623            "named": true
7624          },
7625          {
7626            "type": "fun",
7627            "named": true
7628          },
7629          {
7630            "type": "implicit_param",
7631            "named": true
7632          },
7633          {
7634            "type": "promoted",
7635            "named": true
7636          },
7637          {
7638            "type": "quasiquote",
7639            "named": true
7640          },
7641          {
7642            "type": "splice",
7643            "named": true
7644          },
7645          {
7646            "type": "type_apply",
7647            "named": true
7648          },
7649          {
7650            "type": "type_infix",
7651            "named": true
7652          },
7653          {
7654            "type": "type_list",
7655            "named": true
7656          },
7657          {
7658            "type": "type_literal",
7659            "named": true
7660          },
7661          {
7662            "type": "type_name",
7663            "named": true
7664          },
7665          {
7666            "type": "type_parens",
7667            "named": true
7668          },
7669          {
7670            "type": "type_star",
7671            "named": true
7672          },
7673          {
7674            "type": "type_tuple",
7675            "named": true
7676          },
7677          {
7678            "type": "type_unboxed_sum",
7679            "named": true
7680          },
7681          {
7682            "type": "type_unboxed_tuple",
7683            "named": true
7684          }
7685        ]
7686      },
7687      "type": {
7688        "multiple": false,
7689        "required": false,
7690        "types": [
7691          {
7692            "type": "context",
7693            "named": true
7694          },
7695          {
7696            "type": "forall",
7697            "named": true
7698          },
7699          {
7700            "type": "fun",
7701            "named": true
7702          },
7703          {
7704            "type": "implicit_param",
7705            "named": true
7706          },
7707          {
7708            "type": "promoted",
7709            "named": true
7710          },
7711          {
7712            "type": "quasiquote",
7713            "named": true
7714          },
7715          {
7716            "type": "splice",
7717            "named": true
7718          },
7719          {
7720            "type": "type_apply",
7721            "named": true
7722          },
7723          {
7724            "type": "type_infix",
7725            "named": true
7726          },
7727          {
7728            "type": "type_list",
7729            "named": true
7730          },
7731          {
7732            "type": "type_literal",
7733            "named": true
7734          },
7735          {
7736            "type": "type_name",
7737            "named": true
7738          },
7739          {
7740            "type": "type_parens",
7741            "named": true
7742          },
7743          {
7744            "type": "type_star",
7745            "named": true
7746          },
7747          {
7748            "type": "type_tuple",
7749            "named": true
7750          },
7751          {
7752            "type": "type_unboxed_sum",
7753            "named": true
7754          },
7755          {
7756            "type": "type_unboxed_tuple",
7757            "named": true
7758          }
7759        ]
7760      }
7761    },
7762    "children": {
7763      "multiple": true,
7764      "required": false,
7765      "types": [
7766        {
7767          "type": "decls",
7768          "named": true
7769        },
7770        {
7771          "type": "guard_equation",
7772          "named": true
7773        },
7774        {
7775          "type": "where",
7776          "named": true
7777        }
7778      ]
7779    }
7780  },
7781  {
7782    "type": "fundep",
7783    "named": true,
7784    "fields": {},
7785    "children": {
7786      "multiple": true,
7787      "required": true,
7788      "types": [
7789        {
7790          "type": "type_variable",
7791          "named": true
7792        }
7793      ]
7794    }
7795  },
7796  {
7797    "type": "fundeps",
7798    "named": true,
7799    "fields": {},
7800    "children": {
7801      "multiple": true,
7802      "required": true,
7803      "types": [
7804        {
7805          "type": "comma",
7806          "named": true
7807        },
7808        {
7809          "type": "fundep",
7810          "named": true
7811        }
7812      ]
7813    }
7814  },
7815  {
7816    "type": "gadt_constructor",
7817    "named": true,
7818    "fields": {},
7819    "children": {
7820      "multiple": true,
7821      "required": true,
7822      "types": [
7823        {
7824          "type": "constructor",
7825          "named": true
7826        },
7827        {
7828          "type": "constructor_operator",
7829          "named": true
7830        },
7831        {
7832          "type": "context",
7833          "named": true
7834        },
7835        {
7836          "type": "forall",
7837          "named": true
7838        },
7839        {
7840          "type": "fun",
7841          "named": true
7842        },
7843        {
7844          "type": "promoted",
7845          "named": true
7846        },
7847        {
7848          "type": "quasiquote",
7849          "named": true
7850        },
7851        {
7852          "type": "record_fields",
7853          "named": true
7854        },
7855        {
7856          "type": "splice",
7857          "named": true
7858        },
7859        {
7860          "type": "strict_type",
7861          "named": true
7862        },
7863        {
7864          "type": "type_apply",
7865          "named": true
7866        },
7867        {
7868          "type": "type_infix",
7869          "named": true
7870        },
7871        {
7872          "type": "type_list",
7873          "named": true
7874        },
7875        {
7876          "type": "type_literal",
7877          "named": true
7878        },
7879        {
7880          "type": "type_name",
7881          "named": true
7882        },
7883        {
7884          "type": "type_parens",
7885          "named": true
7886        },
7887        {
7888          "type": "type_star",
7889          "named": true
7890        },
7891        {
7892          "type": "type_tuple",
7893          "named": true
7894        },
7895        {
7896          "type": "type_unboxed_sum",
7897          "named": true
7898        },
7899        {
7900          "type": "type_unboxed_tuple",
7901          "named": true
7902        }
7903      ]
7904    }
7905  },
7906  {
7907    "type": "gdpat",
7908    "named": true,
7909    "fields": {
7910      "type": {
7911        "multiple": false,
7912        "required": false,
7913        "types": [
7914          {
7915            "type": "context",
7916            "named": true
7917          },
7918          {
7919            "type": "forall",
7920            "named": true
7921          },
7922          {
7923            "type": "fun",
7924            "named": true
7925          },
7926          {
7927            "type": "implicit_param",
7928            "named": true
7929          },
7930          {
7931            "type": "promoted",
7932            "named": true
7933          },
7934          {
7935            "type": "quasiquote",
7936            "named": true
7937          },
7938          {
7939            "type": "splice",
7940            "named": true
7941          },
7942          {
7943            "type": "type_apply",
7944            "named": true
7945          },
7946          {
7947            "type": "type_infix",
7948            "named": true
7949          },
7950          {
7951            "type": "type_list",
7952            "named": true
7953          },
7954          {
7955            "type": "type_literal",
7956            "named": true
7957          },
7958          {
7959            "type": "type_name",
7960            "named": true
7961          },
7962          {
7963            "type": "type_parens",
7964            "named": true
7965          },
7966          {
7967            "type": "type_star",
7968            "named": true
7969          },
7970          {
7971            "type": "type_tuple",
7972            "named": true
7973          },
7974          {
7975            "type": "type_unboxed_sum",
7976            "named": true
7977          },
7978          {
7979            "type": "type_unboxed_tuple",
7980            "named": true
7981          }
7982        ]
7983      }
7984    },
7985    "children": {
7986      "multiple": true,
7987      "required": true,
7988      "types": [
7989        {
7990          "type": "exp_apply",
7991          "named": true
7992        },
7993        {
7994          "type": "exp_arithmetic_sequence",
7995          "named": true
7996        },
7997        {
7998          "type": "exp_case",
7999          "named": true
8000        },
8001        {
8002          "type": "exp_cond",
8003          "named": true
8004        },
8005        {
8006          "type": "exp_do",
8007          "named": true
8008        },
8009        {
8010          "type": "exp_if_guard",
8011          "named": true
8012        },
8013        {
8014          "type": "exp_infix",
8015          "named": true
8016        },
8017        {
8018          "type": "exp_lambda",
8019          "named": true
8020        },
8021        {
8022          "type": "exp_lambda_case",
8023          "named": true
8024        },
8025        {
8026          "type": "exp_let_in",
8027          "named": true
8028        },
8029        {
8030          "type": "exp_list",
8031          "named": true
8032        },
8033        {
8034          "type": "exp_list_comprehension",
8035          "named": true
8036        },
8037        {
8038          "type": "exp_literal",
8039          "named": true
8040        },
8041        {
8042          "type": "exp_name",
8043          "named": true
8044        },
8045        {
8046          "type": "exp_negation",
8047          "named": true
8048        },
8049        {
8050          "type": "exp_parens",
8051          "named": true
8052        },
8053        {
8054          "type": "exp_record",
8055          "named": true
8056        },
8057        {
8058          "type": "exp_section_left",
8059          "named": true
8060        },
8061        {
8062          "type": "exp_section_right",
8063          "named": true
8064        },
8065        {
8066          "type": "exp_th_quoted_name",
8067          "named": true
8068        },
8069        {
8070          "type": "exp_tuple",
8071          "named": true
8072        },
8073        {
8074          "type": "exp_type_application",
8075          "named": true
8076        },
8077        {
8078          "type": "exp_unboxed_sum",
8079          "named": true
8080        },
8081        {
8082          "type": "exp_unboxed_tuple",
8083          "named": true
8084        },
8085        {
8086          "type": "guards",
8087          "named": true
8088        },
8089        {
8090          "type": "quasiquote",
8091          "named": true
8092        },
8093        {
8094          "type": "splice",
8095          "named": true
8096        }
8097      ]
8098    }
8099  },
8100  {
8101    "type": "guard",
8102    "named": true,
8103    "fields": {},
8104    "children": {
8105      "multiple": false,
8106      "required": true,
8107      "types": [
8108        {
8109          "type": "exp_apply",
8110          "named": true
8111        },
8112        {
8113          "type": "exp_arithmetic_sequence",
8114          "named": true
8115        },
8116        {
8117          "type": "exp_case",
8118          "named": true
8119        },
8120        {
8121          "type": "exp_cond",
8122          "named": true
8123        },
8124        {
8125          "type": "exp_do",
8126          "named": true
8127        },
8128        {
8129          "type": "exp_if_guard",
8130          "named": true
8131        },
8132        {
8133          "type": "exp_infix",
8134          "named": true
8135        },
8136        {
8137          "type": "exp_lambda",
8138          "named": true
8139        },
8140        {
8141          "type": "exp_lambda_case",
8142          "named": true
8143        },
8144        {
8145          "type": "exp_let_in",
8146          "named": true
8147        },
8148        {
8149          "type": "exp_list",
8150          "named": true
8151        },
8152        {
8153          "type": "exp_list_comprehension",
8154          "named": true
8155        },
8156        {
8157          "type": "exp_literal",
8158          "named": true
8159        },
8160        {
8161          "type": "exp_name",
8162          "named": true
8163        },
8164        {
8165          "type": "exp_negation",
8166          "named": true
8167        },
8168        {
8169          "type": "exp_parens",
8170          "named": true
8171        },
8172        {
8173          "type": "exp_record",
8174          "named": true
8175        },
8176        {
8177          "type": "exp_section_left",
8178          "named": true
8179        },
8180        {
8181          "type": "exp_section_right",
8182          "named": true
8183        },
8184        {
8185          "type": "exp_th_quoted_name",
8186          "named": true
8187        },
8188        {
8189          "type": "exp_tuple",
8190          "named": true
8191        },
8192        {
8193          "type": "exp_type_application",
8194          "named": true
8195        },
8196        {
8197          "type": "exp_unboxed_sum",
8198          "named": true
8199        },
8200        {
8201          "type": "exp_unboxed_tuple",
8202          "named": true
8203        },
8204        {
8205          "type": "let",
8206          "named": true
8207        },
8208        {
8209          "type": "pattern_guard",
8210          "named": true
8211        },
8212        {
8213          "type": "quasiquote",
8214          "named": true
8215        },
8216        {
8217          "type": "splice",
8218          "named": true
8219        }
8220      ]
8221    }
8222  },
8223  {
8224    "type": "guard_equation",
8225    "named": true,
8226    "fields": {
8227      "type": {
8228        "multiple": false,
8229        "required": false,
8230        "types": [
8231          {
8232            "type": "context",
8233            "named": true
8234          },
8235          {
8236            "type": "forall",
8237            "named": true
8238          },
8239          {
8240            "type": "fun",
8241            "named": true
8242          },
8243          {
8244            "type": "implicit_param",
8245            "named": true
8246          },
8247          {
8248            "type": "promoted",
8249            "named": true
8250          },
8251          {
8252            "type": "quasiquote",
8253            "named": true
8254          },
8255          {
8256            "type": "splice",
8257            "named": true
8258          },
8259          {
8260            "type": "type_apply",
8261            "named": true
8262          },
8263          {
8264            "type": "type_infix",
8265            "named": true
8266          },
8267          {
8268            "type": "type_list",
8269            "named": true
8270          },
8271          {
8272            "type": "type_literal",
8273            "named": true
8274          },
8275          {
8276            "type": "type_name",
8277            "named": true
8278          },
8279          {
8280            "type": "type_parens",
8281            "named": true
8282          },
8283          {
8284            "type": "type_star",
8285            "named": true
8286          },
8287          {
8288            "type": "type_tuple",
8289            "named": true
8290          },
8291          {
8292            "type": "type_unboxed_sum",
8293            "named": true
8294          },
8295          {
8296            "type": "type_unboxed_tuple",
8297            "named": true
8298          }
8299        ]
8300      }
8301    },
8302    "children": {
8303      "multiple": true,
8304      "required": true,
8305      "types": [
8306        {
8307          "type": "exp_apply",
8308          "named": true
8309        },
8310        {
8311          "type": "exp_arithmetic_sequence",
8312          "named": true
8313        },
8314        {
8315          "type": "exp_case",
8316          "named": true
8317        },
8318        {
8319          "type": "exp_cond",
8320          "named": true
8321        },
8322        {
8323          "type": "exp_do",
8324          "named": true
8325        },
8326        {
8327          "type": "exp_if_guard",
8328          "named": true
8329        },
8330        {
8331          "type": "exp_infix",
8332          "named": true
8333        },
8334        {
8335          "type": "exp_lambda",
8336          "named": true
8337        },
8338        {
8339          "type": "exp_lambda_case",
8340          "named": true
8341        },
8342        {
8343          "type": "exp_let_in",
8344          "named": true
8345        },
8346        {
8347          "type": "exp_list",
8348          "named": true
8349        },
8350        {
8351          "type": "exp_list_comprehension",
8352          "named": true
8353        },
8354        {
8355          "type": "exp_literal",
8356          "named": true
8357        },
8358        {
8359          "type": "exp_name",
8360          "named": true
8361        },
8362        {
8363          "type": "exp_negation",
8364          "named": true
8365        },
8366        {
8367          "type": "exp_parens",
8368          "named": true
8369        },
8370        {
8371          "type": "exp_record",
8372          "named": true
8373        },
8374        {
8375          "type": "exp_section_left",
8376          "named": true
8377        },
8378        {
8379          "type": "exp_section_right",
8380          "named": true
8381        },
8382        {
8383          "type": "exp_th_quoted_name",
8384          "named": true
8385        },
8386        {
8387          "type": "exp_tuple",
8388          "named": true
8389        },
8390        {
8391          "type": "exp_type_application",
8392          "named": true
8393        },
8394        {
8395          "type": "exp_unboxed_sum",
8396          "named": true
8397        },
8398        {
8399          "type": "exp_unboxed_tuple",
8400          "named": true
8401        },
8402        {
8403          "type": "guards",
8404          "named": true
8405        },
8406        {
8407          "type": "quasiquote",
8408          "named": true
8409        },
8410        {
8411          "type": "splice",
8412          "named": true
8413        }
8414      ]
8415    }
8416  },
8417  {
8418    "type": "guards",
8419    "named": true,
8420    "fields": {},
8421    "children": {
8422      "multiple": true,
8423      "required": true,
8424      "types": [
8425        {
8426          "type": "comma",
8427          "named": true
8428        },
8429        {
8430          "type": "guard",
8431          "named": true
8432        }
8433      ]
8434    }
8435  },
8436  {
8437    "type": "haskell",
8438    "named": true,
8439    "fields": {
8440      "module": {
8441        "multiple": false,
8442        "required": false,
8443        "types": [
8444          {
8445            "type": "module",
8446            "named": true
8447          },
8448          {
8449            "type": "qualified_module",
8450            "named": true
8451          }
8452        ]
8453      }
8454    },
8455    "children": {
8456      "multiple": true,
8457      "required": true,
8458      "types": [
8459        {
8460          "type": "adt",
8461          "named": true
8462        },
8463        {
8464          "type": "class",
8465          "named": true
8466        },
8467        {
8468          "type": "data_family",
8469          "named": true
8470        },
8471        {
8472          "type": "data_instance",
8473          "named": true
8474        },
8475        {
8476          "type": "default_declaration",
8477          "named": true
8478        },
8479        {
8480          "type": "deriving_declaration",
8481          "named": true
8482        },
8483        {
8484          "type": "empty_file",
8485          "named": true
8486        },
8487        {
8488          "type": "exports",
8489          "named": true
8490        },
8491        {
8492          "type": "fixity",
8493          "named": true
8494        },
8495        {
8496          "type": "foreign_export",
8497          "named": true
8498        },
8499        {
8500          "type": "foreign_import",
8501          "named": true
8502        },
8503        {
8504          "type": "function",
8505          "named": true
8506        },
8507        {
8508          "type": "import",
8509          "named": true
8510        },
8511        {
8512          "type": "instance",
8513          "named": true
8514        },
8515        {
8516          "type": "newtype",
8517          "named": true
8518        },
8519        {
8520          "type": "pattern_synonym",
8521          "named": true
8522        },
8523        {
8524          "type": "role_annotation",
8525          "named": true
8526        },
8527        {
8528          "type": "signature",
8529          "named": true
8530        },
8531        {
8532          "type": "top_splice",
8533          "named": true
8534        },
8535        {
8536          "type": "type_alias",
8537          "named": true
8538        },
8539        {
8540          "type": "type_family",
8541          "named": true
8542        },
8543        {
8544          "type": "type_instance",
8545          "named": true
8546        },
8547        {
8548          "type": "where",
8549          "named": true
8550        }
8551      ]
8552    }
8553  },
8554  {
8555    "type": "head",
8556    "named": true,
8557    "fields": {
8558      "name": {
8559        "multiple": true,
8560        "required": false,
8561        "types": [
8562          {
8563            "type": "(",
8564            "named": false
8565          },
8566          {
8567            "type": ")",
8568            "named": false
8569          },
8570          {
8571            "type": "constructor_operator",
8572            "named": true
8573          },
8574          {
8575            "type": "type",
8576            "named": true
8577          },
8578          {
8579            "type": "type_operator",
8580            "named": true
8581          }
8582        ]
8583      }
8584    },
8585    "children": {
8586      "multiple": true,
8587      "required": false,
8588      "types": [
8589        {
8590          "type": "annotated_type_variable",
8591          "named": true
8592        },
8593        {
8594          "type": "type_infix",
8595          "named": true
8596        },
8597        {
8598          "type": "type_variable",
8599          "named": true
8600        }
8601      ]
8602    }
8603  },
8604  {
8605    "type": "impent",
8606    "named": true,
8607    "fields": {},
8608    "children": {
8609      "multiple": false,
8610      "required": true,
8611      "types": [
8612        {
8613          "type": "string",
8614          "named": true
8615        }
8616      ]
8617    }
8618  },
8619  {
8620    "type": "implicit_param",
8621    "named": true,
8622    "fields": {
8623      "type": {
8624        "multiple": false,
8625        "required": true,
8626        "types": [
8627          {
8628            "type": "context",
8629            "named": true
8630          },
8631          {
8632            "type": "forall",
8633            "named": true
8634          },
8635          {
8636            "type": "fun",
8637            "named": true
8638          },
8639          {
8640            "type": "implicit_param",
8641            "named": true
8642          },
8643          {
8644            "type": "promoted",
8645            "named": true
8646          },
8647          {
8648            "type": "quasiquote",
8649            "named": true
8650          },
8651          {
8652            "type": "splice",
8653            "named": true
8654          },
8655          {
8656            "type": "type_apply",
8657            "named": true
8658          },
8659          {
8660            "type": "type_infix",
8661            "named": true
8662          },
8663          {
8664            "type": "type_list",
8665            "named": true
8666          },
8667          {
8668            "type": "type_literal",
8669            "named": true
8670          },
8671          {
8672            "type": "type_name",
8673            "named": true
8674          },
8675          {
8676            "type": "type_parens",
8677            "named": true
8678          },
8679          {
8680            "type": "type_star",
8681            "named": true
8682          },
8683          {
8684            "type": "type_tuple",
8685            "named": true
8686          },
8687          {
8688            "type": "type_unboxed_sum",
8689            "named": true
8690          },
8691          {
8692            "type": "type_unboxed_tuple",
8693            "named": true
8694          }
8695        ]
8696      }
8697    },
8698    "children": {
8699      "multiple": false,
8700      "required": true,
8701      "types": [
8702        {
8703          "type": "implicit_parid",
8704          "named": true
8705        }
8706      ]
8707    }
8708  },
8709  {
8710    "type": "import",
8711    "named": true,
8712    "fields": {},
8713    "children": {
8714      "multiple": true,
8715      "required": true,
8716      "types": [
8717        {
8718          "type": "import_list",
8719          "named": true
8720        },
8721        {
8722          "type": "import_package",
8723          "named": true
8724        },
8725        {
8726          "type": "module",
8727          "named": true
8728        },
8729        {
8730          "type": "qualified_module",
8731          "named": true
8732        }
8733      ]
8734    }
8735  },
8736  {
8737    "type": "import_con_names",
8738    "named": true,
8739    "fields": {},
8740    "children": {
8741      "multiple": true,
8742      "required": false,
8743      "types": [
8744        {
8745          "type": "all_names",
8746          "named": true
8747        },
8748        {
8749          "type": "comma",
8750          "named": true
8751        },
8752        {
8753          "type": "constructor",
8754          "named": true
8755        },
8756        {
8757          "type": "constructor_operator",
8758          "named": true
8759        },
8760        {
8761          "type": "operator",
8762          "named": true
8763        },
8764        {
8765          "type": "variable",
8766          "named": true
8767        }
8768      ]
8769    }
8770  },
8771  {
8772    "type": "import_item",
8773    "named": true,
8774    "fields": {},
8775    "children": {
8776      "multiple": true,
8777      "required": true,
8778      "types": [
8779        {
8780          "type": "constructor_operator",
8781          "named": true
8782        },
8783        {
8784          "type": "import_con_names",
8785          "named": true
8786        },
8787        {
8788          "type": "namespace",
8789          "named": true
8790        },
8791        {
8792          "type": "operator",
8793          "named": true
8794        },
8795        {
8796          "type": "type",
8797          "named": true
8798        },
8799        {
8800          "type": "type_operator",
8801          "named": true
8802        },
8803        {
8804          "type": "variable",
8805          "named": true
8806        }
8807      ]
8808    }
8809  },
8810  {
8811    "type": "import_list",
8812    "named": true,
8813    "fields": {},
8814    "children": {
8815      "multiple": true,
8816      "required": false,
8817      "types": [
8818        {
8819          "type": "comma",
8820          "named": true
8821        },
8822        {
8823          "type": "import_item",
8824          "named": true
8825        }
8826      ]
8827    }
8828  },
8829  {
8830    "type": "infix",
8831    "named": true,
8832    "fields": {
8833      "lhs": {
8834        "multiple": false,
8835        "required": true,
8836        "types": [
8837          {
8838            "type": "pat_apply",
8839            "named": true
8840          },
8841          {
8842            "type": "pat_as",
8843            "named": true
8844          },
8845          {
8846            "type": "pat_infix",
8847            "named": true
8848          },
8849          {
8850            "type": "pat_irrefutable",
8851            "named": true
8852          },
8853          {
8854            "type": "pat_list",
8855            "named": true
8856          },
8857          {
8858            "type": "pat_literal",
8859            "named": true
8860          },
8861          {
8862            "type": "pat_name",
8863            "named": true
8864          },
8865          {
8866            "type": "pat_negation",
8867            "named": true
8868          },
8869          {
8870            "type": "pat_parens",
8871            "named": true
8872          },
8873          {
8874            "type": "pat_record",
8875            "named": true
8876          },
8877          {
8878            "type": "pat_strict",
8879            "named": true
8880          },
8881          {
8882            "type": "pat_tuple",
8883            "named": true
8884          },
8885          {
8886            "type": "pat_unboxed_tuple",
8887            "named": true
8888          },
8889          {
8890            "type": "pat_wildcard",
8891            "named": true
8892          },
8893          {
8894            "type": "quasiquote",
8895            "named": true
8896          },
8897          {
8898            "type": "splice",
8899            "named": true
8900          }
8901        ]
8902      },
8903      "op": {
8904        "multiple": false,
8905        "required": true,
8906        "types": [
8907          {
8908            "type": "varop",
8909            "named": true
8910          }
8911        ]
8912      },
8913      "rhs": {
8914        "multiple": false,
8915        "required": true,
8916        "types": [
8917          {
8918            "type": "pat_apply",
8919            "named": true
8920          },
8921          {
8922            "type": "pat_as",
8923            "named": true
8924          },
8925          {
8926            "type": "pat_infix",
8927            "named": true
8928          },
8929          {
8930            "type": "pat_irrefutable",
8931            "named": true
8932          },
8933          {
8934            "type": "pat_list",
8935            "named": true
8936          },
8937          {
8938            "type": "pat_literal",
8939            "named": true
8940          },
8941          {
8942            "type": "pat_name",
8943            "named": true
8944          },
8945          {
8946            "type": "pat_negation",
8947            "named": true
8948          },
8949          {
8950            "type": "pat_parens",
8951            "named": true
8952          },
8953          {
8954            "type": "pat_record",
8955            "named": true
8956          },
8957          {
8958            "type": "pat_strict",
8959            "named": true
8960          },
8961          {
8962            "type": "pat_tuple",
8963            "named": true
8964          },
8965          {
8966            "type": "pat_unboxed_tuple",
8967            "named": true
8968          },
8969          {
8970            "type": "pat_wildcard",
8971            "named": true
8972          },
8973          {
8974            "type": "quasiquote",
8975            "named": true
8976          },
8977          {
8978            "type": "splice",
8979            "named": true
8980          }
8981        ]
8982      }
8983    }
8984  },
8985  {
8986    "type": "inst_datainst",
8987    "named": true,
8988    "fields": {
8989      "type": {
8990        "multiple": false,
8991        "required": false,
8992        "types": [
8993          {
8994            "type": "context",
8995            "named": true
8996          },
8997          {
8998            "type": "forall",
8999            "named": true
9000          },
9001          {
9002            "type": "fun",
9003            "named": true
9004          },
9005          {
9006            "type": "implicit_param",
9007            "named": true
9008          },
9009          {
9010            "type": "promoted",
9011            "named": true
9012          },
9013          {
9014            "type": "quasiquote",
9015            "named": true
9016          },
9017          {
9018            "type": "splice",
9019            "named": true
9020          },
9021          {
9022            "type": "type_apply",
9023            "named": true
9024          },
9025          {
9026            "type": "type_infix",
9027            "named": true
9028          },
9029          {
9030            "type": "type_list",
9031            "named": true
9032          },
9033          {
9034            "type": "type_literal",
9035            "named": true
9036          },
9037          {
9038            "type": "type_name",
9039            "named": true
9040          },
9041          {
9042            "type": "type_parens",
9043            "named": true
9044          },
9045          {
9046            "type": "type_star",
9047            "named": true
9048          },
9049          {
9050            "type": "type_tuple",
9051            "named": true
9052          },
9053          {
9054            "type": "type_unboxed_sum",
9055            "named": true
9056          },
9057          {
9058            "type": "type_unboxed_tuple",
9059            "named": true
9060          }
9061        ]
9062      }
9063    },
9064    "children": {
9065      "multiple": true,
9066      "required": true,
9067      "types": [
9068        {
9069          "type": "constructors",
9070          "named": true
9071        },
9072        {
9073          "type": "context",
9074          "named": true
9075        },
9076        {
9077          "type": "deriving",
9078          "named": true
9079        },
9080        {
9081          "type": "forall",
9082          "named": true
9083        },
9084        {
9085          "type": "gadt_constructor",
9086          "named": true
9087        },
9088        {
9089          "type": "newtype_constructor",
9090          "named": true
9091        },
9092        {
9093          "type": "promoted",
9094          "named": true
9095        },
9096        {
9097          "type": "quasiquote",
9098          "named": true
9099        },
9100        {
9101          "type": "splice",
9102          "named": true
9103        },
9104        {
9105          "type": "type_apply",
9106          "named": true
9107        },
9108        {
9109          "type": "type_infix",
9110          "named": true
9111        },
9112        {
9113          "type": "type_list",
9114          "named": true
9115        },
9116        {
9117          "type": "type_literal",
9118          "named": true
9119        },
9120        {
9121          "type": "type_name",
9122          "named": true
9123        },
9124        {
9125          "type": "type_parens",
9126          "named": true
9127        },
9128        {
9129          "type": "type_star",
9130          "named": true
9131        },
9132        {
9133          "type": "type_tuple",
9134          "named": true
9135        },
9136        {
9137          "type": "type_unboxed_sum",
9138          "named": true
9139        },
9140        {
9141          "type": "type_unboxed_tuple",
9142          "named": true
9143        },
9144        {
9145          "type": "where",
9146          "named": true
9147        }
9148      ]
9149    }
9150  },
9151  {
9152    "type": "inst_tyinst",
9153    "named": true,
9154    "fields": {},
9155    "children": {
9156      "multiple": true,
9157      "required": true,
9158      "types": [
9159        {
9160          "type": "context",
9161          "named": true
9162        },
9163        {
9164          "type": "forall",
9165          "named": true
9166        },
9167        {
9168          "type": "fun",
9169          "named": true
9170        },
9171        {
9172          "type": "promoted",
9173          "named": true
9174        },
9175        {
9176          "type": "quasiquote",
9177          "named": true
9178        },
9179        {
9180          "type": "splice",
9181          "named": true
9182        },
9183        {
9184          "type": "type_apply",
9185          "named": true
9186        },
9187        {
9188          "type": "type_infix",
9189          "named": true
9190        },
9191        {
9192          "type": "type_list",
9193          "named": true
9194        },
9195        {
9196          "type": "type_literal",
9197          "named": true
9198        },
9199        {
9200          "type": "type_name",
9201          "named": true
9202        },
9203        {
9204          "type": "type_parens",
9205          "named": true
9206        },
9207        {
9208          "type": "type_star",
9209          "named": true
9210        },
9211        {
9212          "type": "type_tuple",
9213          "named": true
9214        },
9215        {
9216          "type": "type_unboxed_sum",
9217          "named": true
9218        },
9219        {
9220          "type": "type_unboxed_tuple",
9221          "named": true
9222        }
9223      ]
9224    }
9225  },
9226  {
9227    "type": "instance",
9228    "named": true,
9229    "fields": {},
9230    "children": {
9231      "multiple": true,
9232      "required": true,
9233      "types": [
9234        {
9235          "type": "context",
9236          "named": true
9237        },
9238        {
9239          "type": "forall",
9240          "named": true
9241        },
9242        {
9243          "type": "function",
9244          "named": true
9245        },
9246        {
9247          "type": "inst_datainst",
9248          "named": true
9249        },
9250        {
9251          "type": "inst_tyinst",
9252          "named": true
9253        },
9254        {
9255          "type": "instance_head",
9256          "named": true
9257        },
9258        {
9259          "type": "signature",
9260          "named": true
9261        },
9262        {
9263          "type": "where",
9264          "named": true
9265        }
9266      ]
9267    }
9268  },
9269  {
9270    "type": "instance_head",
9271    "named": true,
9272    "fields": {
9273      "class": {
9274        "multiple": false,
9275        "required": false,
9276        "types": [
9277          {
9278            "type": "class_name",
9279            "named": true
9280          }
9281        ]
9282      }
9283    },
9284    "children": {
9285      "multiple": true,
9286      "required": false,
9287      "types": [
9288        {
9289          "type": "promoted",
9290          "named": true
9291        },
9292        {
9293          "type": "quasiquote",
9294          "named": true
9295        },
9296        {
9297          "type": "splice",
9298          "named": true
9299        },
9300        {
9301          "type": "type_infix",
9302          "named": true
9303        },
9304        {
9305          "type": "type_list",
9306          "named": true
9307        },
9308        {
9309          "type": "type_literal",
9310          "named": true
9311        },
9312        {
9313          "type": "type_name",
9314          "named": true
9315        },
9316        {
9317          "type": "type_parens",
9318          "named": true
9319        },
9320        {
9321          "type": "type_star",
9322          "named": true
9323        },
9324        {
9325          "type": "type_tuple",
9326          "named": true
9327        },
9328        {
9329          "type": "type_unboxed_sum",
9330          "named": true
9331        },
9332        {
9333          "type": "type_unboxed_tuple",
9334          "named": true
9335        }
9336      ]
9337    }
9338  },
9339  {
9340    "type": "integer",
9341    "named": true,
9342    "fields": {}
9343  },
9344  {
9345    "type": "let",
9346    "named": true,
9347    "fields": {},
9348    "children": {
9349      "multiple": false,
9350      "required": false,
9351      "types": [
9352        {
9353          "type": "decls",
9354          "named": true
9355        }
9356      ]
9357    }
9358  },
9359  {
9360    "type": "module",
9361    "named": true,
9362    "fields": {}
9363  },
9364  {
9365    "type": "namespace",
9366    "named": true,
9367    "fields": {}
9368  },
9369  {
9370    "type": "newtype",
9371    "named": true,
9372    "fields": {
9373      "name": {
9374        "multiple": true,
9375        "required": false,
9376        "types": [
9377          {
9378            "type": "(",
9379            "named": false
9380          },
9381          {
9382            "type": ")",
9383            "named": false
9384          },
9385          {
9386            "type": "constructor_operator",
9387            "named": true
9388          },
9389          {
9390            "type": "type",
9391            "named": true
9392          },
9393          {
9394            "type": "type_operator",
9395            "named": true
9396          }
9397        ]
9398      },
9399      "type": {
9400        "multiple": false,
9401        "required": false,
9402        "types": [
9403          {
9404            "type": "context",
9405            "named": true
9406          },
9407          {
9408            "type": "forall",
9409            "named": true
9410          },
9411          {
9412            "type": "fun",
9413            "named": true
9414          },
9415          {
9416            "type": "implicit_param",
9417            "named": true
9418          },
9419          {
9420            "type": "promoted",
9421            "named": true
9422          },
9423          {
9424            "type": "quasiquote",
9425            "named": true
9426          },
9427          {
9428            "type": "splice",
9429            "named": true
9430          },
9431          {
9432            "type": "type_apply",
9433            "named": true
9434          },
9435          {
9436            "type": "type_infix",
9437            "named": true
9438          },
9439          {
9440            "type": "type_list",
9441            "named": true
9442          },
9443          {
9444            "type": "type_literal",
9445            "named": true
9446          },
9447          {
9448            "type": "type_name",
9449            "named": true
9450          },
9451          {
9452            "type": "type_parens",
9453            "named": true
9454          },
9455          {
9456            "type": "type_star",
9457            "named": true
9458          },
9459          {
9460            "type": "type_tuple",
9461            "named": true
9462          },
9463          {
9464            "type": "type_unboxed_sum",
9465            "named": true
9466          },
9467          {
9468            "type": "type_unboxed_tuple",
9469            "named": true
9470          }
9471        ]
9472      }
9473    },
9474    "children": {
9475      "multiple": true,
9476      "required": true,
9477      "types": [
9478        {
9479          "type": "annotated_type_variable",
9480          "named": true
9481        },
9482        {
9483          "type": "context",
9484          "named": true
9485        },
9486        {
9487          "type": "deriving",
9488          "named": true
9489        },
9490        {
9491          "type": "gadt_constructor",
9492          "named": true
9493        },
9494        {
9495          "type": "newtype_constructor",
9496          "named": true
9497        },
9498        {
9499          "type": "type_infix",
9500          "named": true
9501        },
9502        {
9503          "type": "type_variable",
9504          "named": true
9505        },
9506        {
9507          "type": "where",
9508          "named": true
9509        }
9510      ]
9511    }
9512  },
9513  {
9514    "type": "newtype_constructor",
9515    "named": true,
9516    "fields": {},
9517    "children": {
9518      "multiple": true,
9519      "required": true,
9520      "types": [
9521        {
9522          "type": "constructor",
9523          "named": true
9524        },
9525        {
9526          "type": "field",
9527          "named": true
9528        },
9529        {
9530          "type": "promoted",
9531          "named": true
9532        },
9533        {
9534          "type": "quasiquote",
9535          "named": true
9536        },
9537        {
9538          "type": "splice",
9539          "named": true
9540        },
9541        {
9542          "type": "type_list",
9543          "named": true
9544        },
9545        {
9546          "type": "type_literal",
9547          "named": true
9548        },
9549        {
9550          "type": "type_name",
9551          "named": true
9552        },
9553        {
9554          "type": "type_parens",
9555          "named": true
9556        },
9557        {
9558          "type": "type_star",
9559          "named": true
9560        },
9561        {
9562          "type": "type_tuple",
9563          "named": true
9564        },
9565        {
9566          "type": "type_unboxed_sum",
9567          "named": true
9568        },
9569        {
9570          "type": "type_unboxed_tuple",
9571          "named": true
9572        }
9573      ]
9574    }
9575  },
9576  {
9577    "type": "operator",
9578    "named": true,
9579    "fields": {}
9580  },
9581  {
9582    "type": "pat_apply",
9583    "named": true,
9584    "fields": {},
9585    "children": {
9586      "multiple": true,
9587      "required": true,
9588      "types": [
9589        {
9590          "type": "pat_as",
9591          "named": true
9592        },
9593        {
9594          "type": "pat_irrefutable",
9595          "named": true
9596        },
9597        {
9598          "type": "pat_list",
9599          "named": true
9600        },
9601        {
9602          "type": "pat_literal",
9603          "named": true
9604        },
9605        {
9606          "type": "pat_name",
9607          "named": true
9608        },
9609        {
9610          "type": "pat_parens",
9611          "named": true
9612        },
9613        {
9614          "type": "pat_record",
9615          "named": true
9616        },
9617        {
9618          "type": "pat_strict",
9619          "named": true
9620        },
9621        {
9622          "type": "pat_tuple",
9623          "named": true
9624        },
9625        {
9626          "type": "pat_unboxed_tuple",
9627          "named": true
9628        },
9629        {
9630          "type": "pat_wildcard",
9631          "named": true
9632        },
9633        {
9634          "type": "quasiquote",
9635          "named": true
9636        },
9637        {
9638          "type": "splice",
9639          "named": true
9640        }
9641      ]
9642    }
9643  },
9644  {
9645    "type": "pat_as",
9646    "named": true,
9647    "fields": {
9648      "pat": {
9649        "multiple": false,
9650        "required": true,
9651        "types": [
9652          {
9653            "type": "pat_as",
9654            "named": true
9655          },
9656          {
9657            "type": "pat_irrefutable",
9658            "named": true
9659          },
9660          {
9661            "type": "pat_list",
9662            "named": true
9663          },
9664          {
9665            "type": "pat_literal",
9666            "named": true
9667          },
9668          {
9669            "type": "pat_name",
9670            "named": true
9671          },
9672          {
9673            "type": "pat_parens",
9674            "named": true
9675          },
9676          {
9677            "type": "pat_record",
9678            "named": true
9679          },
9680          {
9681            "type": "pat_strict",
9682            "named": true
9683          },
9684          {
9685            "type": "pat_tuple",
9686            "named": true
9687          },
9688          {
9689            "type": "pat_unboxed_tuple",
9690            "named": true
9691          },
9692          {
9693            "type": "pat_wildcard",
9694            "named": true
9695          },
9696          {
9697            "type": "quasiquote",
9698            "named": true
9699          },
9700          {
9701            "type": "splice",
9702            "named": true
9703          }
9704        ]
9705      },
9706      "var": {
9707        "multiple": false,
9708        "required": true,
9709        "types": [
9710          {
9711            "type": "variable",
9712            "named": true
9713          }
9714        ]
9715      }
9716    }
9717  },
9718  {
9719    "type": "pat_field",
9720    "named": true,
9721    "fields": {},
9722    "children": {
9723      "multiple": true,
9724      "required": true,
9725      "types": [
9726        {
9727          "type": "operator",
9728          "named": true
9729        },
9730        {
9731          "type": "pat_apply",
9732          "named": true
9733        },
9734        {
9735          "type": "pat_as",
9736          "named": true
9737        },
9738        {
9739          "type": "pat_infix",
9740          "named": true
9741        },
9742        {
9743          "type": "pat_irrefutable",
9744          "named": true
9745        },
9746        {
9747          "type": "pat_list",
9748          "named": true
9749        },
9750        {
9751          "type": "pat_literal",
9752          "named": true
9753        },
9754        {
9755          "type": "pat_name",
9756          "named": true
9757        },
9758        {
9759          "type": "pat_negation",
9760          "named": true
9761        },
9762        {
9763          "type": "pat_parens",
9764          "named": true
9765        },
9766        {
9767          "type": "pat_record",
9768          "named": true
9769        },
9770        {
9771          "type": "pat_strict",
9772          "named": true
9773        },
9774        {
9775          "type": "pat_tuple",
9776          "named": true
9777        },
9778        {
9779          "type": "pat_typed",
9780          "named": true
9781        },
9782        {
9783          "type": "pat_unboxed_tuple",
9784          "named": true
9785        },
9786        {
9787          "type": "pat_view",
9788          "named": true
9789        },
9790        {
9791          "type": "pat_wildcard",
9792          "named": true
9793        },
9794        {
9795          "type": "qualified_operator",
9796          "named": true
9797        },
9798        {
9799          "type": "qualified_variable",
9800          "named": true
9801        },
9802        {
9803          "type": "quasiquote",
9804          "named": true
9805        },
9806        {
9807          "type": "splice",
9808          "named": true
9809        },
9810        {
9811          "type": "variable",
9812          "named": true
9813        },
9814        {
9815          "type": "wildcard",
9816          "named": true
9817        }
9818      ]
9819    }
9820  },
9821  {
9822    "type": "pat_fields",
9823    "named": true,
9824    "fields": {},
9825    "children": {
9826      "multiple": true,
9827      "required": false,
9828      "types": [
9829        {
9830          "type": "comma",
9831          "named": true
9832        },
9833        {
9834          "type": "pat_field",
9835          "named": true
9836        }
9837      ]
9838    }
9839  },
9840  {
9841    "type": "pat_infix",
9842    "named": true,
9843    "fields": {},
9844    "children": {
9845      "multiple": true,
9846      "required": true,
9847      "types": [
9848        {
9849          "type": "constructor",
9850          "named": true
9851        },
9852        {
9853          "type": "constructor_operator",
9854          "named": true
9855        },
9856        {
9857          "type": "pat_apply",
9858          "named": true
9859        },
9860        {
9861          "type": "pat_as",
9862          "named": true
9863        },
9864        {
9865          "type": "pat_infix",
9866          "named": true
9867        },
9868        {
9869          "type": "pat_irrefutable",
9870          "named": true
9871        },
9872        {
9873          "type": "pat_list",
9874          "named": true
9875        },
9876        {
9877          "type": "pat_literal",
9878          "named": true
9879        },
9880        {
9881          "type": "pat_name",
9882          "named": true
9883        },
9884        {
9885          "type": "pat_negation",
9886          "named": true
9887        },
9888        {
9889          "type": "pat_parens",
9890          "named": true
9891        },
9892        {
9893          "type": "pat_record",
9894          "named": true
9895        },
9896        {
9897          "type": "pat_strict",
9898          "named": true
9899        },
9900        {
9901          "type": "pat_tuple",
9902          "named": true
9903        },
9904        {
9905          "type": "pat_unboxed_tuple",
9906          "named": true
9907        },
9908        {
9909          "type": "pat_wildcard",
9910          "named": true
9911        },
9912        {
9913          "type": "qualified_constructor",
9914          "named": true
9915        },
9916        {
9917          "type": "qualified_constructor_operator",
9918          "named": true
9919        },
9920        {
9921          "type": "quasiquote",
9922          "named": true
9923        },
9924        {
9925          "type": "splice",
9926          "named": true
9927        }
9928      ]
9929    }
9930  },
9931  {
9932    "type": "pat_irrefutable",
9933    "named": true,
9934    "fields": {},
9935    "children": {
9936      "multiple": false,
9937      "required": true,
9938      "types": [
9939        {
9940          "type": "pat_as",
9941          "named": true
9942        },
9943        {
9944          "type": "pat_irrefutable",
9945          "named": true
9946        },
9947        {
9948          "type": "pat_list",
9949          "named": true
9950        },
9951        {
9952          "type": "pat_literal",
9953          "named": true
9954        },
9955        {
9956          "type": "pat_name",
9957          "named": true
9958        },
9959        {
9960          "type": "pat_parens",
9961          "named": true
9962        },
9963        {
9964          "type": "pat_record",
9965          "named": true
9966        },
9967        {
9968          "type": "pat_strict",
9969          "named": true
9970        },
9971        {
9972          "type": "pat_tuple",
9973          "named": true
9974        },
9975        {
9976          "type": "pat_unboxed_tuple",
9977          "named": true
9978        },
9979        {
9980          "type": "pat_wildcard",
9981          "named": true
9982        },
9983        {
9984          "type": "quasiquote",
9985          "named": true
9986        },
9987        {
9988          "type": "splice",
9989          "named": true
9990        }
9991      ]
9992    }
9993  },
9994  {
9995    "type": "pat_list",
9996    "named": true,
9997    "fields": {},
9998    "children": {
9999      "multiple": true,
10000      "required": true,
10001      "types": [
10002        {
10003          "type": "comma",
10004          "named": true
10005        },
10006        {
10007          "type": "pat_apply",
10008          "named": true
10009        },
10010        {
10011          "type": "pat_as",
10012          "named": true
10013        },
10014        {
10015          "type": "pat_infix",
10016          "named": true
10017        },
10018        {
10019          "type": "pat_irrefutable",
10020          "named": true
10021        },
10022        {
10023          "type": "pat_list",
10024          "named": true
10025        },
10026        {
10027          "type": "pat_literal",
10028          "named": true
10029        },
10030        {
10031          "type": "pat_name",
10032          "named": true
10033        },
10034        {
10035          "type": "pat_negation",
10036          "named": true
10037        },
10038        {
10039          "type": "pat_parens",
10040          "named": true
10041        },
10042        {
10043          "type": "pat_record",
10044          "named": true
10045        },
10046        {
10047          "type": "pat_strict",
10048          "named": true
10049        },
10050        {
10051          "type": "pat_tuple",
10052          "named": true
10053        },
10054        {
10055          "type": "pat_typed",
10056          "named": true
10057        },
10058        {
10059          "type": "pat_unboxed_tuple",
10060          "named": true
10061        },
10062        {
10063          "type": "pat_view",
10064          "named": true
10065        },
10066        {
10067          "type": "pat_wildcard",
10068          "named": true
10069        },
10070        {
10071          "type": "quasiquote",
10072          "named": true
10073        },
10074        {
10075          "type": "splice",
10076          "named": true
10077        }
10078      ]
10079    }
10080  },
10081  {
10082    "type": "pat_literal",
10083    "named": true,
10084    "fields": {},
10085    "children": {
10086      "multiple": false,
10087      "required": true,
10088      "types": [
10089        {
10090          "type": "char",
10091          "named": true
10092        },
10093        {
10094          "type": "con_list",
10095          "named": true
10096        },
10097        {
10098          "type": "con_tuple",
10099          "named": true
10100        },
10101        {
10102          "type": "con_unit",
10103          "named": true
10104        },
10105        {
10106          "type": "float",
10107          "named": true
10108        },
10109        {
10110          "type": "integer",
10111          "named": true
10112        },
10113        {
10114          "type": "string",
10115          "named": true
10116        }
10117      ]
10118    }
10119  },
10120  {
10121    "type": "pat_name",
10122    "named": true,
10123    "fields": {},
10124    "children": {
10125      "multiple": false,
10126      "required": true,
10127      "types": [
10128        {
10129          "type": "constructor",
10130          "named": true
10131        },
10132        {
10133          "type": "constructor_operator",
10134          "named": true
10135        },
10136        {
10137          "type": "operator",
10138          "named": true
10139        },
10140        {
10141          "type": "qualified_constructor",
10142          "named": true
10143        },
10144        {
10145          "type": "qualified_constructor_operator",
10146          "named": true
10147        },
10148        {
10149          "type": "variable",
10150          "named": true
10151        }
10152      ]
10153    }
10154  },
10155  {
10156    "type": "pat_negation",
10157    "named": true,
10158    "fields": {},
10159    "children": {
10160      "multiple": false,
10161      "required": true,
10162      "types": [
10163        {
10164          "type": "float",
10165          "named": true
10166        },
10167        {
10168          "type": "integer",
10169          "named": true
10170        }
10171      ]
10172    }
10173  },
10174  {
10175    "type": "pat_parens",
10176    "named": true,
10177    "fields": {},
10178    "children": {
10179      "multiple": false,
10180      "required": true,
10181      "types": [
10182        {
10183          "type": "pat_apply",
10184          "named": true
10185        },
10186        {
10187          "type": "pat_as",
10188          "named": true
10189        },
10190        {
10191          "type": "pat_infix",
10192          "named": true
10193        },
10194        {
10195          "type": "pat_irrefutable",
10196          "named": true
10197        },
10198        {
10199          "type": "pat_list",
10200          "named": true
10201        },
10202        {
10203          "type": "pat_literal",
10204          "named": true
10205        },
10206        {
10207          "type": "pat_name",
10208          "named": true
10209        },
10210        {
10211          "type": "pat_negation",
10212          "named": true
10213        },
10214        {
10215          "type": "pat_parens",
10216          "named": true
10217        },
10218        {
10219          "type": "pat_record",
10220          "named": true
10221        },
10222        {
10223          "type": "pat_strict",
10224          "named": true
10225        },
10226        {
10227          "type": "pat_tuple",
10228          "named": true
10229        },
10230        {
10231          "type": "pat_typed",
10232          "named": true
10233        },
10234        {
10235          "type": "pat_unboxed_tuple",
10236          "named": true
10237        },
10238        {
10239          "type": "pat_view",
10240          "named": true
10241        },
10242        {
10243          "type": "pat_wildcard",
10244          "named": true
10245        },
10246        {
10247          "type": "quasiquote",
10248          "named": true
10249        },
10250        {
10251          "type": "splice",
10252          "named": true
10253        }
10254      ]
10255    }
10256  },
10257  {
10258    "type": "pat_record",
10259    "named": true,
10260    "fields": {
10261      "con": {
10262        "multiple": false,
10263        "required": true,
10264        "types": [
10265          {
10266            "type": "pat_name",
10267            "named": true
10268          }
10269        ]
10270      },
10271      "fields": {
10272        "multiple": false,
10273        "required": true,
10274        "types": [
10275          {
10276            "type": "pat_fields",
10277            "named": true
10278          }
10279        ]
10280      }
10281    }
10282  },
10283  {
10284    "type": "pat_strict",
10285    "named": true,
10286    "fields": {},
10287    "children": {
10288      "multiple": false,
10289      "required": true,
10290      "types": [
10291        {
10292          "type": "pat_as",
10293          "named": true
10294        },
10295        {
10296          "type": "pat_irrefutable",
10297          "named": true
10298        },
10299        {
10300          "type": "pat_list",
10301          "named": true
10302        },
10303        {
10304          "type": "pat_literal",
10305          "named": true
10306        },
10307        {
10308          "type": "pat_name",
10309          "named": true
10310        },
10311        {
10312          "type": "pat_parens",
10313          "named": true
10314        },
10315        {
10316          "type": "pat_record",
10317          "named": true
10318        },
10319        {
10320          "type": "pat_strict",
10321          "named": true
10322        },
10323        {
10324          "type": "pat_tuple",
10325          "named": true
10326        },
10327        {
10328          "type": "pat_unboxed_tuple",
10329          "named": true
10330        },
10331        {
10332          "type": "pat_wildcard",
10333          "named": true
10334        },
10335        {
10336          "type": "quasiquote",
10337          "named": true
10338        },
10339        {
10340          "type": "splice",
10341          "named": true
10342        }
10343      ]
10344    }
10345  },
10346  {
10347    "type": "pat_tuple",
10348    "named": true,
10349    "fields": {},
10350    "children": {
10351      "multiple": true,
10352      "required": true,
10353      "types": [
10354        {
10355          "type": "comma",
10356          "named": true
10357        },
10358        {
10359          "type": "pat_apply",
10360          "named": true
10361        },
10362        {
10363          "type": "pat_as",
10364          "named": true
10365        },
10366        {
10367          "type": "pat_infix",
10368          "named": true
10369        },
10370        {
10371          "type": "pat_irrefutable",
10372          "named": true
10373        },
10374        {
10375          "type": "pat_list",
10376          "named": true
10377        },
10378        {
10379          "type": "pat_literal",
10380          "named": true
10381        },
10382        {
10383          "type": "pat_name",
10384          "named": true
10385        },
10386        {
10387          "type": "pat_negation",
10388          "named": true
10389        },
10390        {
10391          "type": "pat_parens",
10392          "named": true
10393        },
10394        {
10395          "type": "pat_record",
10396          "named": true
10397        },
10398        {
10399          "type": "pat_strict",
10400          "named": true
10401        },
10402        {
10403          "type": "pat_tuple",
10404          "named": true
10405        },
10406        {
10407          "type": "pat_typed",
10408          "named": true
10409        },
10410        {
10411          "type": "pat_unboxed_tuple",
10412          "named": true
10413        },
10414        {
10415          "type": "pat_view",
10416          "named": true
10417        },
10418        {
10419          "type": "pat_wildcard",
10420          "named": true
10421        },
10422        {
10423          "type": "quasiquote",
10424          "named": true
10425        },
10426        {
10427          "type": "splice",
10428          "named": true
10429        }
10430      ]
10431    }
10432  },
10433  {
10434    "type": "pat_typed",
10435    "named": true,
10436    "fields": {
10437      "pattern": {
10438        "multiple": false,
10439        "required": true,
10440        "types": [
10441          {
10442            "type": "pat_apply",
10443            "named": true
10444          },
10445          {
10446            "type": "pat_as",
10447            "named": true
10448          },
10449          {
10450            "type": "pat_infix",
10451            "named": true
10452          },
10453          {
10454            "type": "pat_irrefutable",
10455            "named": true
10456          },
10457          {
10458            "type": "pat_list",
10459            "named": true
10460          },
10461          {
10462            "type": "pat_literal",
10463            "named": true
10464          },
10465          {
10466            "type": "pat_name",
10467            "named": true
10468          },
10469          {
10470            "type": "pat_negation",
10471            "named": true
10472          },
10473          {
10474            "type": "pat_parens",
10475            "named": true
10476          },
10477          {
10478            "type": "pat_record",
10479            "named": true
10480          },
10481          {
10482            "type": "pat_strict",
10483            "named": true
10484          },
10485          {
10486            "type": "pat_tuple",
10487            "named": true
10488          },
10489          {
10490            "type": "pat_unboxed_tuple",
10491            "named": true
10492          },
10493          {
10494            "type": "pat_wildcard",
10495            "named": true
10496          },
10497          {
10498            "type": "quasiquote",
10499            "named": true
10500          },
10501          {
10502            "type": "splice",
10503            "named": true
10504          }
10505        ]
10506      },
10507      "type": {
10508        "multiple": false,
10509        "required": true,
10510        "types": [
10511          {
10512            "type": "context",
10513            "named": true
10514          },
10515          {
10516            "type": "forall",
10517            "named": true
10518          },
10519          {
10520            "type": "fun",
10521            "named": true
10522          },
10523          {
10524            "type": "implicit_param",
10525            "named": true
10526          },
10527          {
10528            "type": "promoted",
10529            "named": true
10530          },
10531          {
10532            "type": "quasiquote",
10533            "named": true
10534          },
10535          {
10536            "type": "splice",
10537            "named": true
10538          },
10539          {
10540            "type": "type_apply",
10541            "named": true
10542          },
10543          {
10544            "type": "type_infix",
10545            "named": true
10546          },
10547          {
10548            "type": "type_list",
10549            "named": true
10550          },
10551          {
10552            "type": "type_literal",
10553            "named": true
10554          },
10555          {
10556            "type": "type_name",
10557            "named": true
10558          },
10559          {
10560            "type": "type_parens",
10561            "named": true
10562          },
10563          {
10564            "type": "type_star",
10565            "named": true
10566          },
10567          {
10568            "type": "type_tuple",
10569            "named": true
10570          },
10571          {
10572            "type": "type_unboxed_sum",
10573            "named": true
10574          },
10575          {
10576            "type": "type_unboxed_tuple",
10577            "named": true
10578          }
10579        ]
10580      }
10581    }
10582  },
10583  {
10584    "type": "pat_unboxed_tuple",
10585    "named": true,
10586    "fields": {},
10587    "children": {
10588      "multiple": true,
10589      "required": true,
10590      "types": [
10591        {
10592          "type": "comma",
10593          "named": true
10594        },
10595        {
10596          "type": "pat_apply",
10597          "named": true
10598        },
10599        {
10600          "type": "pat_as",
10601          "named": true
10602        },
10603        {
10604          "type": "pat_infix",
10605          "named": true
10606        },
10607        {
10608          "type": "pat_irrefutable",
10609          "named": true
10610        },
10611        {
10612          "type": "pat_list",
10613          "named": true
10614        },
10615        {
10616          "type": "pat_literal",
10617          "named": true
10618        },
10619        {
10620          "type": "pat_name",
10621          "named": true
10622        },
10623        {
10624          "type": "pat_negation",
10625          "named": true
10626        },
10627        {
10628          "type": "pat_parens",
10629          "named": true
10630        },
10631        {
10632          "type": "pat_record",
10633          "named": true
10634        },
10635        {
10636          "type": "pat_strict",
10637          "named": true
10638        },
10639        {
10640          "type": "pat_tuple",
10641          "named": true
10642        },
10643        {
10644          "type": "pat_typed",
10645          "named": true
10646        },
10647        {
10648          "type": "pat_unboxed_tuple",
10649          "named": true
10650        },
10651        {
10652          "type": "pat_view",
10653          "named": true
10654        },
10655        {
10656          "type": "pat_wildcard",
10657          "named": true
10658        },
10659        {
10660          "type": "quasiquote",
10661          "named": true
10662        },
10663        {
10664          "type": "splice",
10665          "named": true
10666        }
10667      ]
10668    }
10669  },
10670  {
10671    "type": "pat_view",
10672    "named": true,
10673    "fields": {
10674      "type": {
10675        "multiple": false,
10676        "required": false,
10677        "types": [
10678          {
10679            "type": "context",
10680            "named": true
10681          },
10682          {
10683            "type": "forall",
10684            "named": true
10685          },
10686          {
10687            "type": "fun",
10688            "named": true
10689          },
10690          {
10691            "type": "implicit_param",
10692            "named": true
10693          },
10694          {
10695            "type": "promoted",
10696            "named": true
10697          },
10698          {
10699            "type": "quasiquote",
10700            "named": true
10701          },
10702          {
10703            "type": "splice",
10704            "named": true
10705          },
10706          {
10707            "type": "type_apply",
10708            "named": true
10709          },
10710          {
10711            "type": "type_infix",
10712            "named": true
10713          },
10714          {
10715            "type": "type_list",
10716            "named": true
10717          },
10718          {
10719            "type": "type_literal",
10720            "named": true
10721          },
10722          {
10723            "type": "type_name",
10724            "named": true
10725          },
10726          {
10727            "type": "type_parens",
10728            "named": true
10729          },
10730          {
10731            "type": "type_star",
10732            "named": true
10733          },
10734          {
10735            "type": "type_tuple",
10736            "named": true
10737          },
10738          {
10739            "type": "type_unboxed_sum",
10740            "named": true
10741          },
10742          {
10743            "type": "type_unboxed_tuple",
10744            "named": true
10745          }
10746        ]
10747      }
10748    },
10749    "children": {
10750      "multiple": true,
10751      "required": true,
10752      "types": [
10753        {
10754          "type": "exp_apply",
10755          "named": true
10756        },
10757        {
10758          "type": "exp_arithmetic_sequence",
10759          "named": true
10760        },
10761        {
10762          "type": "exp_case",
10763          "named": true
10764        },
10765        {
10766          "type": "exp_cond",
10767          "named": true
10768        },
10769        {
10770          "type": "exp_do",
10771          "named": true
10772        },
10773        {
10774          "type": "exp_if_guard",
10775          "named": true
10776        },
10777        {
10778          "type": "exp_infix",
10779          "named": true
10780        },
10781        {
10782          "type": "exp_lambda",
10783          "named": true
10784        },
10785        {
10786          "type": "exp_lambda_case",
10787          "named": true
10788        },
10789        {
10790          "type": "exp_let_in",
10791          "named": true
10792        },
10793        {
10794          "type": "exp_list",
10795          "named": true
10796        },
10797        {
10798          "type": "exp_list_comprehension",
10799          "named": true
10800        },
10801        {
10802          "type": "exp_literal",
10803          "named": true
10804        },
10805        {
10806          "type": "exp_name",
10807          "named": true
10808        },
10809        {
10810          "type": "exp_negation",
10811          "named": true
10812        },
10813        {
10814          "type": "exp_parens",
10815          "named": true
10816        },
10817        {
10818          "type": "exp_record",
10819          "named": true
10820        },
10821        {
10822          "type": "exp_section_left",
10823          "named": true
10824        },
10825        {
10826          "type": "exp_section_right",
10827          "named": true
10828        },
10829        {
10830          "type": "exp_th_quoted_name",
10831          "named": true
10832        },
10833        {
10834          "type": "exp_tuple",
10835          "named": true
10836        },
10837        {
10838          "type": "exp_type_application",
10839          "named": true
10840        },
10841        {
10842          "type": "exp_unboxed_sum",
10843          "named": true
10844        },
10845        {
10846          "type": "exp_unboxed_tuple",
10847          "named": true
10848        },
10849        {
10850          "type": "pat_apply",
10851          "named": true
10852        },
10853        {
10854          "type": "pat_as",
10855          "named": true
10856        },
10857        {
10858          "type": "pat_infix",
10859          "named": true
10860        },
10861        {
10862          "type": "pat_irrefutable",
10863          "named": true
10864        },
10865        {
10866          "type": "pat_list",
10867          "named": true
10868        },
10869        {
10870          "type": "pat_literal",
10871          "named": true
10872        },
10873        {
10874          "type": "pat_name",
10875          "named": true
10876        },
10877        {
10878          "type": "pat_negation",
10879          "named": true
10880        },
10881        {
10882          "type": "pat_parens",
10883          "named": true
10884        },
10885        {
10886          "type": "pat_record",
10887          "named": true
10888        },
10889        {
10890          "type": "pat_strict",
10891          "named": true
10892        },
10893        {
10894          "type": "pat_tuple",
10895          "named": true
10896        },
10897        {
10898          "type": "pat_typed",
10899          "named": true
10900        },
10901        {
10902          "type": "pat_unboxed_tuple",
10903          "named": true
10904        },
10905        {
10906          "type": "pat_view",
10907          "named": true
10908        },
10909        {
10910          "type": "pat_wildcard",
10911          "named": true
10912        },
10913        {
10914          "type": "quasiquote",
10915          "named": true
10916        },
10917        {
10918          "type": "splice",
10919          "named": true
10920        }
10921      ]
10922    }
10923  },
10924  {
10925    "type": "pat_wildcard",
10926    "named": true,
10927    "fields": {}
10928  },
10929  {
10930    "type": "pattern",
10931    "named": true,
10932    "fields": {
10933      "name": {
10934        "multiple": false,
10935        "required": false,
10936        "types": [
10937          {
10938            "type": "qualified_type",
10939            "named": true
10940          },
10941          {
10942            "type": "type",
10943            "named": true
10944          }
10945        ]
10946      },
10947      "op": {
10948        "multiple": false,
10949        "required": false,
10950        "types": [
10951          {
10952            "type": "constructor_operator",
10953            "named": true
10954          },
10955          {
10956            "type": "promoted",
10957            "named": true
10958          },
10959          {
10960            "type": "qualified_constructor_operator",
10961            "named": true
10962          },
10963          {
10964            "type": "qualified_type_operator",
10965            "named": true
10966          },
10967          {
10968            "type": "ticked",
10969            "named": true
10970          },
10971          {
10972            "type": "type_operator",
10973            "named": true
10974          }
10975        ]
10976      }
10977    },
10978    "children": {
10979      "multiple": true,
10980      "required": false,
10981      "types": [
10982        {
10983          "type": "promoted",
10984          "named": true
10985        },
10986        {
10987          "type": "quasiquote",
10988          "named": true
10989        },
10990        {
10991          "type": "splice",
10992          "named": true
10993        },
10994        {
10995          "type": "type_list",
10996          "named": true
10997        },
10998        {
10999          "type": "type_literal",
11000          "named": true
11001        },
11002        {
11003          "type": "type_name",
11004          "named": true
11005        },
11006        {
11007          "type": "type_parens",
11008          "named": true
11009        },
11010        {
11011          "type": "type_star",
11012          "named": true
11013        },
11014        {
11015          "type": "type_tuple",
11016          "named": true
11017        },
11018        {
11019          "type": "type_unboxed_sum",
11020          "named": true
11021        },
11022        {
11023          "type": "type_unboxed_tuple",
11024          "named": true
11025        }
11026      ]
11027    }
11028  },
11029  {
11030    "type": "pattern_guard",
11031    "named": true,
11032    "fields": {},
11033    "children": {
11034      "multiple": true,
11035      "required": true,
11036      "types": [
11037        {
11038          "type": "exp_apply",
11039          "named": true
11040        },
11041        {
11042          "type": "exp_arithmetic_sequence",
11043          "named": true
11044        },
11045        {
11046          "type": "exp_case",
11047          "named": true
11048        },
11049        {
11050          "type": "exp_cond",
11051          "named": true
11052        },
11053        {
11054          "type": "exp_do",
11055          "named": true
11056        },
11057        {
11058          "type": "exp_if_guard",
11059          "named": true
11060        },
11061        {
11062          "type": "exp_infix",
11063          "named": true
11064        },
11065        {
11066          "type": "exp_lambda",
11067          "named": true
11068        },
11069        {
11070          "type": "exp_lambda_case",
11071          "named": true
11072        },
11073        {
11074          "type": "exp_let_in",
11075          "named": true
11076        },
11077        {
11078          "type": "exp_list",
11079          "named": true
11080        },
11081        {
11082          "type": "exp_list_comprehension",
11083          "named": true
11084        },
11085        {
11086          "type": "exp_literal",
11087          "named": true
11088        },
11089        {
11090          "type": "exp_name",
11091          "named": true
11092        },
11093        {
11094          "type": "exp_negation",
11095          "named": true
11096        },
11097        {
11098          "type": "exp_parens",
11099          "named": true
11100        },
11101        {
11102          "type": "exp_record",
11103          "named": true
11104        },
11105        {
11106          "type": "exp_section_left",
11107          "named": true
11108        },
11109        {
11110          "type": "exp_section_right",
11111          "named": true
11112        },
11113        {
11114          "type": "exp_th_quoted_name",
11115          "named": true
11116        },
11117        {
11118          "type": "exp_tuple",
11119          "named": true
11120        },
11121        {
11122          "type": "exp_type_application",
11123          "named": true
11124        },
11125        {
11126          "type": "exp_unboxed_sum",
11127          "named": true
11128        },
11129        {
11130          "type": "exp_unboxed_tuple",
11131          "named": true
11132        },
11133        {
11134          "type": "pat_apply",
11135          "named": true
11136        },
11137        {
11138          "type": "pat_as",
11139          "named": true
11140        },
11141        {
11142          "type": "pat_infix",
11143          "named": true
11144        },
11145        {
11146          "type": "pat_irrefutable",
11147          "named": true
11148        },
11149        {
11150          "type": "pat_list",
11151          "named": true
11152        },
11153        {
11154          "type": "pat_literal",
11155          "named": true
11156        },
11157        {
11158          "type": "pat_name",
11159          "named": true
11160        },
11161        {
11162          "type": "pat_negation",
11163          "named": true
11164        },
11165        {
11166          "type": "pat_parens",
11167          "named": true
11168        },
11169        {
11170          "type": "pat_record",
11171          "named": true
11172        },
11173        {
11174          "type": "pat_strict",
11175          "named": true
11176        },
11177        {
11178          "type": "pat_tuple",
11179          "named": true
11180        },
11181        {
11182          "type": "pat_unboxed_tuple",
11183          "named": true
11184        },
11185        {
11186          "type": "pat_wildcard",
11187          "named": true
11188        },
11189        {
11190          "type": "quasiquote",
11191          "named": true
11192        },
11193        {
11194          "type": "splice",
11195          "named": true
11196        }
11197      ]
11198    }
11199  },
11200  {
11201    "type": "pattern_synonym",
11202    "named": true,
11203    "fields": {},
11204    "children": {
11205      "multiple": false,
11206      "required": true,
11207      "types": [
11208        {
11209          "type": "equation",
11210          "named": true
11211        },
11212        {
11213          "type": "signature",
11214          "named": true
11215        }
11216      ]
11217    }
11218  },
11219  {
11220    "type": "patterns",
11221    "named": true,
11222    "fields": {},
11223    "children": {
11224      "multiple": true,
11225      "required": true,
11226      "types": [
11227        {
11228          "type": "pat_as",
11229          "named": true
11230        },
11231        {
11232          "type": "pat_irrefutable",
11233          "named": true
11234        },
11235        {
11236          "type": "pat_list",
11237          "named": true
11238        },
11239        {
11240          "type": "pat_literal",
11241          "named": true
11242        },
11243        {
11244          "type": "pat_name",
11245          "named": true
11246        },
11247        {
11248          "type": "pat_parens",
11249          "named": true
11250        },
11251        {
11252          "type": "pat_record",
11253          "named": true
11254        },
11255        {
11256          "type": "pat_strict",
11257          "named": true
11258        },
11259        {
11260          "type": "pat_tuple",
11261          "named": true
11262        },
11263        {
11264          "type": "pat_unboxed_tuple",
11265          "named": true
11266        },
11267        {
11268          "type": "pat_wildcard",
11269          "named": true
11270        },
11271        {
11272          "type": "quasiquote",
11273          "named": true
11274        },
11275        {
11276          "type": "splice",
11277          "named": true
11278        }
11279      ]
11280    }
11281  },
11282  {
11283    "type": "promoted",
11284    "named": true,
11285    "fields": {},
11286    "children": {
11287      "multiple": false,
11288      "required": true,
11289      "types": [
11290        {
11291          "type": "constructor_operator",
11292          "named": true
11293        },
11294        {
11295          "type": "qualified_constructor_operator",
11296          "named": true
11297        },
11298        {
11299          "type": "qualified_type",
11300          "named": true
11301        },
11302        {
11303          "type": "qualified_type_operator",
11304          "named": true
11305        },
11306        {
11307          "type": "ticked",
11308          "named": true
11309        },
11310        {
11311          "type": "type",
11312          "named": true
11313        },
11314        {
11315          "type": "type_list",
11316          "named": true
11317        },
11318        {
11319          "type": "type_literal",
11320          "named": true
11321        },
11322        {
11323          "type": "type_operator",
11324          "named": true
11325        },
11326        {
11327          "type": "type_tuple",
11328          "named": true
11329        }
11330      ]
11331    }
11332  },
11333  {
11334    "type": "qual",
11335    "named": true,
11336    "fields": {
11337      "type": {
11338        "multiple": false,
11339        "required": false,
11340        "types": [
11341          {
11342            "type": "context",
11343            "named": true
11344          },
11345          {
11346            "type": "forall",
11347            "named": true
11348          },
11349          {
11350            "type": "fun",
11351            "named": true
11352          },
11353          {
11354            "type": "implicit_param",
11355            "named": true
11356          },
11357          {
11358            "type": "promoted",
11359            "named": true
11360          },
11361          {
11362            "type": "quasiquote",
11363            "named": true
11364          },
11365          {
11366            "type": "splice",
11367            "named": true
11368          },
11369          {
11370            "type": "type_apply",
11371            "named": true
11372          },
11373          {
11374            "type": "type_infix",
11375            "named": true
11376          },
11377          {
11378            "type": "type_list",
11379            "named": true
11380          },
11381          {
11382            "type": "type_literal",
11383            "named": true
11384          },
11385          {
11386            "type": "type_name",
11387            "named": true
11388          },
11389          {
11390            "type": "type_parens",
11391            "named": true
11392          },
11393          {
11394            "type": "type_star",
11395            "named": true
11396          },
11397          {
11398            "type": "type_tuple",
11399            "named": true
11400          },
11401          {
11402            "type": "type_unboxed_sum",
11403            "named": true
11404          },
11405          {
11406            "type": "type_unboxed_tuple",
11407            "named": true
11408          }
11409        ]
11410      }
11411    },
11412    "children": {
11413      "multiple": false,
11414      "required": true,
11415      "types": [
11416        {
11417          "type": "bind_pattern",
11418          "named": true
11419        },
11420        {
11421          "type": "exp_apply",
11422          "named": true
11423        },
11424        {
11425          "type": "exp_arithmetic_sequence",
11426          "named": true
11427        },
11428        {
11429          "type": "exp_case",
11430          "named": true
11431        },
11432        {
11433          "type": "exp_cond",
11434          "named": true
11435        },
11436        {
11437          "type": "exp_do",
11438          "named": true
11439        },
11440        {
11441          "type": "exp_if_guard",
11442          "named": true
11443        },
11444        {
11445          "type": "exp_infix",
11446          "named": true
11447        },
11448        {
11449          "type": "exp_lambda",
11450          "named": true
11451        },
11452        {
11453          "type": "exp_lambda_case",
11454          "named": true
11455        },
11456        {
11457          "type": "exp_let_in",
11458          "named": true
11459        },
11460        {
11461          "type": "exp_list",
11462          "named": true
11463        },
11464        {
11465          "type": "exp_list_comprehension",
11466          "named": true
11467        },
11468        {
11469          "type": "exp_literal",
11470          "named": true
11471        },
11472        {
11473          "type": "exp_name",
11474          "named": true
11475        },
11476        {
11477          "type": "exp_negation",
11478          "named": true
11479        },
11480        {
11481          "type": "exp_parens",
11482          "named": true
11483        },
11484        {
11485          "type": "exp_record",
11486          "named": true
11487        },
11488        {
11489          "type": "exp_section_left",
11490          "named": true
11491        },
11492        {
11493          "type": "exp_section_right",
11494          "named": true
11495        },
11496        {
11497          "type": "exp_th_quoted_name",
11498          "named": true
11499        },
11500        {
11501          "type": "exp_tuple",
11502          "named": true
11503        },
11504        {
11505          "type": "exp_type_application",
11506          "named": true
11507        },
11508        {
11509          "type": "exp_unboxed_sum",
11510          "named": true
11511        },
11512        {
11513          "type": "exp_unboxed_tuple",
11514          "named": true
11515        },
11516        {
11517          "type": "let",
11518          "named": true
11519        },
11520        {
11521          "type": "quasiquote",
11522          "named": true
11523        },
11524        {
11525          "type": "splice",
11526          "named": true
11527        }
11528      ]
11529    }
11530  },
11531  {
11532    "type": "qualified_constructor",
11533    "named": true,
11534    "fields": {},
11535    "children": {
11536      "multiple": true,
11537      "required": true,
11538      "types": [
11539        {
11540          "type": "constructor",
11541          "named": true
11542        },
11543        {
11544          "type": "module",
11545          "named": true
11546        }
11547      ]
11548    }
11549  },
11550  {
11551    "type": "qualified_constructor_operator",
11552    "named": true,
11553    "fields": {},
11554    "children": {
11555      "multiple": true,
11556      "required": true,
11557      "types": [
11558        {
11559          "type": "constructor_operator",
11560          "named": true
11561        },
11562        {
11563          "type": "module",
11564          "named": true
11565        }
11566      ]
11567    }
11568  },
11569  {
11570    "type": "qualified_module",
11571    "named": true,
11572    "fields": {},
11573    "children": {
11574      "multiple": true,
11575      "required": true,
11576      "types": [
11577        {
11578          "type": "module",
11579          "named": true
11580        }
11581      ]
11582    }
11583  },
11584  {
11585    "type": "qualified_operator",
11586    "named": true,
11587    "fields": {},
11588    "children": {
11589      "multiple": true,
11590      "required": true,
11591      "types": [
11592        {
11593          "type": "module",
11594          "named": true
11595        },
11596        {
11597          "type": "operator",
11598          "named": true
11599        }
11600      ]
11601    }
11602  },
11603  {
11604    "type": "qualified_type",
11605    "named": true,
11606    "fields": {},
11607    "children": {
11608      "multiple": true,
11609      "required": true,
11610      "types": [
11611        {
11612          "type": "module",
11613          "named": true
11614        },
11615        {
11616          "type": "type",
11617          "named": true
11618        }
11619      ]
11620    }
11621  },
11622  {
11623    "type": "qualified_type_operator",
11624    "named": true,
11625    "fields": {},
11626    "children": {
11627      "multiple": true,
11628      "required": true,
11629      "types": [
11630        {
11631          "type": "module",
11632          "named": true
11633        },
11634        {
11635          "type": "type_operator",
11636          "named": true
11637        }
11638      ]
11639    }
11640  },
11641  {
11642    "type": "qualified_variable",
11643    "named": true,
11644    "fields": {},
11645    "children": {
11646      "multiple": true,
11647      "required": true,
11648      "types": [
11649        {
11650          "type": "module",
11651          "named": true
11652        },
11653        {
11654          "type": "variable",
11655          "named": true
11656        }
11657      ]
11658    }
11659  },
11660  {
11661    "type": "quantifiers",
11662    "named": true,
11663    "fields": {},
11664    "children": {
11665      "multiple": true,
11666      "required": true,
11667      "types": [
11668        {
11669          "type": "annotated_type_variable",
11670          "named": true
11671        },
11672        {
11673          "type": "type_variable",
11674          "named": true
11675        }
11676      ]
11677    }
11678  },
11679  {
11680    "type": "quasiquote",
11681    "named": true,
11682    "fields": {},
11683    "children": {
11684      "multiple": true,
11685      "required": false,
11686      "types": [
11687        {
11688          "type": "quasiquote_body",
11689          "named": true
11690        },
11691        {
11692          "type": "quoter",
11693          "named": true
11694        }
11695      ]
11696    }
11697  },
11698  {
11699    "type": "rec",
11700    "named": true,
11701    "fields": {},
11702    "children": {
11703      "multiple": true,
11704      "required": false,
11705      "types": [
11706        {
11707          "type": "stmt",
11708          "named": true
11709        }
11710      ]
11711    }
11712  },
11713  {
11714    "type": "record_fields",
11715    "named": true,
11716    "fields": {},
11717    "children": {
11718      "multiple": true,
11719      "required": true,
11720      "types": [
11721        {
11722          "type": "comma",
11723          "named": true
11724        },
11725        {
11726          "type": "field",
11727          "named": true
11728        }
11729      ]
11730    }
11731  },
11732  {
11733    "type": "role_annotation",
11734    "named": true,
11735    "fields": {},
11736    "children": {
11737      "multiple": true,
11738      "required": true,
11739      "types": [
11740        {
11741          "type": "constructor_operator",
11742          "named": true
11743        },
11744        {
11745          "type": "qualified_constructor_operator",
11746          "named": true
11747        },
11748        {
11749          "type": "qualified_type",
11750          "named": true
11751        },
11752        {
11753          "type": "qualified_type_operator",
11754          "named": true
11755        },
11756        {
11757          "type": "type",
11758          "named": true
11759        },
11760        {
11761          "type": "type_operator",
11762          "named": true
11763        },
11764        {
11765          "type": "type_role",
11766          "named": true
11767        }
11768      ]
11769    }
11770  },
11771  {
11772    "type": "safety",
11773    "named": true,
11774    "fields": {}
11775  },
11776  {
11777    "type": "signature",
11778    "named": true,
11779    "fields": {
11780      "lhs": {
11781        "multiple": true,
11782        "required": false,
11783        "types": [
11784          {
11785            "type": "(",
11786            "named": false
11787          },
11788          {
11789            "type": ")",
11790            "named": false
11791          },
11792          {
11793            "type": "comma",
11794            "named": true
11795          },
11796          {
11797            "type": "operator",
11798            "named": true
11799          },
11800          {
11801            "type": "variable",
11802            "named": true
11803          }
11804        ]
11805      },
11806      "name": {
11807        "multiple": true,
11808        "required": false,
11809        "types": [
11810          {
11811            "type": "(",
11812            "named": false
11813          },
11814          {
11815            "type": ")",
11816            "named": false
11817          },
11818          {
11819            "type": "operator",
11820            "named": true
11821          },
11822          {
11823            "type": "variable",
11824            "named": true
11825          }
11826        ]
11827      },
11828      "type": {
11829        "multiple": true,
11830        "required": true,
11831        "types": [
11832          {
11833            "type": "::",
11834            "named": false
11835          },
11836          {
11837            "type": "context",
11838            "named": true
11839          },
11840          {
11841            "type": "forall",
11842            "named": true
11843          },
11844          {
11845            "type": "fun",
11846            "named": true
11847          },
11848          {
11849            "type": "implicit_param",
11850            "named": true
11851          },
11852          {
11853            "type": "promoted",
11854            "named": true
11855          },
11856          {
11857            "type": "quasiquote",
11858            "named": true
11859          },
11860          {
11861            "type": "splice",
11862            "named": true
11863          },
11864          {
11865            "type": "type_apply",
11866            "named": true
11867          },
11868          {
11869            "type": "type_infix",
11870            "named": true
11871          },
11872          {
11873            "type": "type_list",
11874            "named": true
11875          },
11876          {
11877            "type": "type_literal",
11878            "named": true
11879          },
11880          {
11881            "type": "type_name",
11882            "named": true
11883          },
11884          {
11885            "type": "type_parens",
11886            "named": true
11887          },
11888          {
11889            "type": "type_star",
11890            "named": true
11891          },
11892          {
11893            "type": "type_tuple",
11894            "named": true
11895          },
11896          {
11897            "type": "type_unboxed_sum",
11898            "named": true
11899          },
11900          {
11901            "type": "type_unboxed_tuple",
11902            "named": true
11903          }
11904        ]
11905      }
11906    },
11907    "children": {
11908      "multiple": false,
11909      "required": false,
11910      "types": [
11911        {
11912          "type": "constructor",
11913          "named": true
11914        },
11915        {
11916          "type": "constructor_operator",
11917          "named": true
11918        }
11919      ]
11920    }
11921  },
11922  {
11923    "type": "splice",
11924    "named": true,
11925    "fields": {},
11926    "children": {
11927      "multiple": false,
11928      "required": true,
11929      "types": [
11930        {
11931          "type": "exp_name",
11932          "named": true
11933        },
11934        {
11935          "type": "exp_parens",
11936          "named": true
11937        }
11938      ]
11939    }
11940  },
11941  {
11942    "type": "stmt",
11943    "named": true,
11944    "fields": {
11945      "type": {
11946        "multiple": false,
11947        "required": false,
11948        "types": [
11949          {
11950            "type": "context",
11951            "named": true
11952          },
11953          {
11954            "type": "forall",
11955            "named": true
11956          },
11957          {
11958            "type": "fun",
11959            "named": true
11960          },
11961          {
11962            "type": "implicit_param",
11963            "named": true
11964          },
11965          {
11966            "type": "promoted",
11967            "named": true
11968          },
11969          {
11970            "type": "quasiquote",
11971            "named": true
11972          },
11973          {
11974            "type": "splice",
11975            "named": true
11976          },
11977          {
11978            "type": "type_apply",
11979            "named": true
11980          },
11981          {
11982            "type": "type_infix",
11983            "named": true
11984          },
11985          {
11986            "type": "type_list",
11987            "named": true
11988          },
11989          {
11990            "type": "type_literal",
11991            "named": true
11992          },
11993          {
11994            "type": "type_name",
11995            "named": true
11996          },
11997          {
11998            "type": "type_parens",
11999            "named": true
12000          },
12001          {
12002            "type": "type_star",
12003            "named": true
12004          },
12005          {
12006            "type": "type_tuple",
12007            "named": true
12008          },
12009          {
12010            "type": "type_unboxed_sum",
12011            "named": true
12012          },
12013          {
12014            "type": "type_unboxed_tuple",
12015            "named": true
12016          }
12017        ]
12018      }
12019    },
12020    "children": {
12021      "multiple": false,
12022      "required": true,
12023      "types": [
12024        {
12025          "type": "bind_pattern",
12026          "named": true
12027        },
12028        {
12029          "type": "exp_apply",
12030          "named": true
12031        },
12032        {
12033          "type": "exp_arithmetic_sequence",
12034          "named": true
12035        },
12036        {
12037          "type": "exp_case",
12038          "named": true
12039        },
12040        {
12041          "type": "exp_cond",
12042          "named": true
12043        },
12044        {
12045          "type": "exp_do",
12046          "named": true
12047        },
12048        {
12049          "type": "exp_if_guard",
12050          "named": true
12051        },
12052        {
12053          "type": "exp_infix",
12054          "named": true
12055        },
12056        {
12057          "type": "exp_lambda",
12058          "named": true
12059        },
12060        {
12061          "type": "exp_lambda_case",
12062          "named": true
12063        },
12064        {
12065          "type": "exp_let_in",
12066          "named": true
12067        },
12068        {
12069          "type": "exp_list",
12070          "named": true
12071        },
12072        {
12073          "type": "exp_list_comprehension",
12074          "named": true
12075        },
12076        {
12077          "type": "exp_literal",
12078          "named": true
12079        },
12080        {
12081          "type": "exp_name",
12082          "named": true
12083        },
12084        {
12085          "type": "exp_negation",
12086          "named": true
12087        },
12088        {
12089          "type": "exp_parens",
12090          "named": true
12091        },
12092        {
12093          "type": "exp_record",
12094          "named": true
12095        },
12096        {
12097          "type": "exp_section_left",
12098          "named": true
12099        },
12100        {
12101          "type": "exp_section_right",
12102          "named": true
12103        },
12104        {
12105          "type": "exp_th_quoted_name",
12106          "named": true
12107        },
12108        {
12109          "type": "exp_tuple",
12110          "named": true
12111        },
12112        {
12113          "type": "exp_type_application",
12114          "named": true
12115        },
12116        {
12117          "type": "exp_unboxed_sum",
12118          "named": true
12119        },
12120        {
12121          "type": "exp_unboxed_tuple",
12122          "named": true
12123        },
12124        {
12125          "type": "let",
12126          "named": true
12127        },
12128        {
12129          "type": "quasiquote",
12130          "named": true
12131        },
12132        {
12133          "type": "rec",
12134          "named": true
12135        },
12136        {
12137          "type": "splice",
12138          "named": true
12139        }
12140      ]
12141    }
12142  },
12143  {
12144    "type": "strict_type",
12145    "named": true,
12146    "fields": {},
12147    "children": {
12148      "multiple": false,
12149      "required": true,
12150      "types": [
12151        {
12152          "type": "promoted",
12153          "named": true
12154        },
12155        {
12156          "type": "quasiquote",
12157          "named": true
12158        },
12159        {
12160          "type": "splice",
12161          "named": true
12162        },
12163        {
12164          "type": "type_list",
12165          "named": true
12166        },
12167        {
12168          "type": "type_literal",
12169          "named": true
12170        },
12171        {
12172          "type": "type_name",
12173          "named": true
12174        },
12175        {
12176          "type": "type_parens",
12177          "named": true
12178        },
12179        {
12180          "type": "type_star",
12181          "named": true
12182        },
12183        {
12184          "type": "type_tuple",
12185          "named": true
12186        },
12187        {
12188          "type": "type_unboxed_sum",
12189          "named": true
12190        },
12191        {
12192          "type": "type_unboxed_tuple",
12193          "named": true
12194        }
12195      ]
12196    }
12197  },
12198  {
12199    "type": "ticked",
12200    "named": true,
12201    "fields": {},
12202    "children": {
12203      "multiple": false,
12204      "required": true,
12205      "types": [
12206        {
12207          "type": "qualified_type",
12208          "named": true
12209        },
12210        {
12211          "type": "type",
12212          "named": true
12213        }
12214      ]
12215    }
12216  },
12217  {
12218    "type": "top_splice",
12219    "named": true,
12220    "fields": {},
12221    "children": {
12222      "multiple": false,
12223      "required": true,
12224      "types": [
12225        {
12226          "type": "exp_apply",
12227          "named": true
12228        },
12229        {
12230          "type": "exp_arithmetic_sequence",
12231          "named": true
12232        },
12233        {
12234          "type": "exp_case",
12235          "named": true
12236        },
12237        {
12238          "type": "exp_cond",
12239          "named": true
12240        },
12241        {
12242          "type": "exp_do",
12243          "named": true
12244        },
12245        {
12246          "type": "exp_if_guard",
12247          "named": true
12248        },
12249        {
12250          "type": "exp_infix",
12251          "named": true
12252        },
12253        {
12254          "type": "exp_lambda",
12255          "named": true
12256        },
12257        {
12258          "type": "exp_lambda_case",
12259          "named": true
12260        },
12261        {
12262          "type": "exp_let_in",
12263          "named": true
12264        },
12265        {
12266          "type": "exp_list",
12267          "named": true
12268        },
12269        {
12270          "type": "exp_list_comprehension",
12271          "named": true
12272        },
12273        {
12274          "type": "exp_literal",
12275          "named": true
12276        },
12277        {
12278          "type": "exp_name",
12279          "named": true
12280        },
12281        {
12282          "type": "exp_negation",
12283          "named": true
12284        },
12285        {
12286          "type": "exp_parens",
12287          "named": true
12288        },
12289        {
12290          "type": "exp_record",
12291          "named": true
12292        },
12293        {
12294          "type": "exp_section_left",
12295          "named": true
12296        },
12297        {
12298          "type": "exp_section_right",
12299          "named": true
12300        },
12301        {
12302          "type": "exp_th_quoted_name",
12303          "named": true
12304        },
12305        {
12306          "type": "exp_tuple",
12307          "named": true
12308        },
12309        {
12310          "type": "exp_type_application",
12311          "named": true
12312        },
12313        {
12314          "type": "exp_unboxed_sum",
12315          "named": true
12316        },
12317        {
12318          "type": "exp_unboxed_tuple",
12319          "named": true
12320        },
12321        {
12322          "type": "quasiquote",
12323          "named": true
12324        },
12325        {
12326          "type": "splice",
12327          "named": true
12328        }
12329      ]
12330    }
12331  },
12332  {
12333    "type": "tycon_arrow",
12334    "named": true,
12335    "fields": {}
12336  },
12337  {
12338    "type": "type",
12339    "named": true,
12340    "fields": {}
12341  },
12342  {
12343    "type": "type_alias",
12344    "named": true,
12345    "fields": {
12346      "name": {
12347        "multiple": true,
12348        "required": false,
12349        "types": [
12350          {
12351            "type": "(",
12352            "named": false
12353          },
12354          {
12355            "type": ")",
12356            "named": false
12357          },
12358          {
12359            "type": "constructor_operator",
12360            "named": true
12361          },
12362          {
12363            "type": "type",
12364            "named": true
12365          },
12366          {
12367            "type": "type_operator",
12368            "named": true
12369          }
12370        ]
12371      },
12372      "type": {
12373        "multiple": false,
12374        "required": false,
12375        "types": [
12376          {
12377            "type": "context",
12378            "named": true
12379          },
12380          {
12381            "type": "forall",
12382            "named": true
12383          },
12384          {
12385            "type": "fun",
12386            "named": true
12387          },
12388          {
12389            "type": "implicit_param",
12390            "named": true
12391          },
12392          {
12393            "type": "promoted",
12394            "named": true
12395          },
12396          {
12397            "type": "quasiquote",
12398            "named": true
12399          },
12400          {
12401            "type": "splice",
12402            "named": true
12403          },
12404          {
12405            "type": "type_apply",
12406            "named": true
12407          },
12408          {
12409            "type": "type_infix",
12410            "named": true
12411          },
12412          {
12413            "type": "type_list",
12414            "named": true
12415          },
12416          {
12417            "type": "type_literal",
12418            "named": true
12419          },
12420          {
12421            "type": "type_name",
12422            "named": true
12423          },
12424          {
12425            "type": "type_parens",
12426            "named": true
12427          },
12428          {
12429            "type": "type_star",
12430            "named": true
12431          },
12432          {
12433            "type": "type_tuple",
12434            "named": true
12435          },
12436          {
12437            "type": "type_unboxed_sum",
12438            "named": true
12439          },
12440          {
12441            "type": "type_unboxed_tuple",
12442            "named": true
12443          }
12444        ]
12445      }
12446    },
12447    "children": {
12448      "multiple": true,
12449      "required": false,
12450      "types": [
12451        {
12452          "type": "annotated_type_variable",
12453          "named": true
12454        },
12455        {
12456          "type": "context",
12457          "named": true
12458        },
12459        {
12460          "type": "forall",
12461          "named": true
12462        },
12463        {
12464          "type": "fun",
12465          "named": true
12466        },
12467        {
12468          "type": "implicit_param",
12469          "named": true
12470        },
12471        {
12472          "type": "promoted",
12473          "named": true
12474        },
12475        {
12476          "type": "quasiquote",
12477          "named": true
12478        },
12479        {
12480          "type": "splice",
12481          "named": true
12482        },
12483        {
12484          "type": "type_apply",
12485          "named": true
12486        },
12487        {
12488          "type": "type_infix",
12489          "named": true
12490        },
12491        {
12492          "type": "type_list",
12493          "named": true
12494        },
12495        {
12496          "type": "type_literal",
12497          "named": true
12498        },
12499        {
12500          "type": "type_name",
12501          "named": true
12502        },
12503        {
12504          "type": "type_parens",
12505          "named": true
12506        },
12507        {
12508          "type": "type_star",
12509          "named": true
12510        },
12511        {
12512          "type": "type_tuple",
12513          "named": true
12514        },
12515        {
12516          "type": "type_unboxed_sum",
12517          "named": true
12518        },
12519        {
12520          "type": "type_unboxed_tuple",
12521          "named": true
12522        },
12523        {
12524          "type": "type_variable",
12525          "named": true
12526        }
12527      ]
12528    }
12529  },
12530  {
12531    "type": "type_apply",
12532    "named": true,
12533    "fields": {},
12534    "children": {
12535      "multiple": true,
12536      "required": true,
12537      "types": [
12538        {
12539          "type": "promoted",
12540          "named": true
12541        },
12542        {
12543          "type": "quasiquote",
12544          "named": true
12545        },
12546        {
12547          "type": "splice",
12548          "named": true
12549        },
12550        {
12551          "type": "type_list",
12552          "named": true
12553        },
12554        {
12555          "type": "type_literal",
12556          "named": true
12557        },
12558        {
12559          "type": "type_name",
12560          "named": true
12561        },
12562        {
12563          "type": "type_parens",
12564          "named": true
12565        },
12566        {
12567          "type": "type_star",
12568          "named": true
12569        },
12570        {
12571          "type": "type_tuple",
12572          "named": true
12573        },
12574        {
12575          "type": "type_unboxed_sum",
12576          "named": true
12577        },
12578        {
12579          "type": "type_unboxed_tuple",
12580          "named": true
12581        }
12582      ]
12583    }
12584  },
12585  {
12586    "type": "type_family",
12587    "named": true,
12588    "fields": {
12589      "type": {
12590        "multiple": false,
12591        "required": false,
12592        "types": [
12593          {
12594            "type": "context",
12595            "named": true
12596          },
12597          {
12598            "type": "forall",
12599            "named": true
12600          },
12601          {
12602            "type": "fun",
12603            "named": true
12604          },
12605          {
12606            "type": "implicit_param",
12607            "named": true
12608          },
12609          {
12610            "type": "promoted",
12611            "named": true
12612          },
12613          {
12614            "type": "quasiquote",
12615            "named": true
12616          },
12617          {
12618            "type": "splice",
12619            "named": true
12620          },
12621          {
12622            "type": "type_apply",
12623            "named": true
12624          },
12625          {
12626            "type": "type_infix",
12627            "named": true
12628          },
12629          {
12630            "type": "type_list",
12631            "named": true
12632          },
12633          {
12634            "type": "type_literal",
12635            "named": true
12636          },
12637          {
12638            "type": "type_name",
12639            "named": true
12640          },
12641          {
12642            "type": "type_parens",
12643            "named": true
12644          },
12645          {
12646            "type": "type_star",
12647            "named": true
12648          },
12649          {
12650            "type": "type_tuple",
12651            "named": true
12652          },
12653          {
12654            "type": "type_unboxed_sum",
12655            "named": true
12656          },
12657          {
12658            "type": "type_unboxed_tuple",
12659            "named": true
12660          }
12661        ]
12662      }
12663    },
12664    "children": {
12665      "multiple": true,
12666      "required": true,
12667      "types": [
12668        {
12669          "type": "equation",
12670          "named": true
12671        },
12672        {
12673          "type": "head",
12674          "named": true
12675        },
12676        {
12677          "type": "where",
12678          "named": true
12679        }
12680      ]
12681    }
12682  },
12683  {
12684    "type": "type_infix",
12685    "named": true,
12686    "fields": {
12687      "left": {
12688        "multiple": false,
12689        "required": false,
12690        "types": [
12691          {
12692            "type": "promoted",
12693            "named": true
12694          },
12695          {
12696            "type": "quasiquote",
12697            "named": true
12698          },
12699          {
12700            "type": "splice",
12701            "named": true
12702          },
12703          {
12704            "type": "type_apply",
12705            "named": true
12706          },
12707          {
12708            "type": "type_list",
12709            "named": true
12710          },
12711          {
12712            "type": "type_literal",
12713            "named": true
12714          },
12715          {
12716            "type": "type_name",
12717            "named": true
12718          },
12719          {
12720            "type": "type_parens",
12721            "named": true
12722          },
12723          {
12724            "type": "type_star",
12725            "named": true
12726          },
12727          {
12728            "type": "type_tuple",
12729            "named": true
12730          },
12731          {
12732            "type": "type_unboxed_sum",
12733            "named": true
12734          },
12735          {
12736            "type": "type_unboxed_tuple",
12737            "named": true
12738          }
12739        ]
12740      },
12741      "name": {
12742        "multiple": false,
12743        "required": false,
12744        "types": [
12745          {
12746            "type": "constructor_operator",
12747            "named": true
12748          },
12749          {
12750            "type": "ticked",
12751            "named": true
12752          },
12753          {
12754            "type": "type_operator",
12755            "named": true
12756          }
12757        ]
12758      },
12759      "op": {
12760        "multiple": false,
12761        "required": false,
12762        "types": [
12763          {
12764            "type": "constructor_operator",
12765            "named": true
12766          },
12767          {
12768            "type": "promoted",
12769            "named": true
12770          },
12771          {
12772            "type": "qualified_constructor_operator",
12773            "named": true
12774          },
12775          {
12776            "type": "qualified_type_operator",
12777            "named": true
12778          },
12779          {
12780            "type": "ticked",
12781            "named": true
12782          },
12783          {
12784            "type": "type_operator",
12785            "named": true
12786          }
12787        ]
12788      },
12789      "right": {
12790        "multiple": false,
12791        "required": false,
12792        "types": [
12793          {
12794            "type": "promoted",
12795            "named": true
12796          },
12797          {
12798            "type": "quasiquote",
12799            "named": true
12800          },
12801          {
12802            "type": "splice",
12803            "named": true
12804          },
12805          {
12806            "type": "type_apply",
12807            "named": true
12808          },
12809          {
12810            "type": "type_infix",
12811            "named": true
12812          },
12813          {
12814            "type": "type_list",
12815            "named": true
12816          },
12817          {
12818            "type": "type_literal",
12819            "named": true
12820          },
12821          {
12822            "type": "type_name",
12823            "named": true
12824          },
12825          {
12826            "type": "type_parens",
12827            "named": true
12828          },
12829          {
12830            "type": "type_star",
12831            "named": true
12832          },
12833          {
12834            "type": "type_tuple",
12835            "named": true
12836          },
12837          {
12838            "type": "type_unboxed_sum",
12839            "named": true
12840          },
12841          {
12842            "type": "type_unboxed_tuple",
12843            "named": true
12844          }
12845        ]
12846      }
12847    },
12848    "children": {
12849      "multiple": true,
12850      "required": false,
12851      "types": [
12852        {
12853          "type": "annotated_type_variable",
12854          "named": true
12855        },
12856        {
12857          "type": "type_variable",
12858          "named": true
12859        }
12860      ]
12861    }
12862  },
12863  {
12864    "type": "type_instance",
12865    "named": true,
12866    "fields": {},
12867    "children": {
12868      "multiple": true,
12869      "required": true,
12870      "types": [
12871        {
12872          "type": "context",
12873          "named": true
12874        },
12875        {
12876          "type": "forall",
12877          "named": true
12878        },
12879        {
12880          "type": "fun",
12881          "named": true
12882        },
12883        {
12884          "type": "implicit_param",
12885          "named": true
12886        },
12887        {
12888          "type": "promoted",
12889          "named": true
12890        },
12891        {
12892          "type": "quasiquote",
12893          "named": true
12894        },
12895        {
12896          "type": "splice",
12897          "named": true
12898        },
12899        {
12900          "type": "type_apply",
12901          "named": true
12902        },
12903        {
12904          "type": "type_infix",
12905          "named": true
12906        },
12907        {
12908          "type": "type_list",
12909          "named": true
12910        },
12911        {
12912          "type": "type_literal",
12913          "named": true
12914        },
12915        {
12916          "type": "type_name",
12917          "named": true
12918        },
12919        {
12920          "type": "type_parens",
12921          "named": true
12922        },
12923        {
12924          "type": "type_star",
12925          "named": true
12926        },
12927        {
12928          "type": "type_tuple",
12929          "named": true
12930        },
12931        {
12932          "type": "type_unboxed_sum",
12933          "named": true
12934        },
12935        {
12936          "type": "type_unboxed_tuple",
12937          "named": true
12938        }
12939      ]
12940    }
12941  },
12942  {
12943    "type": "type_list",
12944    "named": true,
12945    "fields": {},
12946    "children": {
12947      "multiple": true,
12948      "required": true,
12949      "types": [
12950        {
12951          "type": "comma",
12952          "named": true
12953        },
12954        {
12955          "type": "context",
12956          "named": true
12957        },
12958        {
12959          "type": "forall",
12960          "named": true
12961        },
12962        {
12963          "type": "fun",
12964          "named": true
12965        },
12966        {
12967          "type": "implicit_param",
12968          "named": true
12969        },
12970        {
12971          "type": "promoted",
12972          "named": true
12973        },
12974        {
12975          "type": "quasiquote",
12976          "named": true
12977        },
12978        {
12979          "type": "splice",
12980          "named": true
12981        },
12982        {
12983          "type": "type_apply",
12984          "named": true
12985        },
12986        {
12987          "type": "type_infix",
12988          "named": true
12989        },
12990        {
12991          "type": "type_list",
12992          "named": true
12993        },
12994        {
12995          "type": "type_literal",
12996          "named": true
12997        },
12998        {
12999          "type": "type_name",
13000          "named": true
13001        },
13002        {
13003          "type": "type_parens",
13004          "named": true
13005        },
13006        {
13007          "type": "type_star",
13008          "named": true
13009        },
13010        {
13011          "type": "type_tuple",
13012          "named": true
13013        },
13014        {
13015          "type": "type_unboxed_sum",
13016          "named": true
13017        },
13018        {
13019          "type": "type_unboxed_tuple",
13020          "named": true
13021        }
13022      ]
13023    }
13024  },
13025  {
13026    "type": "type_literal",
13027    "named": true,
13028    "fields": {},
13029    "children": {
13030      "multiple": false,
13031      "required": true,
13032      "types": [
13033        {
13034          "type": "char",
13035          "named": true
13036        },
13037        {
13038          "type": "con_list",
13039          "named": true
13040        },
13041        {
13042          "type": "con_tuple",
13043          "named": true
13044        },
13045        {
13046          "type": "con_unit",
13047          "named": true
13048        },
13049        {
13050          "type": "float",
13051          "named": true
13052        },
13053        {
13054          "type": "integer",
13055          "named": true
13056        },
13057        {
13058          "type": "string",
13059          "named": true
13060        }
13061      ]
13062    }
13063  },
13064  {
13065    "type": "type_name",
13066    "named": true,
13067    "fields": {},
13068    "children": {
13069      "multiple": false,
13070      "required": true,
13071      "types": [
13072        {
13073          "type": "annotated_type_variable",
13074          "named": true
13075        },
13076        {
13077          "type": "constructor_operator",
13078          "named": true
13079        },
13080        {
13081          "type": "promoted",
13082          "named": true
13083        },
13084        {
13085          "type": "qualified_constructor_operator",
13086          "named": true
13087        },
13088        {
13089          "type": "qualified_type",
13090          "named": true
13091        },
13092        {
13093          "type": "qualified_type_operator",
13094          "named": true
13095        },
13096        {
13097          "type": "tycon_arrow",
13098          "named": true
13099        },
13100        {
13101          "type": "type",
13102          "named": true
13103        },
13104        {
13105          "type": "type_operator",
13106          "named": true
13107        },
13108        {
13109          "type": "type_variable",
13110          "named": true
13111        }
13112      ]
13113    }
13114  },
13115  {
13116    "type": "type_parens",
13117    "named": true,
13118    "fields": {},
13119    "children": {
13120      "multiple": false,
13121      "required": true,
13122      "types": [
13123        {
13124          "type": "context",
13125          "named": true
13126        },
13127        {
13128          "type": "forall",
13129          "named": true
13130        },
13131        {
13132          "type": "fun",
13133          "named": true
13134        },
13135        {
13136          "type": "implicit_param",
13137          "named": true
13138        },
13139        {
13140          "type": "promoted",
13141          "named": true
13142        },
13143        {
13144          "type": "quasiquote",
13145          "named": true
13146        },
13147        {
13148          "type": "splice",
13149          "named": true
13150        },
13151        {
13152          "type": "type_apply",
13153          "named": true
13154        },
13155        {
13156          "type": "type_infix",
13157          "named": true
13158        },
13159        {
13160          "type": "type_list",
13161          "named": true
13162        },
13163        {
13164          "type": "type_literal",
13165          "named": true
13166        },
13167        {
13168          "type": "type_name",
13169          "named": true
13170        },
13171        {
13172          "type": "type_parens",
13173          "named": true
13174        },
13175        {
13176          "type": "type_star",
13177          "named": true
13178        },
13179        {
13180          "type": "type_tuple",
13181          "named": true
13182        },
13183        {
13184          "type": "type_unboxed_sum",
13185          "named": true
13186        },
13187        {
13188          "type": "type_unboxed_tuple",
13189          "named": true
13190        }
13191      ]
13192    }
13193  },
13194  {
13195    "type": "type_role",
13196    "named": true,
13197    "fields": {}
13198  },
13199  {
13200    "type": "type_tuple",
13201    "named": true,
13202    "fields": {},
13203    "children": {
13204      "multiple": true,
13205      "required": false,
13206      "types": [
13207        {
13208          "type": "comma",
13209          "named": true
13210        },
13211        {
13212          "type": "context",
13213          "named": true
13214        },
13215        {
13216          "type": "forall",
13217          "named": true
13218        },
13219        {
13220          "type": "fun",
13221          "named": true
13222        },
13223        {
13224          "type": "implicit_param",
13225          "named": true
13226        },
13227        {
13228          "type": "promoted",
13229          "named": true
13230        },
13231        {
13232          "type": "quasiquote",
13233          "named": true
13234        },
13235        {
13236          "type": "splice",
13237          "named": true
13238        },
13239        {
13240          "type": "type_apply",
13241          "named": true
13242        },
13243        {
13244          "type": "type_infix",
13245          "named": true
13246        },
13247        {
13248          "type": "type_list",
13249          "named": true
13250        },
13251        {
13252          "type": "type_literal",
13253          "named": true
13254        },
13255        {
13256          "type": "type_name",
13257          "named": true
13258        },
13259        {
13260          "type": "type_parens",
13261          "named": true
13262        },
13263        {
13264          "type": "type_star",
13265          "named": true
13266        },
13267        {
13268          "type": "type_tuple",
13269          "named": true
13270        },
13271        {
13272          "type": "type_unboxed_sum",
13273          "named": true
13274        },
13275        {
13276          "type": "type_unboxed_tuple",
13277          "named": true
13278        }
13279      ]
13280    }
13281  },
13282  {
13283    "type": "type_unboxed_sum",
13284    "named": true,
13285    "fields": {},
13286    "children": {
13287      "multiple": true,
13288      "required": false,
13289      "types": [
13290        {
13291          "type": "context",
13292          "named": true
13293        },
13294        {
13295          "type": "forall",
13296          "named": true
13297        },
13298        {
13299          "type": "fun",
13300          "named": true
13301        },
13302        {
13303          "type": "implicit_param",
13304          "named": true
13305        },
13306        {
13307          "type": "promoted",
13308          "named": true
13309        },
13310        {
13311          "type": "quasiquote",
13312          "named": true
13313        },
13314        {
13315          "type": "splice",
13316          "named": true
13317        },
13318        {
13319          "type": "type_apply",
13320          "named": true
13321        },
13322        {
13323          "type": "type_infix",
13324          "named": true
13325        },
13326        {
13327          "type": "type_list",
13328          "named": true
13329        },
13330        {
13331          "type": "type_literal",
13332          "named": true
13333        },
13334        {
13335          "type": "type_name",
13336          "named": true
13337        },
13338        {
13339          "type": "type_parens",
13340          "named": true
13341        },
13342        {
13343          "type": "type_star",
13344          "named": true
13345        },
13346        {
13347          "type": "type_tuple",
13348          "named": true
13349        },
13350        {
13351          "type": "type_unboxed_sum",
13352          "named": true
13353        },
13354        {
13355          "type": "type_unboxed_tuple",
13356          "named": true
13357        }
13358      ]
13359    }
13360  },
13361  {
13362    "type": "type_unboxed_tuple",
13363    "named": true,
13364    "fields": {},
13365    "children": {
13366      "multiple": true,
13367      "required": false,
13368      "types": [
13369        {
13370          "type": "comma",
13371          "named": true
13372        },
13373        {
13374          "type": "context",
13375          "named": true
13376        },
13377        {
13378          "type": "forall",
13379          "named": true
13380        },
13381        {
13382          "type": "fun",
13383          "named": true
13384        },
13385        {
13386          "type": "implicit_param",
13387          "named": true
13388        },
13389        {
13390          "type": "promoted",
13391          "named": true
13392        },
13393        {
13394          "type": "quasiquote",
13395          "named": true
13396        },
13397        {
13398          "type": "splice",
13399          "named": true
13400        },
13401        {
13402          "type": "type_apply",
13403          "named": true
13404        },
13405        {
13406          "type": "type_infix",
13407          "named": true
13408        },
13409        {
13410          "type": "type_list",
13411          "named": true
13412        },
13413        {
13414          "type": "type_literal",
13415          "named": true
13416        },
13417        {
13418          "type": "type_name",
13419          "named": true
13420        },
13421        {
13422          "type": "type_parens",
13423          "named": true
13424        },
13425        {
13426          "type": "type_star",
13427          "named": true
13428        },
13429        {
13430          "type": "type_tuple",
13431          "named": true
13432        },
13433        {
13434          "type": "type_unboxed_sum",
13435          "named": true
13436        },
13437        {
13438          "type": "type_unboxed_tuple",
13439          "named": true
13440        }
13441      ]
13442    }
13443  },
13444  {
13445    "type": "type_variable",
13446    "named": true,
13447    "fields": {}
13448  },
13449  {
13450    "type": "variable",
13451    "named": true,
13452    "fields": {}
13453  },
13454  {
13455    "type": "varop",
13456    "named": true,
13457    "fields": {},
13458    "children": {
13459      "multiple": false,
13460      "required": true,
13461      "types": [
13462        {
13463          "type": "operator",
13464          "named": true
13465        },
13466        {
13467          "type": "variable",
13468          "named": true
13469        }
13470      ]
13471    }
13472  },
13473  {
13474    "type": "via",
13475    "named": true,
13476    "fields": {},
13477    "children": {
13478      "multiple": false,
13479      "required": true,
13480      "types": [
13481        {
13482          "type": "promoted",
13483          "named": true
13484        },
13485        {
13486          "type": "quasiquote",
13487          "named": true
13488        },
13489        {
13490          "type": "splice",
13491          "named": true
13492        },
13493        {
13494          "type": "type_list",
13495          "named": true
13496        },
13497        {
13498          "type": "type_literal",
13499          "named": true
13500        },
13501        {
13502          "type": "type_name",
13503          "named": true
13504        },
13505        {
13506          "type": "type_parens",
13507          "named": true
13508        },
13509        {
13510          "type": "type_star",
13511          "named": true
13512        },
13513        {
13514          "type": "type_tuple",
13515          "named": true
13516        },
13517        {
13518          "type": "type_unboxed_sum",
13519          "named": true
13520        },
13521        {
13522          "type": "type_unboxed_tuple",
13523          "named": true
13524        }
13525      ]
13526    }
13527  },
13528  {
13529    "type": "'",
13530    "named": false
13531  },
13532  {
13533    "type": "''",
13534    "named": false
13535  },
13536  {
13537    "type": "(",
13538    "named": false
13539  },
13540  {
13541    "type": "(# ",
13542    "named": false
13543  },
13544  {
13545    "type": ")",
13546    "named": false
13547  },
13548  {
13549    "type": "-",
13550    "named": false
13551  },
13552  {
13553    "type": "->",
13554    "named": false
13555  },
13556  {
13557    "type": ".",
13558    "named": false
13559  },
13560  {
13561    "type": "..",
13562    "named": false
13563  },
13564  {
13565    "type": "::",
13566    "named": false
13567  },
13568  {
13569    "type": ";",
13570    "named": false
13571  },
13572  {
13573    "type": "<-",
13574    "named": false
13575  },
13576  {
13577    "type": "=",
13578    "named": false
13579  },
13580  {
13581    "type": "=>",
13582    "named": false
13583  },
13584  {
13585    "type": "@",
13586    "named": false
13587  },
13588  {
13589    "type": "[",
13590    "named": false
13591  },
13592  {
13593    "type": "\\",
13594    "named": false
13595  },
13596  {
13597    "type": "]",
13598    "named": false
13599  },
13600  {
13601    "type": "_",
13602    "named": false
13603  },
13604  {
13605    "type": "`",
13606    "named": false
13607  },
13608  {
13609    "type": "all_names",
13610    "named": true
13611  },
13612  {
13613    "type": "anyclass",
13614    "named": false
13615  },
13616  {
13617    "type": "as",
13618    "named": false
13619  },
13620  {
13621    "type": "capi",
13622    "named": false
13623  },
13624  {
13625    "type": "case",
13626    "named": false
13627  },
13628  {
13629    "type": "ccall",
13630    "named": false
13631  },
13632  {
13633    "type": "char",
13634    "named": true
13635  },
13636  {
13637    "type": "class",
13638    "named": false
13639  },
13640  {
13641    "type": "comma",
13642    "named": true
13643  },
13644  {
13645    "type": "comment",
13646    "named": true
13647  },
13648  {
13649    "type": "cplusplus",
13650    "named": false
13651  },
13652  {
13653    "type": "cpp",
13654    "named": true
13655  },
13656  {
13657    "type": "data",
13658    "named": false
13659  },
13660  {
13661    "type": "default",
13662    "named": false
13663  },
13664  {
13665    "type": "deriving",
13666    "named": false
13667  },
13668  {
13669    "type": "do",
13670    "named": false
13671  },
13672  {
13673    "type": "dotnet",
13674    "named": false
13675  },
13676  {
13677    "type": "else",
13678    "named": false
13679  },
13680  {
13681    "type": "empty_file",
13682    "named": true
13683  },
13684  {
13685    "type": "exp_sum_empty",
13686    "named": true
13687  },
13688  {
13689    "type": "export",
13690    "named": false
13691  },
13692  {
13693    "type": "family",
13694    "named": false
13695  },
13696  {
13697    "type": "float",
13698    "named": true
13699  },
13700  {
13701    "type": "forall",
13702    "named": false
13703  },
13704  {
13705    "type": "foreign",
13706    "named": false
13707  },
13708  {
13709    "type": "hiding",
13710    "named": false
13711  },
13712  {
13713    "type": "if",
13714    "named": false
13715  },
13716  {
13717    "type": "implicit_parid",
13718    "named": true
13719  },
13720  {
13721    "type": "import",
13722    "named": false
13723  },
13724  {
13725    "type": "import_package",
13726    "named": true
13727  },
13728  {
13729    "type": "in",
13730    "named": false
13731  },
13732  {
13733    "type": "infix",
13734    "named": false
13735  },
13736  {
13737    "type": "infixl",
13738    "named": false
13739  },
13740  {
13741    "type": "infixr",
13742    "named": false
13743  },
13744  {
13745    "type": "instance",
13746    "named": false
13747  },
13748  {
13749    "type": "interruptible",
13750    "named": false
13751  },
13752  {
13753    "type": "jvm",
13754    "named": false
13755  },
13756  {
13757    "type": "label",
13758    "named": true
13759  },
13760  {
13761    "type": "let",
13762    "named": false
13763  },
13764  {
13765    "type": "mdo",
13766    "named": false
13767  },
13768  {
13769    "type": "module",
13770    "named": false
13771  },
13772  {
13773    "type": "newtype",
13774    "named": false
13775  },
13776  {
13777    "type": "nominal",
13778    "named": false
13779  },
13780  {
13781    "type": "of",
13782    "named": false
13783  },
13784  {
13785    "type": "pattern",
13786    "named": false
13787  },
13788  {
13789    "type": "phantom",
13790    "named": false
13791  },
13792  {
13793    "type": "pragma",
13794    "named": true
13795  },
13796  {
13797    "type": "prim",
13798    "named": false
13799  },
13800  {
13801    "type": "qualified",
13802    "named": false
13803  },
13804  {
13805    "type": "quasiquote_body",
13806    "named": true
13807  },
13808  {
13809    "type": "quoter",
13810    "named": true
13811  },
13812  {
13813    "type": "rec",
13814    "named": false
13815  },
13816  {
13817    "type": "representational",
13818    "named": false
13819  },
13820  {
13821    "type": "role",
13822    "named": false
13823  },
13824  {
13825    "type": "safe",
13826    "named": false
13827  },
13828  {
13829    "type": "stdcall",
13830    "named": false
13831  },
13832  {
13833    "type": "stock",
13834    "named": false
13835  },
13836  {
13837    "type": "string",
13838    "named": true
13839  },
13840  {
13841    "type": "then",
13842    "named": false
13843  },
13844  {
13845    "type": "type",
13846    "named": false
13847  },
13848  {
13849    "type": "type_operator",
13850    "named": true
13851  },
13852  {
13853    "type": "type_star",
13854    "named": true
13855  },
13856  {
13857    "type": "unsafe",
13858    "named": false
13859  },
13860  {
13861    "type": "via",
13862    "named": false
13863  },
13864  {
13865    "type": "where",
13866    "named": true
13867  },
13868  {
13869    "type": "wildcard",
13870    "named": true
13871  },
13872  {
13873    "type": "{",
13874    "named": false
13875  },
13876  {
13877    "type": "|",
13878    "named": false
13879  },
13880  {
13881    "type": "|]",
13882    "named": false
13883  },
13884  {
13885    "type": "}",
13886    "named": false
13887  },
13888  {
13889    "type": "~",
13890    "named": false
13891  },
13892  {
13893    "type": "∀",
13894    "named": false
13895  }
13896]