ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan =
            SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 11 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 1 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 2 1 2 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 3 1 3 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 7 1 7 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 9 1 9 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 11 1 11 1
            , SrcSpan "tests/examples/ConstraintKinds.hs" 11 1 11 1
            ]
        }
      Nothing
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 1 30
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 1 13
                , SrcSpan "tests/examples/ConstraintKinds.hs" 1 27 1 30
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/ConstraintKinds.hs" 1 14 1 26
                , srcInfoPoints = []
                }
              "TypeFamilies"
          ]
      , LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ConstraintKinds.hs" 2 1 2 33
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ConstraintKinds.hs" 2 1 2 13
                , SrcSpan "tests/examples/ConstraintKinds.hs" 2 30 2 33
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/ConstraintKinds.hs" 2 14 2 29
                , srcInfoPoints = []
                }
              "ConstraintKinds"
          ]
      , LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ConstraintKinds.hs" 3 1 3 39
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ConstraintKinds.hs" 3 1 3 13
                , SrcSpan "tests/examples/ConstraintKinds.hs" 3 36 3 39
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/ConstraintKinds.hs" 3 14 3 35
                , srcInfoPoints = []
                }
              "MultiParamTypeClasses"
          ]
      ]
      []
      [ ClassDecl
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 6 0
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 6
                , SrcSpan "tests/examples/ConstraintKinds.hs" 4 13 4 18
                , SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 1
                , SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 1
                , SrcSpan "tests/examples/ConstraintKinds.hs" 6 0 6 0
                ]
            }
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ConstraintKinds.hs" 4 7 4 12
               , srcInfoPoints = []
               }
             (DHead
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ConstraintKinds.hs" 4 7 4 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 4 7 4 10
                     , srcInfoPoints = []
                     }
                   "Foo"))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ConstraintKinds.hs" 4 11 4 12
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 4 11 4 12
                     , srcInfoPoints = []
                     }
                   "a")))
          []
          (Just [])
      , DataDecl
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 5
            , srcInfoPoints = []
            }
          (DataType
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 5
               , srcInfoPoints = []
               })
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ConstraintKinds.hs" 6 6 6 11
               , srcInfoPoints = []
               }
             (DHead
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 6 6 9
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 6 6 9
                     , srcInfoPoints = []
                     }
                   "Bar"))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ConstraintKinds.hs" 6 10 6 11
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 6 10 6 11
                     , srcInfoPoints = []
                     }
                   "a")))
          []
          Nothing
      , TypeDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ConstraintKinds.hs" 7 1 7 37
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ConstraintKinds.hs" 7 1 7 5
                , SrcSpan "tests/examples/ConstraintKinds.hs" 7 18 7 19
                ]
            }
          (DHApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 17
               , srcInfoPoints = []
               }
             (DHApp
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 15
                  , srcInfoPoints = []
                  }
                (DHead
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 13
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 13
                        , srcInfoPoints = []
                        }
                      "Bazable"))
                (UnkindedVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 14 7 15
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 14 7 15
                        , srcInfoPoints = []
                        }
                      "a")))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ConstraintKinds.hs" 7 16 7 17
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 16 7 17
                     , srcInfoPoints = []
                     }
                   "b")))
          (TyParen
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ConstraintKinds.hs" 7 20 7 37
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/ConstraintKinds.hs" 7 20 7 21
                   , SrcSpan "tests/examples/ConstraintKinds.hs" 7 36 7 37
                   ]
               }
             (TyEquals
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 36
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/ConstraintKinds.hs" 7 27 7 28 ]
                  }
                (TyApp
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 26
                     , srcInfoPoints = []
                     }
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 24
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 24
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 24
                              , srcInfoPoints = []
                              }
                            "Bar")))
                   (TyVar
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 25 7 26
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/ConstraintKinds.hs" 7 25 7 26
                           , srcInfoPoints = []
                           }
                         "a")))
                (TyApp
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 36
                     , srcInfoPoints = []
                     }
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 34
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 34
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 34
                              , srcInfoPoints = []
                              }
                            "Maybe")))
                   (TyVar
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 35 7 36
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/ConstraintKinds.hs" 7 35 7 36
                           , srcInfoPoints = []
                           }
                         "b")))))
      , TypeSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ConstraintKinds.hs" 9 1 9 29
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 5 9 7 ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 1 9 4
                , srcInfoPoints = []
                }
              "baz"
          ]
          (TyForall
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 29
               , srcInfoPoints = []
               }
             Nothing
             (Just
                (CxSingle
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]
                     }
                   (ClassA
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 15
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 15
                              , srcInfoPoints = []
                              }
                            "Bazable"))
                      [ TyVar
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ConstraintKinds.hs" 9 16 9 17
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ConstraintKinds.hs" 9 16 9 17
                               , srcInfoPoints = []
                               }
                             "a")
                      , TyVar
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ConstraintKinds.hs" 9 18 9 19
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ConstraintKinds.hs" 9 18 9 19
                               , srcInfoPoints = []
                               }
                             "b")
                      ])))
             (TyFun
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ConstraintKinds.hs" 9 23 9 29
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 25 9 27 ]
                  }
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 9 23 9 24
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 9 23 9 24
                        , srcInfoPoints = []
                        }
                      "a"))
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 9 28 9 29
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 9 28 9 29
                        , srcInfoPoints = []
                        }
                      "a"))))
      , PatBind
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 9
            , srcInfoPoints = []
            }
          (PVar
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 4
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 4
                  , srcInfoPoints = []
                  }
                "baz"))
          (UnGuardedRhs
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ConstraintKinds.hs" 10 5 10 9
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/ConstraintKinds.hs" 10 5 10 6 ]
               }
             (Var
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ConstraintKinds.hs" 10 7 10 9
                  , srcInfoPoints = []
                  }
                (UnQual
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ConstraintKinds.hs" 10 7 10 9
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ConstraintKinds.hs" 10 7 10 9
                        , srcInfoPoints = []
                        }
                      "id"))))
          Nothing
      ]
  , []
  )