ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan =
            SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 5 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 1 1
            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 1
            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 1
            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 1
            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 1
            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 5 1 5 1
            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 5 1 5 1
            ]
        }
      Nothing
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 1 68
            , srcInfoPoints =
                [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 1 13
                , SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 27 1 28
                , SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 45 1 46
                , SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 65 1 68
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 14 1 27
                , srcInfoPoints = []
                }
              "TypeOperators"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 29 1 45
                , srcInfoPoints = []
                }
              "FlexibleContexts"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 47 1 64
                , srcInfoPoints = []
                }
              "FlexibleInstances"
          ]
      ]
      []
      [ TypeSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 29
            , srcInfoPoints =
                [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 3 3 5 ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 2
                , srcInfoPoints = []
                }
              "f"
          ]
          (TyForall
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 29
               , srcInfoPoints = []
               }
             Nothing
             (Just
                (CxSingle
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]
                     }
                   (ClassA
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 14
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 14
                              , srcInfoPoints = []
                              }
                            "ArrowXml"))
                      [ TyCon
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 19
                            , srcInfoPoints =
                                [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 16
                                , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 16 3 18
                                , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 18 3 19
                                ]
                            }
                          (UnQual
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 19
                               , srcInfoPoints =
                                   [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 16
                                   , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 16 3 18
                                   , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 18 3 19
                                   ]
                               }
                             (Symbol
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 16 3 18
                                  , srcInfoPoints = []
                                  }
                                "~>"))
                      ])))
             (TyInfix
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 23 3 29
                  , srcInfoPoints = []
                  }
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 23 3 24
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 23 3 24
                        , srcInfoPoints = []
                        }
                      "a"))
                (UnpromotedName
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 25 3 27
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 25 3 27
                        , srcInfoPoints = []
                        }
                      (Symbol
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 25 3 27
                           , srcInfoPoints = []
                           }
                         "~>")))
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 28 3 29
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 28 3 29
                        , srcInfoPoints = []
                        }
                      "a"))))
      , PatBind
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 14
            , srcInfoPoints = []
            }
          (PVar
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 2
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 2
                  , srcInfoPoints = []
                  }
                "f"))
          (UnGuardedRhs
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 3 4 14
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 3 4 4 ]
               }
             (Var
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 5 4 14
                  , srcInfoPoints = []
                  }
                (UnQual
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 5 4 14
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 5 4 14
                        , srcInfoPoints = []
                        }
                      "undefined"))))
          Nothing
      ]
  , []
  )