ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan =
            SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 13 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 1 1
            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 1
            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 1
            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 1
            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 4 1
            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 1
            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 1 11 1
            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 1
            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 13 1 13 1
            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 13 1 13 1
            ]
        }
      Nothing
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 1 37
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 1 13
                , SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 34 1 37
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 14 1 33
                , srcInfoPoints = []
                }
              "ScopedTypeVariables"
          ]
      ]
      []
      [ TypeSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 16
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 6 3 8 ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 5
                , srcInfoPoints = []
                }
              "test"
          ]
          (TyApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 16
               , srcInfoPoints = []
               }
             (TyCon
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 11
                  , srcInfoPoints = []
                  }
                (UnQual
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 11
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 11
                        , srcInfoPoints = []
                        }
                      "IO")))
             (TyCon
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 12 3 16
                  , srcInfoPoints = []
                  }
                (UnQual
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 12 3 16
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 12 3 16
                        , srcInfoPoints = []
                        }
                      "Char"))))
      , PatBind
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 6 13
            , srcInfoPoints = []
            }
          (PVar
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 4 5
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 4 5
                  , srcInfoPoints = []
                  }
                "test"))
          (UnGuardedRhs
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 6 6 13
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 6 4 7 ]
               }
             (Do
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 8 6 13
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 8 4 10
                      , SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 5
                      , SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 5
                      , SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 0
                      ]
                  }
                [ Generator
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 25
                      , srcInfoPoints =
                          [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 15 5 17 ]
                      }
                    (PatTypeSig
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 14
                         , srcInfoPoints =
                             [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 7 5 9 ]
                         }
                       (PVar
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 6
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 6
                               , srcInfoPoints = []
                               }
                             "x"))
                       (TyCon
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 10 5 14
                            , srcInfoPoints = []
                            }
                          (UnQual
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 10 5 14
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 10 5 14
                                  , srcInfoPoints = []
                                  }
                                "Char"))))
                    (Var
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 18 5 25
                         , srcInfoPoints = []
                         }
                       (UnQual
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 18 5 25
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 18 5 25
                               , srcInfoPoints = []
                               }
                             "getChar")))
                , Qualifier
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 13
                      , srcInfoPoints = []
                      }
                    (App
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 13
                         , srcInfoPoints = []
                         }
                       (Var
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 11
                            , srcInfoPoints = []
                            }
                          (UnQual
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 11
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 11
                                  , srcInfoPoints = []
                                  }
                                "return")))
                       (Var
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 12 6 13
                            , srcInfoPoints = []
                            }
                          (UnQual
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 12 6 13
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 12 6 13
                                  , srcInfoPoints = []
                                  }
                                "x"))))
                ]))
          Nothing
      , PatBind
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 26
            , srcInfoPoints = []
            }
          (PatTypeSig
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 16
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 7 9 9 ]
               }
             (PVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 6
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 6
                     , srcInfoPoints = []
                     }
                   "value"))
             (TyCon
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 10 9 16
                  , srcInfoPoints = []
                  }
                (UnQual
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 10 9 16
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 10 9 16
                        , srcInfoPoints = []
                        }
                      "String"))))
          (UnGuardedRhs
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 17 9 26
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 17 9 18 ]
               }
             (Lit
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 19 9 26
                  , srcInfoPoints = []
                  }
                (String
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 19 9 26
                     , srcInfoPoints = []
                     }
                   "Hello"
                   "Hello")))
          Nothing
      , TypeSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 1 11 40
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 12 11 14 ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 1 11 11
                , srcInfoPoints = []
                }
              "forallTest"
          ]
          (TyForall
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 15 11 40
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 15 11 21
                   , SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 24 11 25
                   ]
               }
             (Just
                [ UnkindedVar
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 22 11 23
                      , srcInfoPoints = []
                      }
                    (Ident
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 22 11 23
                         , srcInfoPoints = []
                         }
                       "x")
                ])
             (Just
                (CxSingle
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33 ]
                     }
                   (ClassA
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33 ]
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 28
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 28
                              , srcInfoPoints = []
                              }
                            "Eq"))
                      [ TyVar
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 29 11 30
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 29 11 30
                               , srcInfoPoints = []
                               }
                             "x")
                      ])))
             (TyFun
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 34 11 40
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 36 11 38 ]
                  }
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 34 11 35
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 34 11 35
                        , srcInfoPoints = []
                        }
                      "x"))
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 39 11 40
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 39 11 40
                        , srcInfoPoints = []
                        }
                      "x"))))
      , FunBind
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 54
            , srcInfoPoints = []
            }
          [ Match
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 54
                , srcInfoPoints = []
                }
              (Ident
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 11
                   , srcInfoPoints = []
                   }
                 "forallTest")
              [ PVar
                  SrcSpanInfo
                    { srcInfoSpan =
                        SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 12 12 13
                    , srcInfoPoints = []
                    }
                  (Ident
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 12 12 13
                       , srcInfoPoints = []
                       }
                     "x")
              ]
              (UnGuardedRhs
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 14 12 54
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 14 12 15 ]
                   }
                 (If
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 16 12 54
                      , srcInfoPoints =
                          [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 16 12 18
                          , SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 26 12 30
                          , SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 48 12 52
                          ]
                      }
                    (InfixApp
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 25
                         , srcInfoPoints = []
                         }
                       (Var
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 20
                            , srcInfoPoints = []
                            }
                          (UnQual
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 20
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 20
                                  , srcInfoPoints = []
                                  }
                                "x")))
                       (QVarOp
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 21 12 23
                            , srcInfoPoints = []
                            }
                          (UnQual
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 21 12 23
                               , srcInfoPoints = []
                               }
                             (Symbol
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 21 12 23
                                  , srcInfoPoints = []
                                  }
                                "==")))
                       (Var
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 24 12 25
                            , srcInfoPoints = []
                            }
                          (UnQual
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 24 12 25
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 24 12 25
                                  , srcInfoPoints = []
                                  }
                                "x"))))
                    (Paren
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 31 12 47
                         , srcInfoPoints =
                             [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 31 12 32
                             , SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 46 12 47
                             ]
                         }
                       (ExpTypeSig
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 46
                            , srcInfoPoints =
                                [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 42 12 44 ]
                            }
                          (Var
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 41
                               , srcInfoPoints = []
                               }
                             (UnQual
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 41
                                  , srcInfoPoints = []
                                  }
                                (Ident
                                   SrcSpanInfo
                                     { srcInfoSpan =
                                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 41
                                     , srcInfoPoints = []
                                     }
                                   "undefined")))
                          (TyVar
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 45 12 46
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 45 12 46
                                  , srcInfoPoints = []
                                  }
                                "x"))))
                    (Var
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 53 12 54
                         , srcInfoPoints = []
                         }
                       (UnQual
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 53 12 54
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 53 12 54
                               , srcInfoPoints = []
                               }
                             "x")))))
              Nothing
          ]
      ]
  , []
  )