ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 1 1 6 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/TySplice4.hs" 1 1 1 1
            , SrcSpan "tests/examples/TySplice4.hs" 2 1 2 1
            , SrcSpan "tests/examples/TySplice4.hs" 2 1 2 1
            , SrcSpan "tests/examples/TySplice4.hs" 2 1 2 1
            , SrcSpan "tests/examples/TySplice4.hs" 5 1 5 1
            , SrcSpan "tests/examples/TySplice4.hs" 6 1 6 1
            , SrcSpan "tests/examples/TySplice4.hs" 6 1 6 1
            ]
        }
      Nothing
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 1 1 1 33
            , srcInfoPoints =
                [ SrcSpan "tests/examples/TySplice4.hs" 1 1 1 13
                , SrcSpan "tests/examples/TySplice4.hs" 1 30 1 33
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 1 14 1 29
                , srcInfoPoints = []
                }
              "TemplateHaskell"
          ]
      ]
      []
      [ PatBind
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 1 3 19
            , srcInfoPoints = []
            }
          (PVar
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 1 2 2
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 1 2 2
                  , srcInfoPoints = []
                  }
                "x"))
          (UnGuardedRhs
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 3 3 19
               , srcInfoPoints = [ SrcSpan "tests/examples/TySplice4.hs" 2 3 2 4 ]
               }
             (BracketExp
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 5 3 19
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/TySplice4.hs" 2 5 2 8
                      , SrcSpan "tests/examples/TySplice4.hs" 3 9 3 9
                      , SrcSpan "tests/examples/TySplice4.hs" 3 17 3 19
                      ]
                  }
                (DeclBracket
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 5 3 19
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/TySplice4.hs" 2 9 2 9
                         , SrcSpan "tests/examples/TySplice4.hs" 3 9 3 9
                         , SrcSpan "tests/examples/TySplice4.hs" 3 17 3 17
                         , SrcSpan "tests/examples/TySplice4.hs" 3 17 3 19
                         ]
                     }
                   [ TypeSig
                       SrcSpanInfo
                         { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 9 2 22
                         , srcInfoPoints =
                             [ SrcSpan "tests/examples/TySplice4.hs" 2 11 2 13 ]
                         }
                       [ Ident
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 9 2 10
                             , srcInfoPoints = []
                             }
                           "f"
                       ]
                       (TyFun
                          SrcSpanInfo
                            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 14 2 22
                            , srcInfoPoints =
                                [ SrcSpan "tests/examples/TySplice4.hs" 2 16 2 18 ]
                            }
                          (TyVar
                             SrcSpanInfo
                               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 14 2 15
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 14 2 15
                                  , srcInfoPoints = []
                                  }
                                "a"))
                          (TyCon
                             SrcSpanInfo
                               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 19 2 22
                               , srcInfoPoints = []
                               }
                             (UnQual
                                SrcSpanInfo
                                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 19 2 22
                                  , srcInfoPoints = []
                                  }
                                (Ident
                                   SrcSpanInfo
                                     { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 19 2 22
                                     , srcInfoPoints = []
                                     }
                                   "Int"))))
                   , FunBind
                       SrcSpanInfo
                         { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 9 3 16
                         , srcInfoPoints = []
                         }
                       [ Match
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 9 3 16
                             , srcInfoPoints = []
                             }
                           (Ident
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 9 3 10
                                , srcInfoPoints = []
                                }
                              "f")
                           [ PVar
                               SrcSpanInfo
                                 { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 11 3 12
                                 , srcInfoPoints = []
                                 }
                               (Ident
                                  SrcSpanInfo
                                    { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 11 3 12
                                    , srcInfoPoints = []
                                    }
                                  "x")
                           ]
                           (UnGuardedRhs
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 13 3 16
                                , srcInfoPoints =
                                    [ SrcSpan "tests/examples/TySplice4.hs" 3 13 3 14 ]
                                }
                              (Lit
                                 SrcSpanInfo
                                   { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 15 3 16
                                   , srcInfoPoints = []
                                   }
                                 (Int
                                    SrcSpanInfo
                                      { srcInfoSpan =
                                          SrcSpan "tests/examples/TySplice4.hs" 3 15 3 16
                                      , srcInfoPoints = []
                                      }
                                    1
                                    "1")))
                           Nothing
                       ]
                   ])))
          Nothing
      , PatBind
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 1 5 36
            , srcInfoPoints = []
            }
          (PVar
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 1 5 2
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 1 5 2
                  , srcInfoPoints = []
                  }
                "y"))
          (UnGuardedRhs
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 3 5 36
               , srcInfoPoints = [ SrcSpan "tests/examples/TySplice4.hs" 5 3 5 4 ]
               }
             (BracketExp
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 5 5 36
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/TySplice4.hs" 5 5 5 8
                      , SrcSpan "tests/examples/TySplice4.hs" 5 23 5 24
                      , SrcSpan "tests/examples/TySplice4.hs" 5 34 5 36
                      ]
                  }
                (DeclBracket
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 5 5 36
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/TySplice4.hs" 5 9 5 9
                         , SrcSpan "tests/examples/TySplice4.hs" 5 23 5 24
                         , SrcSpan "tests/examples/TySplice4.hs" 5 34 5 34
                         , SrcSpan "tests/examples/TySplice4.hs" 5 34 5 36
                         ]
                     }
                   [ TypeSig
                       SrcSpanInfo
                         { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 9 5 23
                         , srcInfoPoints =
                             [ SrcSpan "tests/examples/TySplice4.hs" 5 12 5 14 ]
                         }
                       [ Ident
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 9 5 11
                             , srcInfoPoints = []
                             }
                           "f2"
                       ]
                       (TyFun
                          SrcSpanInfo
                            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 15 5 23
                            , srcInfoPoints =
                                [ SrcSpan "tests/examples/TySplice4.hs" 5 17 5 19 ]
                            }
                          (TyVar
                             SrcSpanInfo
                               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 15 5 16
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 15 5 16
                                  , srcInfoPoints = []
                                  }
                                "a"))
                          (TyCon
                             SrcSpanInfo
                               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 20 5 23
                               , srcInfoPoints = []
                               }
                             (UnQual
                                SrcSpanInfo
                                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 20 5 23
                                  , srcInfoPoints = []
                                  }
                                (Ident
                                   SrcSpanInfo
                                     { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 20 5 23
                                     , srcInfoPoints = []
                                     }
                                   "Int"))))
                   , FunBind
                       SrcSpanInfo
                         { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 25 5 33
                         , srcInfoPoints = []
                         }
                       [ Match
                           SrcSpanInfo
                             { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 25 5 33
                             , srcInfoPoints = []
                             }
                           (Ident
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 25 5 27
                                , srcInfoPoints = []
                                }
                              "f2")
                           [ PVar
                               SrcSpanInfo
                                 { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 28 5 29
                                 , srcInfoPoints = []
                                 }
                               (Ident
                                  SrcSpanInfo
                                    { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 28 5 29
                                    , srcInfoPoints = []
                                    }
                                  "x")
                           ]
                           (UnGuardedRhs
                              SrcSpanInfo
                                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 30 5 33
                                , srcInfoPoints =
                                    [ SrcSpan "tests/examples/TySplice4.hs" 5 30 5 31 ]
                                }
                              (Lit
                                 SrcSpanInfo
                                   { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 32 5 33
                                   , srcInfoPoints = []
                                   }
                                 (Int
                                    SrcSpanInfo
                                      { srcInfoSpan =
                                          SrcSpan "tests/examples/TySplice4.hs" 5 32 5 33
                                      , srcInfoPoints = []
                                      }
                                    1
                                    "1")))
                           Nothing
                       ]
                   ])))
          Nothing
      ]
  , []
  )