1ParseOk
2  ( Module
3      SrcSpanInfo
4        { srcInfoSpan =
5            SrcSpan "tests/examples/ConstraintKinds3.hs" 1 1 8 1
6        , srcInfoPoints =
7            [ SrcSpan "tests/examples/ConstraintKinds3.hs" 1 1 1 1
8            , SrcSpan "tests/examples/ConstraintKinds3.hs" 2 1 2 1
9            , SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 4 1
10            , SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 4 1
11            , SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 4 1
12            , SrcSpan "tests/examples/ConstraintKinds3.hs" 8 1 8 1
13            , SrcSpan "tests/examples/ConstraintKinds3.hs" 8 1 8 1
14            ]
15        }
16      Nothing
17      [ LanguagePragma
18          SrcSpanInfo
19            { srcInfoSpan =
20                SrcSpan "tests/examples/ConstraintKinds3.hs" 1 1 1 33
21            , srcInfoPoints =
22                [ SrcSpan "tests/examples/ConstraintKinds3.hs" 1 1 1 13
23                , SrcSpan "tests/examples/ConstraintKinds3.hs" 1 30 1 33
24                ]
25            }
26          [ Ident
27              SrcSpanInfo
28                { srcInfoSpan =
29                    SrcSpan "tests/examples/ConstraintKinds3.hs" 1 14 1 29
30                , srcInfoPoints = []
31                }
32              "ConstraintKinds"
33          ]
34      , LanguagePragma
35          SrcSpanInfo
36            { srcInfoSpan =
37                SrcSpan "tests/examples/ConstraintKinds3.hs" 2 1 2 39
38            , srcInfoPoints =
39                [ SrcSpan "tests/examples/ConstraintKinds3.hs" 2 1 2 13
40                , SrcSpan "tests/examples/ConstraintKinds3.hs" 2 36 2 39
41                ]
42            }
43          [ Ident
44              SrcSpanInfo
45                { srcInfoSpan =
46                    SrcSpan "tests/examples/ConstraintKinds3.hs" 2 14 2 35
47                , srcInfoPoints = []
48                }
49              "MultiParamTypeClasses"
50          ]
51      ]
52      []
53      [ ClassDecl
54          SrcSpanInfo
55            { srcInfoSpan =
56                SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 6 25
57            , srcInfoPoints =
58                [ SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 4 6
59                , SrcSpan "tests/examples/ConstraintKinds3.hs" 4 15 4 20
60                , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 3 6 3
61                , SrcSpan "tests/examples/ConstraintKinds3.hs" 8 1 8 0
62                ]
63            }
64          Nothing
65          (DHApp
66             SrcSpanInfo
67               { srcInfoSpan =
68                   SrcSpan "tests/examples/ConstraintKinds3.hs" 4 7 4 14
69               , srcInfoPoints = []
70               }
71             (DHApp
72                SrcSpanInfo
73                  { srcInfoSpan =
74                      SrcSpan "tests/examples/ConstraintKinds3.hs" 4 7 4 12
75                  , srcInfoPoints = []
76                  }
77                (DHead
78                   SrcSpanInfo
79                     { srcInfoSpan =
80                         SrcSpan "tests/examples/ConstraintKinds3.hs" 4 7 4 10
81                     , srcInfoPoints = []
82                     }
83                   (Ident
84                      SrcSpanInfo
85                        { srcInfoSpan =
86                            SrcSpan "tests/examples/ConstraintKinds3.hs" 4 7 4 10
87                        , srcInfoPoints = []
88                        }
89                      "Foo"))
90                (UnkindedVar
91                   SrcSpanInfo
92                     { srcInfoSpan =
93                         SrcSpan "tests/examples/ConstraintKinds3.hs" 4 11 4 12
94                     , srcInfoPoints = []
95                     }
96                   (Ident
97                      SrcSpanInfo
98                        { srcInfoSpan =
99                            SrcSpan "tests/examples/ConstraintKinds3.hs" 4 11 4 12
100                        , srcInfoPoints = []
101                        }
102                      "c")))
103             (UnkindedVar
104                SrcSpanInfo
105                  { srcInfoSpan =
106                      SrcSpan "tests/examples/ConstraintKinds3.hs" 4 13 4 14
107                  , srcInfoPoints = []
108                  }
109                (Ident
110                   SrcSpanInfo
111                     { srcInfoSpan =
112                         SrcSpan "tests/examples/ConstraintKinds3.hs" 4 13 4 14
113                     , srcInfoPoints = []
114                     }
115                   "a")))
116          []
117          (Just
118             [ ClsDecl
119                 SrcSpanInfo
120                   { srcInfoSpan =
121                       SrcSpan "tests/examples/ConstraintKinds3.hs" 6 3 6 25
122                   , srcInfoPoints =
123                       [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 7 6 9 ]
124                   }
125                 (TypeSig
126                    SrcSpanInfo
127                      { srcInfoSpan =
128                          SrcSpan "tests/examples/ConstraintKinds3.hs" 6 3 6 25
129                      , srcInfoPoints =
130                          [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 7 6 9 ]
131                      }
132                    [ Ident
133                        SrcSpanInfo
134                          { srcInfoSpan =
135                              SrcSpan "tests/examples/ConstraintKinds3.hs" 6 3 6 6
136                          , srcInfoPoints = []
137                          }
138                        "bar"
139                    ]
140                    (TyForall
141                       SrcSpanInfo
142                         { srcInfoSpan =
143                             SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 25
144                         , srcInfoPoints = []
145                         }
146                       Nothing
147                       (Just
148                          (CxSingle
149                             SrcSpanInfo
150                               { srcInfoSpan =
151                                   SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 18
152                               , srcInfoPoints =
153                                   [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 11
154                                   , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 14 6 15
155                                   , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 16 6 18
156                                   ]
157                               }
158                             (ParenA
159                                SrcSpanInfo
160                                  { srcInfoSpan =
161                                      SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 18
162                                  , srcInfoPoints =
163                                      [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 11
164                                      , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 14 6 15
165                                      , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 16 6 18
166                                      ]
167                                  }
168                                (TypeA
169                                   SrcSpanInfo
170                                     { srcInfoSpan =
171                                         SrcSpan "tests/examples/ConstraintKinds3.hs" 6 11 6 14
172                                     , srcInfoPoints = []
173                                     }
174                                   (TyApp
175                                      SrcSpanInfo
176                                        { srcInfoSpan =
177                                            SrcSpan "tests/examples/ConstraintKinds3.hs" 6 11 6 14
178                                        , srcInfoPoints = []
179                                        }
180                                      (TyVar
181                                         SrcSpanInfo
182                                           { srcInfoSpan =
183                                               SrcSpan
184                                                 "tests/examples/ConstraintKinds3.hs" 6 11 6 14
185                                           , srcInfoPoints = []
186                                           }
187                                         (Ident
188                                            SrcSpanInfo
189                                              { srcInfoSpan =
190                                                  SrcSpan
191                                                    "tests/examples/ConstraintKinds3.hs" 6 11 6 12
192                                              , srcInfoPoints = []
193                                              }
194                                            "c"))
195                                      (TyVar
196                                         SrcSpanInfo
197                                           { srcInfoSpan =
198                                               SrcSpan
199                                                 "tests/examples/ConstraintKinds3.hs" 6 13 6 14
200                                           , srcInfoPoints = []
201                                           }
202                                         (Ident
203                                            SrcSpanInfo
204                                              { srcInfoSpan =
205                                                  SrcSpan
206                                                    "tests/examples/ConstraintKinds3.hs" 6 13 6 14
207                                              , srcInfoPoints = []
208                                              }
209                                            "a")))))))
210                       (TyFun
211                          SrcSpanInfo
212                            { srcInfoSpan =
213                                SrcSpan "tests/examples/ConstraintKinds3.hs" 6 19 6 25
214                            , srcInfoPoints =
215                                [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 21 6 23 ]
216                            }
217                          (TyVar
218                             SrcSpanInfo
219                               { srcInfoSpan =
220                                   SrcSpan "tests/examples/ConstraintKinds3.hs" 6 19 6 20
221                               , srcInfoPoints = []
222                               }
223                             (Ident
224                                SrcSpanInfo
225                                  { srcInfoSpan =
226                                      SrcSpan "tests/examples/ConstraintKinds3.hs" 6 19 6 20
227                                  , srcInfoPoints = []
228                                  }
229                                "a"))
230                          (TyVar
231                             SrcSpanInfo
232                               { srcInfoSpan =
233                                   SrcSpan "tests/examples/ConstraintKinds3.hs" 6 24 6 25
234                               , srcInfoPoints = []
235                               }
236                             (Ident
237                                SrcSpanInfo
238                                  { srcInfoSpan =
239                                      SrcSpan "tests/examples/ConstraintKinds3.hs" 6 24 6 25
240                                  , srcInfoPoints = []
241                                  }
242                                "a")))))
243             ])
244      ]
245  , []
246  )
247