ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan =
            SrcSpan "tests/examples/ForallInInstance.hs" 1 1 5 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/ForallInInstance.hs" 1 1 1 1
            , SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 1
            , SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 1
            , SrcSpan "tests/examples/ForallInInstance.hs" 4 1 4 1
            , SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1
            , SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1
            ]
        }
      (Just
         (ModuleHead
            SrcSpanInfo
              { srcInfoSpan =
                  SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 30
              , srcInfoPoints =
                  [ SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 7
                  , SrcSpan "tests/examples/ForallInInstance.hs" 2 25 2 30
                  ]
              }
            (ModuleName
               SrcSpanInfo
                 { srcInfoSpan =
                     SrcSpan "tests/examples/ForallInInstance.hs" 2 8 2 24
                 , srcInfoPoints = []
                 }
               "ForallInInstance")
            Nothing
            Nothing))
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ForallInInstance.hs" 1 1 1 37
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ForallInInstance.hs" 1 1 1 13
                , SrcSpan "tests/examples/ForallInInstance.hs" 1 34 1 37
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/ForallInInstance.hs" 1 14 1 33
                , srcInfoPoints = []
                }
              "ScopedTypeVariables"
          ]
      ]
      []
      [ InstDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ForallInInstance.hs" 4 1 5 0
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ForallInInstance.hs" 4 1 4 9
                , SrcSpan "tests/examples/ForallInInstance.hs" 4 45 4 50
                , SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1
                , SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1
                , SrcSpan "tests/examples/ForallInInstance.hs" 5 0 5 0
                ]
            }
          Nothing
          (IRule
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ForallInInstance.hs" 4 10 4 44
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/ForallInInstance.hs" 4 10 4 16
                   , SrcSpan "tests/examples/ForallInInstance.hs" 4 18 4 19
                   ]
               }
             (Just
                [ UnkindedVar
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/ForallInInstance.hs" 4 17 4 18
                      , srcInfoPoints = []
                      }
                    (Ident
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/ForallInInstance.hs" 4 17 4 18
                         , srcInfoPoints = []
                         }
                       "a")
                ])
             (Just
                (CxSingle
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32 ]
                     }
                   (ClassA
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32 ]
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 27
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 27
                              , srcInfoPoints = []
                              }
                            "MyClass"))
                      [ TyVar
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ForallInInstance.hs" 4 28 4 29
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ForallInInstance.hs" 4 28 4 29
                               , srcInfoPoints = []
                               }
                             "a")
                      ])))
             (IHApp
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 44
                  , srcInfoPoints = []
                  }
                (IHCon
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 40
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 40
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 40
                           , srcInfoPoints = []
                           }
                         "MyClass")))
                (TyList
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ForallInInstance.hs" 4 41 4 44
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/ForallInInstance.hs" 4 41 4 42
                         , SrcSpan "tests/examples/ForallInInstance.hs" 4 43 4 44
                         ]
                     }
                   (TyVar
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ForallInInstance.hs" 4 42 4 43
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/ForallInInstance.hs" 4 42 4 43
                           , srcInfoPoints = []
                           }
                         "a")))))
          (Just [])
      ]
  , []
  )