ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan =
            SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 7 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 1
            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 1
            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 1
            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 1
            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 1
            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 7 1 7 1
            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 7 1 7 1
            ]
        }
      Nothing
      []
      []
      [ ClassDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 3 28
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 6
                , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 12 2 17
                , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 5
                , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 0
                ]
            }
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 7 2 11
               , srcInfoPoints = []
               }
             (DHead
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 7 2 9
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 7 2 9
                     , srcInfoPoints = []
                     }
                   "C1"))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 10 2 11
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 10 2 11
                     , srcInfoPoints = []
                     }
                   "a")))
          []
          (Just
             [ ClsDecl
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 28
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 14 3 16 ]
                   }
                 (TypeSig
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 28
                      , srcInfoPoints =
                          [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 14 3 16 ]
                      }
                    [ Ident
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 13
                          , srcInfoPoints = []
                          }
                        "toString"
                    ]
                    (TyFun
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 17 3 28
                         , srcInfoPoints =
                             [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 19 3 21 ]
                         }
                       (TyVar
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 17 3 18
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 17 3 18
                               , srcInfoPoints = []
                               }
                             "a"))
                       (TyCon
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 22 3 28
                            , srcInfoPoints = []
                            }
                          (UnQual
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 22 3 28
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 22 3 28
                                  , srcInfoPoints = []
                                  }
                                "String")))))
             ])
      , TypeSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 13
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 4 5 6 ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 3
                , srcInfoPoints = []
                }
              "t1"
          ]
          (TyCon
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 7 5 13
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 7 5 13
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 7 5 13
                     , srcInfoPoints = []
                     }
                   "String")))
      , PatBind
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 13
            , srcInfoPoints = []
            }
          (PVar
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 3
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 3
                  , srcInfoPoints = []
                  }
                "t1"))
          (UnGuardedRhs
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 4 6 13
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 4 6 5 ]
               }
             (Lit
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 6 6 13
                  , srcInfoPoints = []
                  }
                (String
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 6 6 13
                     , srcInfoPoints = []
                     }
                   "Hello"
                   "Hello")))
          Nothing
      ]
  , []
  )