ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 1 1 3 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/ReadP.hs" 1 1 1 1
            , SrcSpan "tests/examples/ReadP.hs" 2 1 2 1
            , SrcSpan "tests/examples/ReadP.hs" 2 1 2 1
            , SrcSpan "tests/examples/ReadP.hs" 2 1 2 1
            , SrcSpan "tests/examples/ReadP.hs" 3 1 3 1
            , SrcSpan "tests/examples/ReadP.hs" 3 1 3 1
            ]
        }
      Nothing
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 1 1 1 31
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ReadP.hs" 1 1 1 13
                , SrcSpan "tests/examples/ReadP.hs" 1 28 1 31
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 1 14 1 27
                , srcInfoPoints = []
                }
              "TypeOperators"
          ]
      ]
      []
      [ DataDecl
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 1 2 51
            , srcInfoPoints = [ SrcSpan "tests/examples/ReadP.hs" 2 17 2 18 ]
            }
          (NewType
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 1 2 8
               , srcInfoPoints = []
               })
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 9 2 16
               , srcInfoPoints = []
               }
             (DHead
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 9 2 14
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 9 2 14
                     , srcInfoPoints = []
                     }
                   "ReadP"))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 15 2 16
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 15 2 16
                     , srcInfoPoints = []
                     }
                   "a")))
          [ QualConDecl
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 19 2 51
                , srcInfoPoints = []
                }
              Nothing
              Nothing
              (ConDecl
                 SrcSpanInfo
                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 19 2 51
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 19 2 20
                      , srcInfoPoints = []
                      }
                    "R")
                 [ TyParen
                     SrcSpanInfo
                       { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 21 2 51
                       , srcInfoPoints =
                           [ SrcSpan "tests/examples/ReadP.hs" 2 21 2 22
                           , SrcSpan "tests/examples/ReadP.hs" 2 50 2 51
                           ]
                       }
                     (TyInfix
                        SrcSpanInfo
                          { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 50
                          , srcInfoPoints = []
                          }
                        (TyApp
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 30
                             , srcInfoPoints = []
                             }
                           (TyVar
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 28
                                , srcInfoPoints = []
                                }
                              (Ident
                                 SrcSpanInfo
                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 28
                                   , srcInfoPoints = []
                                   }
                                 "forall"))
                           (TyVar
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 29 2 30
                                , srcInfoPoints = []
                                }
                              (Ident
                                 SrcSpanInfo
                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 29 2 30
                                   , srcInfoPoints = []
                                   }
                                 "b")))
                        (UnpromotedName
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 31 2 32
                             , srcInfoPoints = []
                             }
                           (UnQual
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 31 2 32
                                , srcInfoPoints = []
                                }
                              (Symbol
                                 SrcSpanInfo
                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 31 2 32
                                   , srcInfoPoints = []
                                   }
                                 ".")))
                        (TyFun
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 33 2 50
                             , srcInfoPoints = [ SrcSpan "tests/examples/ReadP.hs" 2 44 2 46 ]
                             }
                           (TyParen
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 33 2 43
                                , srcInfoPoints =
                                    [ SrcSpan "tests/examples/ReadP.hs" 2 33 2 34
                                    , SrcSpan "tests/examples/ReadP.hs" 2 42 2 43
                                    ]
                                }
                              (TyFun
                                 SrcSpanInfo
                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 34 2 42
                                   , srcInfoPoints = [ SrcSpan "tests/examples/ReadP.hs" 2 36 2 38 ]
                                   }
                                 (TyVar
                                    SrcSpanInfo
                                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 34 2 35
                                      , srcInfoPoints = []
                                      }
                                    (Ident
                                       SrcSpanInfo
                                         { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 34 2 35
                                         , srcInfoPoints = []
                                         }
                                       "a"))
                                 (TyApp
                                    SrcSpanInfo
                                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 39 2 42
                                      , srcInfoPoints = []
                                      }
                                    (TyCon
                                       SrcSpanInfo
                                         { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 39 2 40
                                         , srcInfoPoints = []
                                         }
                                       (UnQual
                                          SrcSpanInfo
                                            { srcInfoSpan =
                                                SrcSpan "tests/examples/ReadP.hs" 2 39 2 40
                                            , srcInfoPoints = []
                                            }
                                          (Ident
                                             SrcSpanInfo
                                               { srcInfoSpan =
                                                   SrcSpan "tests/examples/ReadP.hs" 2 39 2 40
                                               , srcInfoPoints = []
                                               }
                                             "P")))
                                    (TyVar
                                       SrcSpanInfo
                                         { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 41 2 42
                                         , srcInfoPoints = []
                                         }
                                       (Ident
                                          SrcSpanInfo
                                            { srcInfoSpan =
                                                SrcSpan "tests/examples/ReadP.hs" 2 41 2 42
                                            , srcInfoPoints = []
                                            }
                                          "b")))))
                           (TyApp
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 50
                                , srcInfoPoints = []
                                }
                              (TyCon
                                 SrcSpanInfo
                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 48
                                   , srcInfoPoints = []
                                   }
                                 (UnQual
                                    SrcSpanInfo
                                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 48
                                      , srcInfoPoints = []
                                      }
                                    (Ident
                                       SrcSpanInfo
                                         { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 48
                                         , srcInfoPoints = []
                                         }
                                       "P")))
                              (TyVar
                                 SrcSpanInfo
                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 49 2 50
                                   , srcInfoPoints = []
                                   }
                                 (Ident
                                    SrcSpanInfo
                                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 49 2 50
                                      , srcInfoPoints = []
                                      }
                                    "b")))))
                 ])
          ]
          []
      ]
  , []
  )