ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 5 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 1 1
            , SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 1
            , SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 1
            , SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 1
            , SrcSpan "tests/examples/DeriveGeneric.hs" 5 1 5 1
            , SrcSpan "tests/examples/DeriveGeneric.hs" 5 1 5 1
            ]
        }
      Nothing
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 1 31
            , srcInfoPoints =
                [ SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 1 13
                , SrcSpan "tests/examples/DeriveGeneric.hs" 1 28 1 31
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 1 14 1 27
                , srcInfoPoints = []
                }
              "DeriveGeneric"
          ]
      ]
      []
      [ DataDecl
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 4 19
            , srcInfoPoints =
                [ SrcSpan "tests/examples/DeriveGeneric.hs" 3 17 3 18
                , SrcSpan "tests/examples/DeriveGeneric.hs" 3 52 3 53
                ]
            }
          (DataType
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 5
               , srcInfoPoints = []
               })
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 6 3 16
               , srcInfoPoints = []
               }
             (DHead
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 6 3 14
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 6 3 14
                     , srcInfoPoints = []
                     }
                   "UserTree"))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 15 3 16
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 15 3 16
                     , srcInfoPoints = []
                     }
                   "a")))
          [ QualConDecl
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 19 3 51
                , srcInfoPoints = []
                }
              Nothing
              Nothing
              (ConDecl
                 SrcSpanInfo
                   { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 19 3 51
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 19 3 23
                      , srcInfoPoints = []
                      }
                    "Node")
                 [ TyVar
                     SrcSpanInfo
                       { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 24 3 25
                       , srcInfoPoints = []
                       }
                     (Ident
                        SrcSpanInfo
                          { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 24 3 25
                          , srcInfoPoints = []
                          }
                        "a")
                 , TyParen
                     SrcSpanInfo
                       { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 26 3 38
                       , srcInfoPoints =
                           [ SrcSpan "tests/examples/DeriveGeneric.hs" 3 26 3 27
                           , SrcSpan "tests/examples/DeriveGeneric.hs" 3 37 3 38
                           ]
                       }
                     (TyApp
                        SrcSpanInfo
                          { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 37
                          , srcInfoPoints = []
                          }
                        (TyCon
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 35
                             , srcInfoPoints = []
                             }
                           (UnQual
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 35
                                , srcInfoPoints = []
                                }
                              (Ident
                                 SrcSpanInfo
                                   { srcInfoSpan =
                                       SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 35
                                   , srcInfoPoints = []
                                   }
                                 "UserTree")))
                        (TyVar
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 36 3 37
                             , srcInfoPoints = []
                             }
                           (Ident
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 36 3 37
                                , srcInfoPoints = []
                                }
                              "a")))
                 , TyParen
                     SrcSpanInfo
                       { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 39 3 51
                       , srcInfoPoints =
                           [ SrcSpan "tests/examples/DeriveGeneric.hs" 3 39 3 40
                           , SrcSpan "tests/examples/DeriveGeneric.hs" 3 50 3 51
                           ]
                       }
                     (TyApp
                        SrcSpanInfo
                          { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 50
                          , srcInfoPoints = []
                          }
                        (TyCon
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 48
                             , srcInfoPoints = []
                             }
                           (UnQual
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 48
                                , srcInfoPoints = []
                                }
                              (Ident
                                 SrcSpanInfo
                                   { srcInfoSpan =
                                       SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 48
                                   , srcInfoPoints = []
                                   }
                                 "UserTree")))
                        (TyVar
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 49 3 50
                             , srcInfoPoints = []
                             }
                           (Ident
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 49 3 50
                                , srcInfoPoints = []
                                }
                              "a")))
                 ])
          , QualConDecl
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 54 3 58
                , srcInfoPoints = []
                }
              Nothing
              Nothing
              (ConDecl
                 SrcSpanInfo
                   { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 54 3 58
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 54 3 58
                      , srcInfoPoints = []
                      }
                    "Leaf")
                 [])
          ]
          [ Deriving
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 3 4 19
                , srcInfoPoints =
                    [ SrcSpan "tests/examples/DeriveGeneric.hs" 4 3 4 11 ]
                }
              Nothing
              [ IRule
                  SrcSpanInfo
                    { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19
                    , srcInfoPoints = []
                    }
                  Nothing
                  Nothing
                  (IHCon
                     SrcSpanInfo
                       { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19
                       , srcInfoPoints = []
                       }
                     (UnQual
                        SrcSpanInfo
                          { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19
                          , srcInfoPoints = []
                          }
                        (Ident
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19
                             , srcInfoPoints = []
                             }
                           "Generic")))
              ]
          ]
      ]
  , []
  )