1ParseOk
2  ( Module
3      SrcSpanInfo
4        { srcInfoSpan =
5            SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 17 1
6        , srcInfoPoints =
7            [ SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 1 1
8            , SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 1
9            , SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 1
10            , SrcSpan "tests/examples/RoleAnnotations.hs" 5 1 5 1
11            , SrcSpan "tests/examples/RoleAnnotations.hs" 6 1 6 1
12            , SrcSpan "tests/examples/RoleAnnotations.hs" 8 1 8 1
13            , SrcSpan "tests/examples/RoleAnnotations.hs" 9 1 9 1
14            , SrcSpan "tests/examples/RoleAnnotations.hs" 10 1 10 1
15            , SrcSpan "tests/examples/RoleAnnotations.hs" 12 1 12 1
16            , SrcSpan "tests/examples/RoleAnnotations.hs" 13 1 13 1
17            , SrcSpan "tests/examples/RoleAnnotations.hs" 14 1 14 1
18            , SrcSpan "tests/examples/RoleAnnotations.hs" 15 1 15 1
19            , SrcSpan "tests/examples/RoleAnnotations.hs" 16 1 16 1
20            , SrcSpan "tests/examples/RoleAnnotations.hs" 17 1 17 1
21            , SrcSpan "tests/examples/RoleAnnotations.hs" 17 1 17 1
22            ]
23        }
24      (Just
25         (ModuleHead
26            SrcSpanInfo
27              { srcInfoSpan =
28                  SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 19
29              , srcInfoPoints =
30                  [ SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 7
31                  , SrcSpan "tests/examples/RoleAnnotations.hs" 3 14 3 19
32                  ]
33              }
34            (ModuleName
35               SrcSpanInfo
36                 { srcInfoSpan =
37                     SrcSpan "tests/examples/RoleAnnotations.hs" 3 8 3 13
38                 , srcInfoPoints = []
39                 }
40               "Roles")
41            Nothing
42            Nothing))
43      [ LanguagePragma
44          SrcSpanInfo
45            { srcInfoSpan =
46                SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 1 60
47            , srcInfoPoints =
48                [ SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 1 13
49                , SrcSpan "tests/examples/RoleAnnotations.hs" 1 29 1 30
50                , SrcSpan "tests/examples/RoleAnnotations.hs" 1 40 1 41
51                , SrcSpan "tests/examples/RoleAnnotations.hs" 1 57 1 60
52                ]
53            }
54          [ Ident
55              SrcSpanInfo
56                { srcInfoSpan =
57                    SrcSpan "tests/examples/RoleAnnotations.hs" 1 14 1 29
58                , srcInfoPoints = []
59                }
60              "RoleAnnotations"
61          , Ident
62              SrcSpanInfo
63                { srcInfoSpan =
64                    SrcSpan "tests/examples/RoleAnnotations.hs" 1 31 1 40
65                , srcInfoPoints = []
66                }
67              "PolyKinds"
68          , Ident
69              SrcSpanInfo
70                { srcInfoSpan =
71                    SrcSpan "tests/examples/RoleAnnotations.hs" 1 42 1 56
72                , srcInfoPoints = []
73                }
74              "KindSignatures"
75          ]
76      ]
77      []
78      [ DataDecl
79          SrcSpanInfo
80            { srcInfoSpan =
81                SrcSpan "tests/examples/RoleAnnotations.hs" 5 1 5 17
82            , srcInfoPoints =
83                [ SrcSpan "tests/examples/RoleAnnotations.hs" 5 11 5 12 ]
84            }
85          (DataType
86             SrcSpanInfo
87               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 5 1 5 5
88               , srcInfoPoints = []
89               })
90          Nothing
91          (DHApp
92             SrcSpanInfo
93               { srcInfoSpan =
94                   SrcSpan "tests/examples/RoleAnnotations.hs" 5 6 5 10
95               , srcInfoPoints = []
96               }
97             (DHead
98                SrcSpanInfo
99                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 5 6 5 8
100                  , srcInfoPoints = []
101                  }
102                (Ident
103                   SrcSpanInfo
104                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 5 6 5 8
105                     , srcInfoPoints = []
106                     }
107                   "T1"))
108             (UnkindedVar
109                SrcSpanInfo
110                  { srcInfoSpan =
111                      SrcSpan "tests/examples/RoleAnnotations.hs" 5 9 5 10
112                  , srcInfoPoints = []
113                  }
114                (Ident
115                   SrcSpanInfo
116                     { srcInfoSpan =
117                         SrcSpan "tests/examples/RoleAnnotations.hs" 5 9 5 10
118                     , srcInfoPoints = []
119                     }
120                   "a")))
121          [ QualConDecl
122              SrcSpanInfo
123                { srcInfoSpan =
124                    SrcSpan "tests/examples/RoleAnnotations.hs" 5 13 5 17
125                , srcInfoPoints = []
126                }
127              Nothing
128              Nothing
129              (ConDecl
130                 SrcSpanInfo
131                   { srcInfoSpan =
132                       SrcSpan "tests/examples/RoleAnnotations.hs" 5 13 5 17
133                   , srcInfoPoints = []
134                   }
135                 (Ident
136                    SrcSpanInfo
137                      { srcInfoSpan =
138                          SrcSpan "tests/examples/RoleAnnotations.hs" 5 13 5 15
139                      , srcInfoPoints = []
140                      }
141                    "K1")
142                 [ TyVar
143                     SrcSpanInfo
144                       { srcInfoSpan =
145                           SrcSpan "tests/examples/RoleAnnotations.hs" 5 16 5 17
146                       , srcInfoPoints = []
147                       }
148                     (Ident
149                        SrcSpanInfo
150                          { srcInfoSpan =
151                              SrcSpan "tests/examples/RoleAnnotations.hs" 5 16 5 17
152                          , srcInfoPoints = []
153                          }
154                        "a")
155                 ])
156          ]
157          []
158      , DataDecl
159          SrcSpanInfo
160            { srcInfoSpan =
161                SrcSpan "tests/examples/RoleAnnotations.hs" 6 1 6 17
162            , srcInfoPoints =
163                [ SrcSpan "tests/examples/RoleAnnotations.hs" 6 11 6 12 ]
164            }
165          (DataType
166             SrcSpanInfo
167               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 6 1 6 5
168               , srcInfoPoints = []
169               })
170          Nothing
171          (DHApp
172             SrcSpanInfo
173               { srcInfoSpan =
174                   SrcSpan "tests/examples/RoleAnnotations.hs" 6 6 6 10
175               , srcInfoPoints = []
176               }
177             (DHead
178                SrcSpanInfo
179                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 6 6 6 8
180                  , srcInfoPoints = []
181                  }
182                (Ident
183                   SrcSpanInfo
184                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 6 6 6 8
185                     , srcInfoPoints = []
186                     }
187                   "T2"))
188             (UnkindedVar
189                SrcSpanInfo
190                  { srcInfoSpan =
191                      SrcSpan "tests/examples/RoleAnnotations.hs" 6 9 6 10
192                  , srcInfoPoints = []
193                  }
194                (Ident
195                   SrcSpanInfo
196                     { srcInfoSpan =
197                         SrcSpan "tests/examples/RoleAnnotations.hs" 6 9 6 10
198                     , srcInfoPoints = []
199                     }
200                   "a")))
201          [ QualConDecl
202              SrcSpanInfo
203                { srcInfoSpan =
204                    SrcSpan "tests/examples/RoleAnnotations.hs" 6 13 6 17
205                , srcInfoPoints = []
206                }
207              Nothing
208              Nothing
209              (ConDecl
210                 SrcSpanInfo
211                   { srcInfoSpan =
212                       SrcSpan "tests/examples/RoleAnnotations.hs" 6 13 6 17
213                   , srcInfoPoints = []
214                   }
215                 (Ident
216                    SrcSpanInfo
217                      { srcInfoSpan =
218                          SrcSpan "tests/examples/RoleAnnotations.hs" 6 13 6 15
219                      , srcInfoPoints = []
220                      }
221                    "K2")
222                 [ TyVar
223                     SrcSpanInfo
224                       { srcInfoSpan =
225                           SrcSpan "tests/examples/RoleAnnotations.hs" 6 16 6 17
226                       , srcInfoPoints = []
227                       }
228                     (Ident
229                        SrcSpanInfo
230                          { srcInfoSpan =
231                              SrcSpan "tests/examples/RoleAnnotations.hs" 6 16 6 17
232                          , srcInfoPoints = []
233                          }
234                        "a")
235                 ])
236          ]
237          []
238      , DataDecl
239          SrcSpanInfo
240            { srcInfoSpan =
241                SrcSpan "tests/examples/RoleAnnotations.hs" 8 1 8 17
242            , srcInfoPoints =
243                [ SrcSpan "tests/examples/RoleAnnotations.hs" 8 11 8 12 ]
244            }
245          (DataType
246             SrcSpanInfo
247               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 8 1 8 5
248               , srcInfoPoints = []
249               })
250          Nothing
251          (DHApp
252             SrcSpanInfo
253               { srcInfoSpan =
254                   SrcSpan "tests/examples/RoleAnnotations.hs" 8 6 8 10
255               , srcInfoPoints = []
256               }
257             (DHead
258                SrcSpanInfo
259                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 8 6 8 8
260                  , srcInfoPoints = []
261                  }
262                (Ident
263                   SrcSpanInfo
264                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 8 6 8 8
265                     , srcInfoPoints = []
266                     }
267                   "T5"))
268             (UnkindedVar
269                SrcSpanInfo
270                  { srcInfoSpan =
271                      SrcSpan "tests/examples/RoleAnnotations.hs" 8 9 8 10
272                  , srcInfoPoints = []
273                  }
274                (Ident
275                   SrcSpanInfo
276                     { srcInfoSpan =
277                         SrcSpan "tests/examples/RoleAnnotations.hs" 8 9 8 10
278                     , srcInfoPoints = []
279                     }
280                   "a")))
281          [ QualConDecl
282              SrcSpanInfo
283                { srcInfoSpan =
284                    SrcSpan "tests/examples/RoleAnnotations.hs" 8 13 8 17
285                , srcInfoPoints = []
286                }
287              Nothing
288              Nothing
289              (ConDecl
290                 SrcSpanInfo
291                   { srcInfoSpan =
292                       SrcSpan "tests/examples/RoleAnnotations.hs" 8 13 8 17
293                   , srcInfoPoints = []
294                   }
295                 (Ident
296                    SrcSpanInfo
297                      { srcInfoSpan =
298                          SrcSpan "tests/examples/RoleAnnotations.hs" 8 13 8 15
299                      , srcInfoPoints = []
300                      }
301                    "K5")
302                 [ TyVar
303                     SrcSpanInfo
304                       { srcInfoSpan =
305                           SrcSpan "tests/examples/RoleAnnotations.hs" 8 16 8 17
306                       , srcInfoPoints = []
307                       }
308                     (Ident
309                        SrcSpanInfo
310                          { srcInfoSpan =
311                              SrcSpan "tests/examples/RoleAnnotations.hs" 8 16 8 17
312                          , srcInfoPoints = []
313                          }
314                        "a")
315                 ])
316          ]
317          []
318      , DataDecl
319          SrcSpanInfo
320            { srcInfoSpan =
321                SrcSpan "tests/examples/RoleAnnotations.hs" 9 1 9 15
322            , srcInfoPoints =
323                [ SrcSpan "tests/examples/RoleAnnotations.hs" 9 11 9 12 ]
324            }
325          (DataType
326             SrcSpanInfo
327               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 9 1 9 5
328               , srcInfoPoints = []
329               })
330          Nothing
331          (DHApp
332             SrcSpanInfo
333               { srcInfoSpan =
334                   SrcSpan "tests/examples/RoleAnnotations.hs" 9 6 9 10
335               , srcInfoPoints = []
336               }
337             (DHead
338                SrcSpanInfo
339                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 9 6 9 8
340                  , srcInfoPoints = []
341                  }
342                (Ident
343                   SrcSpanInfo
344                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 9 6 9 8
345                     , srcInfoPoints = []
346                     }
347                   "T6"))
348             (UnkindedVar
349                SrcSpanInfo
350                  { srcInfoSpan =
351                      SrcSpan "tests/examples/RoleAnnotations.hs" 9 9 9 10
352                  , srcInfoPoints = []
353                  }
354                (Ident
355                   SrcSpanInfo
356                     { srcInfoSpan =
357                         SrcSpan "tests/examples/RoleAnnotations.hs" 9 9 9 10
358                     , srcInfoPoints = []
359                     }
360                   "a")))
361          [ QualConDecl
362              SrcSpanInfo
363                { srcInfoSpan =
364                    SrcSpan "tests/examples/RoleAnnotations.hs" 9 13 9 15
365                , srcInfoPoints = []
366                }
367              Nothing
368              Nothing
369              (ConDecl
370                 SrcSpanInfo
371                   { srcInfoSpan =
372                       SrcSpan "tests/examples/RoleAnnotations.hs" 9 13 9 15
373                   , srcInfoPoints = []
374                   }
375                 (Ident
376                    SrcSpanInfo
377                      { srcInfoSpan =
378                          SrcSpan "tests/examples/RoleAnnotations.hs" 9 13 9 15
379                      , srcInfoPoints = []
380                      }
381                    "K6")
382                 [])
383          ]
384          []
385      , DataDecl
386          SrcSpanInfo
387            { srcInfoSpan =
388                SrcSpan "tests/examples/RoleAnnotations.hs" 10 1 10 19
389            , srcInfoPoints =
390                [ SrcSpan "tests/examples/RoleAnnotations.hs" 10 13 10 14 ]
391            }
392          (DataType
393             SrcSpanInfo
394               { srcInfoSpan =
395                   SrcSpan "tests/examples/RoleAnnotations.hs" 10 1 10 5
396               , srcInfoPoints = []
397               })
398          Nothing
399          (DHApp
400             SrcSpanInfo
401               { srcInfoSpan =
402                   SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 12
403               , srcInfoPoints = []
404               }
405             (DHApp
406                SrcSpanInfo
407                  { srcInfoSpan =
408                      SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 10
409                  , srcInfoPoints = []
410                  }
411                (DHead
412                   SrcSpanInfo
413                     { srcInfoSpan =
414                         SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 8
415                     , srcInfoPoints = []
416                     }
417                   (Ident
418                      SrcSpanInfo
419                        { srcInfoSpan =
420                            SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 8
421                        , srcInfoPoints = []
422                        }
423                      "T7"))
424                (UnkindedVar
425                   SrcSpanInfo
426                     { srcInfoSpan =
427                         SrcSpan "tests/examples/RoleAnnotations.hs" 10 9 10 10
428                     , srcInfoPoints = []
429                     }
430                   (Ident
431                      SrcSpanInfo
432                        { srcInfoSpan =
433                            SrcSpan "tests/examples/RoleAnnotations.hs" 10 9 10 10
434                        , srcInfoPoints = []
435                        }
436                      "a")))
437             (UnkindedVar
438                SrcSpanInfo
439                  { srcInfoSpan =
440                      SrcSpan "tests/examples/RoleAnnotations.hs" 10 11 10 12
441                  , srcInfoPoints = []
442                  }
443                (Ident
444                   SrcSpanInfo
445                     { srcInfoSpan =
446                         SrcSpan "tests/examples/RoleAnnotations.hs" 10 11 10 12
447                     , srcInfoPoints = []
448                     }
449                   "b")))
450          [ QualConDecl
451              SrcSpanInfo
452                { srcInfoSpan =
453                    SrcSpan "tests/examples/RoleAnnotations.hs" 10 15 10 19
454                , srcInfoPoints = []
455                }
456              Nothing
457              Nothing
458              (ConDecl
459                 SrcSpanInfo
460                   { srcInfoSpan =
461                       SrcSpan "tests/examples/RoleAnnotations.hs" 10 15 10 19
462                   , srcInfoPoints = []
463                   }
464                 (Ident
465                    SrcSpanInfo
466                      { srcInfoSpan =
467                          SrcSpan "tests/examples/RoleAnnotations.hs" 10 15 10 17
468                      , srcInfoPoints = []
469                      }
470                    "K7")
471                 [ TyVar
472                     SrcSpanInfo
473                       { srcInfoSpan =
474                           SrcSpan "tests/examples/RoleAnnotations.hs" 10 18 10 19
475                       , srcInfoPoints = []
476                       }
477                     (Ident
478                        SrcSpanInfo
479                          { srcInfoSpan =
480                              SrcSpan "tests/examples/RoleAnnotations.hs" 10 18 10 19
481                          , srcInfoPoints = []
482                          }
483                        "b")
484                 ])
485          ]
486          []
487      , RoleAnnotDecl
488          SrcSpanInfo
489            { srcInfoSpan =
490                SrcSpan "tests/examples/RoleAnnotations.hs" 12 1 12 21
491            , srcInfoPoints =
492                [ SrcSpan "tests/examples/RoleAnnotations.hs" 12 1 12 5
493                , SrcSpan "tests/examples/RoleAnnotations.hs" 12 6 12 10
494                ]
495            }
496          (UnQual
497             SrcSpanInfo
498               { srcInfoSpan =
499                   SrcSpan "tests/examples/RoleAnnotations.hs" 12 11 12 13
500               , srcInfoPoints = []
501               }
502             (Ident
503                SrcSpanInfo
504                  { srcInfoSpan =
505                      SrcSpan "tests/examples/RoleAnnotations.hs" 12 11 12 13
506                  , srcInfoPoints = []
507                  }
508                "T1"))
509          [ Nominal
510              SrcSpanInfo
511                { srcInfoSpan =
512                    SrcSpan "tests/examples/RoleAnnotations.hs" 12 14 12 21
513                , srcInfoPoints = []
514                }
515          ]
516      , RoleAnnotDecl
517          SrcSpanInfo
518            { srcInfoSpan =
519                SrcSpan "tests/examples/RoleAnnotations.hs" 13 1 13 30
520            , srcInfoPoints =
521                [ SrcSpan "tests/examples/RoleAnnotations.hs" 13 1 13 5
522                , SrcSpan "tests/examples/RoleAnnotations.hs" 13 6 13 10
523                ]
524            }
525          (UnQual
526             SrcSpanInfo
527               { srcInfoSpan =
528                   SrcSpan "tests/examples/RoleAnnotations.hs" 13 11 13 13
529               , srcInfoPoints = []
530               }
531             (Ident
532                SrcSpanInfo
533                  { srcInfoSpan =
534                      SrcSpan "tests/examples/RoleAnnotations.hs" 13 11 13 13
535                  , srcInfoPoints = []
536                  }
537                "T2"))
538          [ Representational
539              SrcSpanInfo
540                { srcInfoSpan =
541                    SrcSpan "tests/examples/RoleAnnotations.hs" 13 14 13 30
542                , srcInfoPoints = []
543                }
544          ]
545      , RoleAnnotDecl
546          SrcSpanInfo
547            { srcInfoSpan =
548                SrcSpan "tests/examples/RoleAnnotations.hs" 14 1 14 21
549            , srcInfoPoints =
550                [ SrcSpan "tests/examples/RoleAnnotations.hs" 14 1 14 5
551                , SrcSpan "tests/examples/RoleAnnotations.hs" 14 6 14 10
552                ]
553            }
554          (UnQual
555             SrcSpanInfo
556               { srcInfoSpan =
557                   SrcSpan "tests/examples/RoleAnnotations.hs" 14 11 14 13
558               , srcInfoPoints = []
559               }
560             (Ident
561                SrcSpanInfo
562                  { srcInfoSpan =
563                      SrcSpan "tests/examples/RoleAnnotations.hs" 14 11 14 13
564                  , srcInfoPoints = []
565                  }
566                "T3"))
567          [ Phantom
568              SrcSpanInfo
569                { srcInfoSpan =
570                    SrcSpan "tests/examples/RoleAnnotations.hs" 14 14 14 21
571                , srcInfoPoints = []
572                }
573          ]
574      , RoleAnnotDecl
575          SrcSpanInfo
576            { srcInfoSpan =
577                SrcSpan "tests/examples/RoleAnnotations.hs" 15 1 15 23
578            , srcInfoPoints =
579                [ SrcSpan "tests/examples/RoleAnnotations.hs" 15 1 15 5
580                , SrcSpan "tests/examples/RoleAnnotations.hs" 15 6 15 10
581                ]
582            }
583          (UnQual
584             SrcSpanInfo
585               { srcInfoSpan =
586                   SrcSpan "tests/examples/RoleAnnotations.hs" 15 11 15 13
587               , srcInfoPoints = []
588               }
589             (Ident
590                SrcSpanInfo
591                  { srcInfoSpan =
592                      SrcSpan "tests/examples/RoleAnnotations.hs" 15 11 15 13
593                  , srcInfoPoints = []
594                  }
595                "T4"))
596          [ Nominal
597              SrcSpanInfo
598                { srcInfoSpan =
599                    SrcSpan "tests/examples/RoleAnnotations.hs" 15 14 15 21
600                , srcInfoPoints = []
601                }
602          , RoleWildcard
603              SrcSpanInfo
604                { srcInfoSpan =
605                    SrcSpan "tests/examples/RoleAnnotations.hs" 15 22 15 23
606                , srcInfoPoints = []
607                }
608          ]
609      , RoleAnnotDecl
610          SrcSpanInfo
611            { srcInfoSpan =
612                SrcSpan "tests/examples/RoleAnnotations.hs" 16 1 16 17
613            , srcInfoPoints =
614                [ SrcSpan "tests/examples/RoleAnnotations.hs" 16 1 16 5
615                , SrcSpan "tests/examples/RoleAnnotations.hs" 16 6 16 10
616                ]
617            }
618          (UnQual
619             SrcSpanInfo
620               { srcInfoSpan =
621                   SrcSpan "tests/examples/RoleAnnotations.hs" 16 11 16 13
622               , srcInfoPoints = []
623               }
624             (Ident
625                SrcSpanInfo
626                  { srcInfoSpan =
627                      SrcSpan "tests/examples/RoleAnnotations.hs" 16 11 16 13
628                  , srcInfoPoints = []
629                  }
630                "T5"))
631          [ RoleWildcard
632              SrcSpanInfo
633                { srcInfoSpan =
634                    SrcSpan "tests/examples/RoleAnnotations.hs" 16 16 16 17
635                , srcInfoPoints = []
636                }
637          ]
638      ]
639  , []
640  )
641