1ParseOk
2  ( Module
3      SrcSpanInfo
4        { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 1 2 1
5        , srcInfoPoints =
6            [ SrcSpan "tests/examples/Rules.hs" 1 1 1 1
7            , SrcSpan "tests/examples/Rules.hs" 1 1 1 1
8            , SrcSpan "tests/examples/Rules.hs" 1 1 1 1
9            , SrcSpan "tests/examples/Rules.hs" 2 1 2 1
10            , SrcSpan "tests/examples/Rules.hs" 2 1 2 1
11            ]
12        }
13      Nothing
14      []
15      []
16      [ RulePragmaDecl
17          SrcSpanInfo
18            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 1 1 105
19            , srcInfoPoints =
20                [ SrcSpan "tests/examples/Rules.hs" 1 1 1 10
21                , SrcSpan "tests/examples/Rules.hs" 1 102 1 105
22                ]
23            }
24          [ Rule
25              SrcSpanInfo
26                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 11 1 101
27                , srcInfoPoints =
28                    [ SrcSpan "tests/examples/Rules.hs" 1 11 1 23
29                    , SrcSpan "tests/examples/Rules.hs" 1 24 1 30
30                    , SrcSpan "tests/examples/Rules.hs" 1 61 1 62
31                    , SrcSpan "tests/examples/Rules.hs" 1 78 1 79
32                    ]
33                }
34              "head/build"
35              Nothing
36              (Just
37                 [ TypedRuleVar
38                     SrcSpanInfo
39                       { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 31 1 60
40                       , srcInfoPoints =
41                           [ SrcSpan "tests/examples/Rules.hs" 1 31 1 32
42                           , SrcSpan "tests/examples/Rules.hs" 1 33 1 35
43                           , SrcSpan "tests/examples/Rules.hs" 1 59 1 60
44                           ]
45                       }
46                     (Ident
47                        SrcSpanInfo
48                          { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 32 1 33
49                          , srcInfoPoints = []
50                          }
51                        "g")
52                     (TyForall
53                        SrcSpanInfo
54                          { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 35 1 59
55                          , srcInfoPoints =
56                              [ SrcSpan "tests/examples/Rules.hs" 1 35 1 41
57                              , SrcSpan "tests/examples/Rules.hs" 1 43 1 44
58                              ]
59                          }
60                        (Just
61                           [ UnkindedVar
62                               SrcSpanInfo
63                                 { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 42 1 43
64                                 , srcInfoPoints = []
65                                 }
66                               (Ident
67                                  SrcSpanInfo
68                                    { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 42 1 43
69                                    , srcInfoPoints = []
70                                    }
71                                  "b")
72                           ])
73                        Nothing
74                        (TyFun
75                           SrcSpanInfo
76                             { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 44 1 59
77                             , srcInfoPoints = [ SrcSpan "tests/examples/Rules.hs" 1 53 1 55 ]
78                             }
79                           (TyParen
80                              SrcSpanInfo
81                                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 44 1 53
82                                , srcInfoPoints =
83                                    [ SrcSpan "tests/examples/Rules.hs" 1 44 1 45
84                                    , SrcSpan "tests/examples/Rules.hs" 1 52 1 53
85                                    ]
86                                }
87                              (TyFun
88                                 SrcSpanInfo
89                                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 45 1 52
90                                   , srcInfoPoints = [ SrcSpan "tests/examples/Rules.hs" 1 46 1 48 ]
91                                   }
92                                 (TyVar
93                                    SrcSpanInfo
94                                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 45 1 46
95                                      , srcInfoPoints = []
96                                      }
97                                    (Ident
98                                       SrcSpanInfo
99                                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 45 1 46
100                                         , srcInfoPoints = []
101                                         }
102                                       "a"))
103                                 (TyFun
104                                    SrcSpanInfo
105                                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 48 1 52
106                                      , srcInfoPoints =
107                                          [ SrcSpan "tests/examples/Rules.hs" 1 49 1 51 ]
108                                      }
109                                    (TyVar
110                                       SrcSpanInfo
111                                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 48 1 49
112                                         , srcInfoPoints = []
113                                         }
114                                       (Ident
115                                          SrcSpanInfo
116                                            { srcInfoSpan =
117                                                SrcSpan "tests/examples/Rules.hs" 1 48 1 49
118                                            , srcInfoPoints = []
119                                            }
120                                          "b"))
121                                    (TyVar
122                                       SrcSpanInfo
123                                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 51 1 52
124                                         , srcInfoPoints = []
125                                         }
126                                       (Ident
127                                          SrcSpanInfo
128                                            { srcInfoSpan =
129                                                SrcSpan "tests/examples/Rules.hs" 1 51 1 52
130                                            , srcInfoPoints = []
131                                            }
132                                          "b")))))
133                           (TyFun
134                              SrcSpanInfo
135                                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 55 1 59
136                                , srcInfoPoints = [ SrcSpan "tests/examples/Rules.hs" 1 56 1 58 ]
137                                }
138                              (TyVar
139                                 SrcSpanInfo
140                                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 55 1 56
141                                   , srcInfoPoints = []
142                                   }
143                                 (Ident
144                                    SrcSpanInfo
145                                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 55 1 56
146                                      , srcInfoPoints = []
147                                      }
148                                    "b"))
149                              (TyVar
150                                 SrcSpanInfo
151                                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 58 1 59
152                                   , srcInfoPoints = []
153                                   }
154                                 (Ident
155                                    SrcSpanInfo
156                                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 58 1 59
157                                      , srcInfoPoints = []
158                                      }
159                                    "b")))))
160                 ])
161              (App
162                 SrcSpanInfo
163                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 77
164                   , srcInfoPoints = []
165                   }
166                 (Var
167                    SrcSpanInfo
168                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 67
169                      , srcInfoPoints = []
170                      }
171                    (UnQual
172                       SrcSpanInfo
173                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 67
174                         , srcInfoPoints = []
175                         }
176                       (Ident
177                          SrcSpanInfo
178                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 67
179                            , srcInfoPoints = []
180                            }
181                          "head")))
182                 (Paren
183                    SrcSpanInfo
184                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 68 1 77
185                      , srcInfoPoints =
186                          [ SrcSpan "tests/examples/Rules.hs" 1 68 1 69
187                          , SrcSpan "tests/examples/Rules.hs" 1 76 1 77
188                          ]
189                      }
190                    (App
191                       SrcSpanInfo
192                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 76
193                         , srcInfoPoints = []
194                         }
195                       (Var
196                          SrcSpanInfo
197                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 74
198                            , srcInfoPoints = []
199                            }
200                          (UnQual
201                             SrcSpanInfo
202                               { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 74
203                               , srcInfoPoints = []
204                               }
205                             (Ident
206                                SrcSpanInfo
207                                  { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 74
208                                  , srcInfoPoints = []
209                                  }
210                                "build")))
211                       (Var
212                          SrcSpanInfo
213                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 75 1 76
214                            , srcInfoPoints = []
215                            }
216                          (UnQual
217                             SrcSpanInfo
218                               { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 75 1 76
219                               , srcInfoPoints = []
220                               }
221                             (Ident
222                                SrcSpanInfo
223                                  { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 75 1 76
224                                  , srcInfoPoints = []
225                                  }
226                                "g"))))))
227              (App
228                 SrcSpanInfo
229                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 101
230                   , srcInfoPoints = []
231                   }
232                 (App
233                    SrcSpanInfo
234                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 93
235                      , srcInfoPoints = []
236                      }
237                    (Var
238                       SrcSpanInfo
239                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 81
240                         , srcInfoPoints = []
241                         }
242                       (UnQual
243                          SrcSpanInfo
244                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 81
245                            , srcInfoPoints = []
246                            }
247                          (Ident
248                             SrcSpanInfo
249                               { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 81
250                               , srcInfoPoints = []
251                               }
252                             "g")))
253                    (Paren
254                       SrcSpanInfo
255                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 82 1 93
256                         , srcInfoPoints =
257                             [ SrcSpan "tests/examples/Rules.hs" 1 82 1 83
258                             , SrcSpan "tests/examples/Rules.hs" 1 92 1 93
259                             ]
260                         }
261                       (Lambda
262                          SrcSpanInfo
263                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 83 1 92
264                            , srcInfoPoints =
265                                [ SrcSpan "tests/examples/Rules.hs" 1 83 1 84
266                                , SrcSpan "tests/examples/Rules.hs" 1 88 1 90
267                                ]
268                            }
269                          [ PVar
270                              SrcSpanInfo
271                                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 84 1 85
272                                , srcInfoPoints = []
273                                }
274                              (Ident
275                                 SrcSpanInfo
276                                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 84 1 85
277                                   , srcInfoPoints = []
278                                   }
279                                 "x")
280                          , PWildCard
281                              SrcSpanInfo
282                                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 86 1 87
283                                , srcInfoPoints = []
284                                }
285                          ]
286                          (Var
287                             SrcSpanInfo
288                               { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 91 1 92
289                               , srcInfoPoints = []
290                               }
291                             (UnQual
292                                SrcSpanInfo
293                                  { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 91 1 92
294                                  , srcInfoPoints = []
295                                  }
296                                (Ident
297                                   SrcSpanInfo
298                                     { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 91 1 92
299                                     , srcInfoPoints = []
300                                     }
301                                   "x"))))))
302                 (Var
303                    SrcSpanInfo
304                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 94 1 101
305                      , srcInfoPoints = []
306                      }
307                    (UnQual
308                       SrcSpanInfo
309                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 94 1 101
310                         , srcInfoPoints = []
311                         }
312                       (Ident
313                          SrcSpanInfo
314                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 94 1 101
315                            , srcInfoPoints = []
316                            }
317                          "badHead"))))
318          ]
319      ]
320  , []
321  )
322