ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 1 8 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/TypeFunctions.hs" 1 1 1 1
            , SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 1
            , SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 1
            , SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 1
            , SrcSpan "tests/examples/TypeFunctions.hs" 5 1 5 1
            , SrcSpan "tests/examples/TypeFunctions.hs" 7 1 7 1
            , SrcSpan "tests/examples/TypeFunctions.hs" 8 1 8 1
            , SrcSpan "tests/examples/TypeFunctions.hs" 8 1 8 1
            ]
        }
      Nothing
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 1 1 46
            , srcInfoPoints =
                [ SrcSpan "tests/examples/TypeFunctions.hs" 1 1 1 13
                , SrcSpan "tests/examples/TypeFunctions.hs" 1 26 1 27
                , SrcSpan "tests/examples/TypeFunctions.hs" 1 43 1 46
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 14 1 26
                , srcInfoPoints = []
                }
              "TypeFamilies"
          , Ident
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 28 1 42
                , srcInfoPoints = []
                }
              "KindSignatures"
          ]
      ]
      []
      [ DataDecl
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 13
            , srcInfoPoints =
                [ SrcSpan "tests/examples/TypeFunctions.hs" 3 9 3 10 ]
            }
          (DataType
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 5
               , srcInfoPoints = []
               })
          Nothing
          (DHead
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 6 3 8
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 6 3 8
                  , srcInfoPoints = []
                  }
                "Id"))
          [ QualConDecl
              SrcSpanInfo
                { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 11 3 13
                , srcInfoPoints = []
                }
              Nothing
              Nothing
              (ConDecl
                 SrcSpanInfo
                   { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 11 3 13
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 11 3 13
                      , srcInfoPoints = []
                      }
                    "Id")
                 [])
          ]
          []
      , TypeFamDecl
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 1 5 32
            , srcInfoPoints =
                [ SrcSpan "tests/examples/TypeFunctions.hs" 5 1 5 5
                , SrcSpan "tests/examples/TypeFunctions.hs" 5 6 5 12
                ]
            }
          (DHApp
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 32
               , srcInfoPoints = []
               }
             (DHApp
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 30
                  , srcInfoPoints = []
                  }
                (DHead
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 16
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 16
                        , srcInfoPoints = []
                        }
                      "Rep"))
                (KindedVar
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 17 5 30
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/TypeFunctions.hs" 5 17 5 18
                         , SrcSpan "tests/examples/TypeFunctions.hs" 5 20 5 22
                         , SrcSpan "tests/examples/TypeFunctions.hs" 5 29 5 30
                         ]
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 18 5 19
                        , srcInfoPoints = []
                        }
                      "f")
                   (TyFun
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 23 5 29
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/TypeFunctions.hs" 5 25 5 27 ]
                        }
                      (TyStar
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 23 5 24
                           , srcInfoPoints = []
                           })
                      (TyStar
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 28 5 29
                           , srcInfoPoints = []
                           }))))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 31 5 32
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 31 5 32
                     , srcInfoPoints = []
                     }
                   "x")))
          (Just
             (KindSig
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 33 5 37
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/TypeFunctions.hs" 5 33 5 35 ]
                  }
                (TyStar
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 36 5 37
                     , srcInfoPoints = []
                     })))
          Nothing
      , TypeInsDecl
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 1 7 27
            , srcInfoPoints =
                [ SrcSpan "tests/examples/TypeFunctions.hs" 7 1 7 5
                , SrcSpan "tests/examples/TypeFunctions.hs" 7 6 7 14
                , SrcSpan "tests/examples/TypeFunctions.hs" 7 24 7 25
                ]
            }
          (TyApp
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 23
               , srcInfoPoints = []
               }
             (TyApp
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 21
                  , srcInfoPoints = []
                  }
                (TyCon
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 18
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 18
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 18
                           , srcInfoPoints = []
                           }
                         "Rep")))
                (TyCon
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 19 7 21
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 19 7 21
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 19 7 21
                           , srcInfoPoints = []
                           }
                         "Id"))))
             (TyVar
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 22 7 23
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 22 7 23
                     , srcInfoPoints = []
                     }
                   "x")))
          (TyVar
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 26 7 27
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 26 7 27
                  , srcInfoPoints = []
                  }
                "x"))
      ]
  , []
  )