ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 1 5 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 1
            , SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 1
            , SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 1
            , SrcSpan "tests/examples/ForeignImport.hs" 5 1 5 1
            , SrcSpan "tests/examples/ForeignImport.hs" 5 1 5 1
            ]
        }
      Nothing
      []
      []
      [ ForImp
          SrcSpanInfo
            { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 1 4 55
            , srcInfoPoints =
                [ SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 8
                , SrcSpan "tests/examples/ForeignImport.hs" 3 9 3 15
                , SrcSpan "tests/examples/ForeignImport.hs" 3 29 3 42
                , SrcSpan "tests/examples/ForeignImport.hs" 4 14 4 16
                ]
            }
          (CCall
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 16 3 21
               , srcInfoPoints = []
               })
          (Just
             (PlayRisky
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 22 3 28
                  , srcInfoPoints = []
                  }))
          (Just "getProgArgv")
          (Ident
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 2 4 13
               , srcInfoPoints = []
               }
             "getProgArgv")
          (TyFun
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 55
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/ForeignImport.hs" 4 26 4 28 ]
               }
             (TyApp
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 25
                  , srcInfoPoints = []
                  }
                (TyCon
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 20
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 20
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 20
                           , srcInfoPoints = []
                           }
                         "Ptr")))
                (TyCon
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 21 4 25
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 21 4 25
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 21 4 25
                           , srcInfoPoints = []
                           }
                         "CInt"))))
             (TyFun
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 55
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/ForeignImport.hs" 4 47 4 49 ]
                  }
                (TyApp
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 46
                     , srcInfoPoints = []
                     }
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 32
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 32
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 32
                              , srcInfoPoints = []
                              }
                            "Ptr")))
                   (TyParen
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 33 4 46
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/ForeignImport.hs" 4 33 4 34
                            , SrcSpan "tests/examples/ForeignImport.hs" 4 45 4 46
                            ]
                        }
                      (TyApp
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 45
                           , srcInfoPoints = []
                           }
                         (TyCon
                            SrcSpanInfo
                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 37
                              , srcInfoPoints = []
                              }
                            (UnQual
                               SrcSpanInfo
                                 { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 37
                                 , srcInfoPoints = []
                                 }
                               (Ident
                                  SrcSpanInfo
                                    { srcInfoSpan =
                                        SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 37
                                    , srcInfoPoints = []
                                    }
                                  "Ptr")))
                         (TyCon
                            SrcSpanInfo
                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 38 4 45
                              , srcInfoPoints = []
                              }
                            (UnQual
                               SrcSpanInfo
                                 { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 38 4 45
                                 , srcInfoPoints = []
                                 }
                               (Ident
                                  SrcSpanInfo
                                    { srcInfoSpan =
                                        SrcSpan "tests/examples/ForeignImport.hs" 4 38 4 45
                                    , srcInfoPoints = []
                                    }
                                  "CString"))))))
                (TyApp
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 55
                     , srcInfoPoints = []
                     }
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 52
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 52
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 52
                              , srcInfoPoints = []
                              }
                            "IO")))
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 55
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 54
                            , SrcSpan "tests/examples/ForeignImport.hs" 4 54 4 55
                            ]
                        }
                      (Special
                         SrcSpanInfo
                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 55
                           , srcInfoPoints =
                               [ SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 54
                               , SrcSpan "tests/examples/ForeignImport.hs" 4 54 4 55
                               ]
                           }
                         (UnitCon
                            SrcSpanInfo
                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 55
                              , srcInfoPoints =
                                  [ SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 54
                                  , SrcSpan "tests/examples/ForeignImport.hs" 4 54 4 55
                                  ]
                              }))))))
      ]
  , [ Comment
        True
        (SrcSpan "tests/examples/ForeignImport.hs" 1 1 2 67)
        " If compiled without ForeignFunctionInterface (part of Haskell2010),\n   it complains not about FFI but about missing TemplateHaskell "
    ]
  )