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