1ParseOk
2  ( Module
3      SrcSpanInfo
4        { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 1 1 36 1
5        , srcInfoPoints =
6            [ SrcSpan "tests/examples/List2.hs" 1 1 1 1
7            , SrcSpan "tests/examples/List2.hs" 2 1 2 1
8            , SrcSpan "tests/examples/List2.hs" 3 1 3 1
9            , SrcSpan "tests/examples/List2.hs" 4 1 4 1
10            , SrcSpan "tests/examples/List2.hs" 5 1 5 1
11            , SrcSpan "tests/examples/List2.hs" 6 1 6 1
12            , SrcSpan "tests/examples/List2.hs" 7 1 7 1
13            , SrcSpan "tests/examples/List2.hs" 8 1 8 1
14            , SrcSpan "tests/examples/List2.hs" 9 1 9 1
15            , SrcSpan "tests/examples/List2.hs" 10 1 10 1
16            , SrcSpan "tests/examples/List2.hs" 11 1 11 1
17            , SrcSpan "tests/examples/List2.hs" 12 1 12 1
18            , SrcSpan "tests/examples/List2.hs" 13 1 13 1
19            , SrcSpan "tests/examples/List2.hs" 14 1 14 1
20            , SrcSpan "tests/examples/List2.hs" 15 1 15 1
21            , SrcSpan "tests/examples/List2.hs" 30 1 30 1
22            , SrcSpan "tests/examples/List2.hs" 30 1 30 1
23            , SrcSpan "tests/examples/List2.hs" 32 1 32 1
24            , SrcSpan "tests/examples/List2.hs" 33 1 33 1
25            , SrcSpan "tests/examples/List2.hs" 34 1 34 1
26            , SrcSpan "tests/examples/List2.hs" 36 1 36 1
27            , SrcSpan "tests/examples/List2.hs" 36 1 36 1
28            ]
29        }
30      (Just
31         (ModuleHead
32            SrcSpanInfo
33              { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 30 1 30 30
34              , srcInfoPoints =
35                  [ SrcSpan "tests/examples/List2.hs" 30 1 30 7
36                  , SrcSpan "tests/examples/List2.hs" 30 25 30 30
37                  ]
38              }
39            (ModuleName
40               SrcSpanInfo
41                 { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 30 8 30 24
42                 , srcInfoPoints = []
43                 }
44               "Type.Family.List")
45            Nothing
46            Nothing))
47      [ LanguagePragma
48          SrcSpanInfo
49            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 1 1 1 40
50            , srcInfoPoints =
51                [ SrcSpan "tests/examples/List2.hs" 1 1 1 13
52                , SrcSpan "tests/examples/List2.hs" 1 37 1 40
53                ]
54            }
55          [ Ident
56              SrcSpanInfo
57                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 1 14 1 36
58                , srcInfoPoints = []
59                }
60              "TypeFamilyDependencies"
61          ]
62      , LanguagePragma
63          SrcSpanInfo
64            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 2 1 2 33
65            , srcInfoPoints =
66                [ SrcSpan "tests/examples/List2.hs" 2 1 2 13
67                , SrcSpan "tests/examples/List2.hs" 2 30 2 33
68                ]
69            }
70          [ Ident
71              SrcSpanInfo
72                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 2 14 2 29
73                , srcInfoPoints = []
74                }
75              "PatternSynonyms"
76          ]
77      , LanguagePragma
78          SrcSpanInfo
79            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 3 1 3 33
80            , srcInfoPoints =
81                [ SrcSpan "tests/examples/List2.hs" 3 1 3 13
82                , SrcSpan "tests/examples/List2.hs" 3 30 3 33
83                ]
84            }
85          [ Ident
86              SrcSpanInfo
87                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 3 14 3 29
88                , srcInfoPoints = []
89                }
90              "ConstraintKinds"
91          ]
92      , LanguagePragma
93          SrcSpanInfo
94            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 4 1 4 28
95            , srcInfoPoints =
96                [ SrcSpan "tests/examples/List2.hs" 4 1 4 13
97                , SrcSpan "tests/examples/List2.hs" 4 25 4 28
98                ]
99            }
100          [ Ident
101              SrcSpanInfo
102                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 4 14 4 24
103                , srcInfoPoints = []
104                }
105              "RankNTypes"
106          ]
107      , LanguagePragma
108          SrcSpanInfo
109            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 5 1 5 36
110            , srcInfoPoints =
111                [ SrcSpan "tests/examples/List2.hs" 5 1 5 13
112                , SrcSpan "tests/examples/List2.hs" 5 33 5 36
113                ]
114            }
115          [ Ident
116              SrcSpanInfo
117                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 5 14 5 32
118                , srcInfoPoints = []
119                }
120              "StandaloneDeriving"
121          ]
122      , LanguagePragma
123          SrcSpanInfo
124            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 6 1 6 35
125            , srcInfoPoints =
126                [ SrcSpan "tests/examples/List2.hs" 6 1 6 13
127                , SrcSpan "tests/examples/List2.hs" 6 32 6 35
128                ]
129            }
130          [ Ident
131              SrcSpanInfo
132                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 6 14 6 31
133                , srcInfoPoints = []
134                }
135              "FlexibleInstances"
136          ]
137      , LanguagePragma
138          SrcSpanInfo
139            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 7 1 7 40
140            , srcInfoPoints =
141                [ SrcSpan "tests/examples/List2.hs" 7 1 7 13
142                , SrcSpan "tests/examples/List2.hs" 7 37 7 40
143                ]
144            }
145          [ Ident
146              SrcSpanInfo
147                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 7 14 7 36
148                , srcInfoPoints = []
149                }
150              "FunctionalDependencies"
151          ]
152      , LanguagePragma
153          SrcSpanInfo
154            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 8 1 8 38
155            , srcInfoPoints =
156                [ SrcSpan "tests/examples/List2.hs" 8 1 8 13
157                , SrcSpan "tests/examples/List2.hs" 8 35 8 38
158                ]
159            }
160          [ Ident
161              SrcSpanInfo
162                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 8 14 8 34
163                , srcInfoPoints = []
164                }
165              "UndecidableInstances"
166          ]
167      , LanguagePragma
168          SrcSpanInfo
169            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 9 1 9 30
170            , srcInfoPoints =
171                [ SrcSpan "tests/examples/List2.hs" 9 1 9 13
172                , SrcSpan "tests/examples/List2.hs" 9 27 9 30
173                ]
174            }
175          [ Ident
176              SrcSpanInfo
177                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 9 14 9 26
178                , srcInfoPoints = []
179                }
180              "TypeFamilies"
181          ]
182      , LanguagePragma
183          SrcSpanInfo
184            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 10 1 10 28
185            , srcInfoPoints =
186                [ SrcSpan "tests/examples/List2.hs" 10 1 10 13
187                , SrcSpan "tests/examples/List2.hs" 10 25 10 28
188                ]
189            }
190          [ Ident
191              SrcSpanInfo
192                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 10 14 10 24
193                , srcInfoPoints = []
194                }
195              "LambdaCase"
196          ]
197      , LanguagePragma
198          SrcSpanInfo
199            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 11 1 11 31
200            , srcInfoPoints =
201                [ SrcSpan "tests/examples/List2.hs" 11 1 11 13
202                , SrcSpan "tests/examples/List2.hs" 11 28 11 31
203                ]
204            }
205          [ Ident
206              SrcSpanInfo
207                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 11 14 11 27
208                , srcInfoPoints = []
209                }
210              "TypeOperators"
211          ]
212      , LanguagePragma
213          SrcSpanInfo
214            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 12 1 12 32
215            , srcInfoPoints =
216                [ SrcSpan "tests/examples/List2.hs" 12 1 12 13
217                , SrcSpan "tests/examples/List2.hs" 12 29 12 32
218                ]
219            }
220          [ Ident
221              SrcSpanInfo
222                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 12 14 12 28
223                , srcInfoPoints = []
224                }
225              "KindSignatures"
226          ]
227      , LanguagePragma
228          SrcSpanInfo
229            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 13 1 13 27
230            , srcInfoPoints =
231                [ SrcSpan "tests/examples/List2.hs" 13 1 13 13
232                , SrcSpan "tests/examples/List2.hs" 13 24 13 27
233                ]
234            }
235          [ Ident
236              SrcSpanInfo
237                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 13 14 13 23
238                , srcInfoPoints = []
239                }
240              "DataKinds"
241          ]
242      , LanguagePragma
243          SrcSpanInfo
244            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 14 1 14 27
245            , srcInfoPoints =
246                [ SrcSpan "tests/examples/List2.hs" 14 1 14 13
247                , SrcSpan "tests/examples/List2.hs" 14 24 14 27
248                ]
249            }
250          [ Ident
251              SrcSpanInfo
252                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 14 14 14 23
253                , srcInfoPoints = []
254                }
255              "PolyKinds"
256          ]
257      , LanguagePragma
258          SrcSpanInfo
259            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 15 1 15 23
260            , srcInfoPoints =
261                [ SrcSpan "tests/examples/List2.hs" 15 1 15 13
262                , SrcSpan "tests/examples/List2.hs" 15 20 15 23
263                ]
264            }
265          [ Ident
266              SrcSpanInfo
267                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 15 14 15 19
268                , srcInfoPoints = []
269                }
270              "GADTs"
271          ]
272      ]
273      []
274      [ TypeDecl
275          SrcSpanInfo
276            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 1 32 16
277            , srcInfoPoints =
278                [ SrcSpan "tests/examples/List2.hs" 32 1 32 5
279                , SrcSpan "tests/examples/List2.hs" 32 11 32 12
280                ]
281            }
282          (DHead
283             SrcSpanInfo
284               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 6 32 7
285               , srcInfoPoints = []
286               }
287             (Ident
288                SrcSpanInfo
289                  { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 6 32 7
290                  , srcInfoPoints = []
291                  }
292                "\216"))
293          (TyPromoted
294             SrcSpanInfo
295               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 13 32 16
296               , srcInfoPoints =
297                   [ SrcSpan "tests/examples/List2.hs" 32 13 32 14
298                   , SrcSpan "tests/examples/List2.hs" 32 15 32 16
299                   ]
300               }
301             (PromotedList
302                SrcSpanInfo
303                  { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 13 32 16
304                  , srcInfoPoints =
305                      [ SrcSpan "tests/examples/List2.hs" 32 13 32 14
306                      , SrcSpan "tests/examples/List2.hs" 32 15 32 16
307                      ]
308                  }
309                True
310                []))
311      , TypeDecl
312          SrcSpanInfo
313            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 1 33 17
314            , srcInfoPoints =
315                [ SrcSpan "tests/examples/List2.hs" 33 1 33 5
316                , SrcSpan "tests/examples/List2.hs" 33 11 33 12
317                ]
318            }
319          (DHead
320             SrcSpanInfo
321               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 6 33 10
322               , srcInfoPoints =
323                   [ SrcSpan "tests/examples/List2.hs" 33 6 33 7
324                   , SrcSpan "tests/examples/List2.hs" 33 7 33 9
325                   , SrcSpan "tests/examples/List2.hs" 33 9 33 10
326                   ]
327               }
328             (Symbol
329                SrcSpanInfo
330                  { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 7 33 9
331                  , srcInfoPoints = []
332                  }
333                ":<"))
334          (TyPromoted
335             SrcSpanInfo
336               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 13 33 17
337               , srcInfoPoints = [ SrcSpan "tests/examples/List2.hs" 33 13 33 14 ]
338               }
339             (PromotedCon
340                SrcSpanInfo
341                  { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 13 33 17
342                  , srcInfoPoints = [ SrcSpan "tests/examples/List2.hs" 33 13 33 14 ]
343                  }
344                True
345                (Special
346                   SrcSpanInfo
347                     { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 14 33 17
348                     , srcInfoPoints =
349                         [ SrcSpan "tests/examples/List2.hs" 33 14 33 15
350                         , SrcSpan "tests/examples/List2.hs" 33 15 33 16
351                         , SrcSpan "tests/examples/List2.hs" 33 16 33 17
352                         ]
353                     }
354                   (Cons
355                      SrcSpanInfo
356                        { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 15 33 16
357                        , srcInfoPoints = []
358                        }))))
359      , InfixDecl
360          SrcSpanInfo
361            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 34 1 34 12
362            , srcInfoPoints = [ SrcSpan "tests/examples/List2.hs" 34 8 34 9 ]
363            }
364          (AssocRight
365             SrcSpanInfo
366               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 34 1 34 7
367               , srcInfoPoints = []
368               })
369          (Just 5)
370          [ ConOp
371              SrcSpanInfo
372                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 34 10 34 12
373                , srcInfoPoints = []
374                }
375              (Symbol
376                 SrcSpanInfo
377                   { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 34 10 34 12
378                   , srcInfoPoints = []
379                   }
380                 ":<")
381          ]
382      ]
383  , [ Comment
384        False
385        (SrcSpan "tests/examples/List2.hs" 16 1 16 78)
386        "---------------------------------------------------------------------------"
387    , Comment False (SrcSpan "tests/examples/List2.hs" 17 1 17 5) " |"
388    , Comment
389        False
390        (SrcSpan "tests/examples/List2.hs" 18 1 18 35)
391        " Module      :  Type.Family.List"
392    , Comment
393        False
394        (SrcSpan "tests/examples/List2.hs" 19 1 19 49)
395        " Copyright   :  Copyright (C) 2015 Kyle Carter"
396    , Comment
397        False
398        (SrcSpan "tests/examples/List2.hs" 20 1 20 23)
399        " License     :  BSD3"
400    , Comment False (SrcSpan "tests/examples/List2.hs" 21 1 21 3) ""
401    , Comment
402        False
403        (SrcSpan "tests/examples/List2.hs" 22 1 22 53)
404        " Maintainer  :  Kyle Carter <kylcarte@indiana.edu>"
405    , Comment
406        False
407        (SrcSpan "tests/examples/List2.hs" 23 1 23 31)
408        " Stability   :  experimental"
409    , Comment
410        False
411        (SrcSpan "tests/examples/List2.hs" 24 1 24 29)
412        " Portability :  RankNTypes"
413    , Comment False (SrcSpan "tests/examples/List2.hs" 25 1 25 3) ""
414    , Comment
415        False
416        (SrcSpan "tests/examples/List2.hs" 26 1 26 57)
417        " Convenient aliases and type families for working with"
418    , Comment
419        False
420        (SrcSpan "tests/examples/List2.hs" 27 1 27 21)
421        " type-level lists."
422    , Comment
423        False
424        (SrcSpan "tests/examples/List2.hs" 28 1 28 77)
425        "--------------------------------------------------------------------------"
426    ]
427  )
428