1ParseOk
2  ( Module
3      SrcSpanInfo
4        { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 1 8 1
5        , srcInfoPoints =
6            [ SrcSpan "tests/examples/GenericTree.hs" 1 1 1 1
7            , SrcSpan "tests/examples/GenericTree.hs" 2 1 2 1
8            , SrcSpan "tests/examples/GenericTree.hs" 2 1 2 1
9            , SrcSpan "tests/examples/GenericTree.hs" 4 1 4 1
10            , SrcSpan "tests/examples/GenericTree.hs" 6 1 6 1
11            , SrcSpan "tests/examples/GenericTree.hs" 7 1 7 1
12            , SrcSpan "tests/examples/GenericTree.hs" 8 1 8 1
13            , SrcSpan "tests/examples/GenericTree.hs" 8 1 8 1
14            ]
15        }
16      (Just
17         (ModuleHead
18            SrcSpanInfo
19              { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 2 1 2 25
20              , srcInfoPoints =
21                  [ SrcSpan "tests/examples/GenericTree.hs" 2 1 2 7
22                  , SrcSpan "tests/examples/GenericTree.hs" 2 20 2 25
23                  ]
24              }
25            (ModuleName
26               SrcSpanInfo
27                 { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 2 8 2 19
28                 , srcInfoPoints = []
29                 }
30               "GenericTree")
31            Nothing
32            Nothing))
33      [ LanguagePragma
34          SrcSpanInfo
35            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 1 1 28
36            , srcInfoPoints =
37                [ SrcSpan "tests/examples/GenericTree.hs" 1 1 1 13
38                , SrcSpan "tests/examples/GenericTree.hs" 1 25 1 28
39                ]
40            }
41          [ Ident
42              SrcSpanInfo
43                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 14 1 24
44                , srcInfoPoints = []
45                }
46              "RankNTypes"
47          ]
48      ]
49      [ ImportDecl
50          { importAnn =
51              SrcSpanInfo
52                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 4 1 4 21
53                , srcInfoPoints =
54                    [ SrcSpan "tests/examples/GenericTree.hs" 4 1 4 7 ]
55                }
56          , importModule =
57              ModuleName
58                SrcSpanInfo
59                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 4 8 4 21
60                  , srcInfoPoints = []
61                  }
62                "Data.Typeable"
63          , importQualified = False
64          , importSrc = False
65          , importSafe = False
66          , importPkg = Nothing
67          , importAs = Nothing
68          , importSpecs = Nothing
69          }
70      ]
71      [ TypeSig
72          SrcSpanInfo
73            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 1 6 83
74            , srcInfoPoints =
75                [ SrcSpan "tests/examples/GenericTree.hs" 6 8 6 10 ]
76            }
77          [ Ident
78              SrcSpanInfo
79                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 1 6 7
80                , srcInfoPoints = []
81                }
82              "dynRep"
83          ]
84          (TyForall
85             SrcSpanInfo
86               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 83
87               , srcInfoPoints = []
88               }
89             Nothing
90             (Just
91                (CxSingle
92                   SrcSpanInfo
93                     { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 26
94                     , srcInfoPoints =
95                         [ SrcSpan "tests/examples/GenericTree.hs" 6 11 6 12
96                         , SrcSpan "tests/examples/GenericTree.hs" 6 22 6 23
97                         , SrcSpan "tests/examples/GenericTree.hs" 6 24 6 26
98                         ]
99                     }
100                   (ParenA
101                      SrcSpanInfo
102                        { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 26
103                        , srcInfoPoints =
104                            [ SrcSpan "tests/examples/GenericTree.hs" 6 11 6 12
105                            , SrcSpan "tests/examples/GenericTree.hs" 6 22 6 23
106                            , SrcSpan "tests/examples/GenericTree.hs" 6 24 6 26
107                            ]
108                        }
109                      (TypeA
110                         SrcSpanInfo
111                           { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22
112                           , srcInfoPoints = []
113                           }
114                         (TyApp
115                            SrcSpanInfo
116                              { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22
117                              , srcInfoPoints = []
118                              }
119                            (TyCon
120                               SrcSpanInfo
121                                 { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22
122                                 , srcInfoPoints = []
123                                 }
124                               (UnQual
125                                  SrcSpanInfo
126                                    { srcInfoSpan =
127                                        SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20
128                                    , srcInfoPoints = []
129                                    }
130                                  (Ident
131                                     SrcSpanInfo
132                                       { srcInfoSpan =
133                                           SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20
134                                       , srcInfoPoints = []
135                                       }
136                                     "Typeable")))
137                            (TyVar
138                               SrcSpanInfo
139                                 { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 21 6 22
140                                 , srcInfoPoints = []
141                                 }
142                               (Ident
143                                  SrcSpanInfo
144                                    { srcInfoSpan =
145                                        SrcSpan "tests/examples/GenericTree.hs" 6 21 6 22
146                                    , srcInfoPoints = []
147                                    }
148                                  "a")))))))
149             (TyFun
150                SrcSpanInfo
151                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 83
152                  , srcInfoPoints =
153                      [ SrcSpan "tests/examples/GenericTree.hs" 6 29 6 31 ]
154                  }
155                (TyVar
156                   SrcSpanInfo
157                     { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 28
158                     , srcInfoPoints = []
159                     }
160                   (Ident
161                      SrcSpanInfo
162                        { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 28
163                        , srcInfoPoints = []
164                        }
165                      "a"))
166                (TyTuple
167                   SrcSpanInfo
168                     { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 32 6 83
169                     , srcInfoPoints =
170                         [ SrcSpan "tests/examples/GenericTree.hs" 6 32 6 33
171                         , SrcSpan "tests/examples/GenericTree.hs" 6 40 6 41
172                         , SrcSpan "tests/examples/GenericTree.hs" 6 82 6 83
173                         ]
174                     }
175                   Boxed
176                   [ TyCon
177                       SrcSpanInfo
178                         { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40
179                         , srcInfoPoints = []
180                         }
181                       (UnQual
182                          SrcSpanInfo
183                            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40
184                            , srcInfoPoints = []
185                            }
186                          (Ident
187                             SrcSpanInfo
188                               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40
189                               , srcInfoPoints = []
190                               }
191                             "TypeRep"))
192                   , TyForall
193                       SrcSpanInfo
194                         { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 42 6 82
195                         , srcInfoPoints =
196                             [ SrcSpan "tests/examples/GenericTree.hs" 6 42 6 48
197                             , SrcSpan "tests/examples/GenericTree.hs" 6 50 6 51
198                             ]
199                         }
200                       (Just
201                          [ UnkindedVar
202                              SrcSpanInfo
203                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 49 6 50
204                                , srcInfoPoints = []
205                                }
206                              (Ident
207                                 SrcSpanInfo
208                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 49 6 50
209                                   , srcInfoPoints = []
210                                   }
211                                 "b")
212                          ])
213                       (Just
214                          (CxSingle
215                             SrcSpanInfo
216                               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 52 6 67
217                               , srcInfoPoints =
218                                   [ SrcSpan "tests/examples/GenericTree.hs" 6 52 6 53
219                                   , SrcSpan "tests/examples/GenericTree.hs" 6 63 6 64
220                                   , SrcSpan "tests/examples/GenericTree.hs" 6 65 6 67
221                                   ]
222                               }
223                             (ParenA
224                                SrcSpanInfo
225                                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 52 6 67
226                                  , srcInfoPoints =
227                                      [ SrcSpan "tests/examples/GenericTree.hs" 6 52 6 53
228                                      , SrcSpan "tests/examples/GenericTree.hs" 6 63 6 64
229                                      , SrcSpan "tests/examples/GenericTree.hs" 6 65 6 67
230                                      ]
231                                  }
232                                (TypeA
233                                   SrcSpanInfo
234                                     { srcInfoSpan =
235                                         SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63
236                                     , srcInfoPoints = []
237                                     }
238                                   (TyApp
239                                      SrcSpanInfo
240                                        { srcInfoSpan =
241                                            SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63
242                                        , srcInfoPoints = []
243                                        }
244                                      (TyCon
245                                         SrcSpanInfo
246                                           { srcInfoSpan =
247                                               SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63
248                                           , srcInfoPoints = []
249                                           }
250                                         (UnQual
251                                            SrcSpanInfo
252                                              { srcInfoSpan =
253                                                  SrcSpan "tests/examples/GenericTree.hs" 6 53 6 61
254                                              , srcInfoPoints = []
255                                              }
256                                            (Ident
257                                               SrcSpanInfo
258                                                 { srcInfoSpan =
259                                                     SrcSpan
260                                                       "tests/examples/GenericTree.hs" 6 53 6 61
261                                                 , srcInfoPoints = []
262                                                 }
263                                               "Typeable")))
264                                      (TyVar
265                                         SrcSpanInfo
266                                           { srcInfoSpan =
267                                               SrcSpan "tests/examples/GenericTree.hs" 6 62 6 63
268                                           , srcInfoPoints = []
269                                           }
270                                         (Ident
271                                            SrcSpanInfo
272                                              { srcInfoSpan =
273                                                  SrcSpan "tests/examples/GenericTree.hs" 6 62 6 63
274                                              , srcInfoPoints = []
275                                              }
276                                            "b")))))))
277                       (TyFun
278                          SrcSpanInfo
279                            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 82
280                            , srcInfoPoints =
281                                [ SrcSpan "tests/examples/GenericTree.hs" 6 70 6 72 ]
282                            }
283                          (TyVar
284                             SrcSpanInfo
285                               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 69
286                               , srcInfoPoints = []
287                               }
288                             (Ident
289                                SrcSpanInfo
290                                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 69
291                                  , srcInfoPoints = []
292                                  }
293                                "b"))
294                          (TyParen
295                             SrcSpanInfo
296                               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 73 6 82
297                               , srcInfoPoints =
298                                   [ SrcSpan "tests/examples/GenericTree.hs" 6 73 6 74
299                                   , SrcSpan "tests/examples/GenericTree.hs" 6 81 6 82
300                                   ]
301                               }
302                             (TyApp
303                                SrcSpanInfo
304                                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 81
305                                  , srcInfoPoints = []
306                                  }
307                                (TyCon
308                                   SrcSpanInfo
309                                     { srcInfoSpan =
310                                         SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79
311                                     , srcInfoPoints = []
312                                     }
313                                   (UnQual
314                                      SrcSpanInfo
315                                        { srcInfoSpan =
316                                            SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79
317                                        , srcInfoPoints = []
318                                        }
319                                      (Ident
320                                         SrcSpanInfo
321                                           { srcInfoSpan =
322                                               SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79
323                                           , srcInfoPoints = []
324                                           }
325                                         "Maybe")))
326                                (TyVar
327                                   SrcSpanInfo
328                                     { srcInfoSpan =
329                                         SrcSpan "tests/examples/GenericTree.hs" 6 80 6 81
330                                     , srcInfoPoints = []
331                                     }
332                                   (Ident
333                                      SrcSpanInfo
334                                        { srcInfoSpan =
335                                            SrcSpan "tests/examples/GenericTree.hs" 6 80 6 81
336                                        , srcInfoPoints = []
337                                        }
338                                      "b")))))
339                   ])))
340      , FunBind
341          SrcSpanInfo
342            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 36
343            , srcInfoPoints = []
344            }
345          [ Match
346              SrcSpanInfo
347                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 36
348                , srcInfoPoints = []
349                }
350              (Ident
351                 SrcSpanInfo
352                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 7
353                   , srcInfoPoints = []
354                   }
355                 "dynRep")
356              [ PVar
357                  SrcSpanInfo
358                    { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 8 7 9
359                    , srcInfoPoints = []
360                    }
361                  (Ident
362                     SrcSpanInfo
363                       { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 8 7 9
364                       , srcInfoPoints = []
365                       }
366                     "a")
367              ]
368              (UnGuardedRhs
369                 SrcSpanInfo
370                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 10 7 36
371                   , srcInfoPoints =
372                       [ SrcSpan "tests/examples/GenericTree.hs" 7 10 7 11 ]
373                   }
374                 (Tuple
375                    SrcSpanInfo
376                      { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 12 7 36
377                      , srcInfoPoints =
378                          [ SrcSpan "tests/examples/GenericTree.hs" 7 12 7 13
379                          , SrcSpan "tests/examples/GenericTree.hs" 7 21 7 22
380                          , SrcSpan "tests/examples/GenericTree.hs" 7 35 7 36
381                          ]
382                      }
383                    Boxed
384                    [ App
385                        SrcSpanInfo
386                          { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 21
387                          , srcInfoPoints = []
388                          }
389                        (Var
390                           SrcSpanInfo
391                             { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19
392                             , srcInfoPoints = []
393                             }
394                           (UnQual
395                              SrcSpanInfo
396                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19
397                                , srcInfoPoints = []
398                                }
399                              (Ident
400                                 SrcSpanInfo
401                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19
402                                   , srcInfoPoints = []
403                                   }
404                                 "typeOf")))
405                        (Var
406                           SrcSpanInfo
407                             { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21
408                             , srcInfoPoints = []
409                             }
410                           (UnQual
411                              SrcSpanInfo
412                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21
413                                , srcInfoPoints = []
414                                }
415                              (Ident
416                                 SrcSpanInfo
417                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21
418                                   , srcInfoPoints = []
419                                   }
420                                 "a")))
421                    , Lambda
422                        SrcSpanInfo
423                          { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 23 7 35
424                          , srcInfoPoints =
425                              [ SrcSpan "tests/examples/GenericTree.hs" 7 23 7 24
426                              , SrcSpan "tests/examples/GenericTree.hs" 7 26 7 28
427                              ]
428                          }
429                        [ PWildCard
430                            SrcSpanInfo
431                              { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 24 7 25
432                              , srcInfoPoints = []
433                              }
434                        ]
435                        (App
436                           SrcSpanInfo
437                             { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 35
438                             , srcInfoPoints = []
439                             }
440                           (Var
441                              SrcSpanInfo
442                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33
443                                , srcInfoPoints = []
444                                }
445                              (UnQual
446                                 SrcSpanInfo
447                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33
448                                   , srcInfoPoints = []
449                                   }
450                                 (Ident
451                                    SrcSpanInfo
452                                      { srcInfoSpan =
453                                          SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33
454                                      , srcInfoPoints = []
455                                      }
456                                    "cast")))
457                           (Var
458                              SrcSpanInfo
459                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35
460                                , srcInfoPoints = []
461                                }
462                              (UnQual
463                                 SrcSpanInfo
464                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35
465                                   , srcInfoPoints = []
466                                   }
467                                 (Ident
468                                    SrcSpanInfo
469                                      { srcInfoSpan =
470                                          SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35
471                                      , srcInfoPoints = []
472                                      }
473                                    "a"))))
474                    ]))
475              Nothing
476          ]
477      ]
478  , []
479  )
480