module Imp.Ghc where

import qualified GHC.Hs as Hs
import qualified GHC.Plugins as Plugin
import qualified GHC.Types.SourceText as SourceText

type HsModulePs = Hs.HsModule Hs.GhcPs

newImportDecl ::
  Plugin.ModuleName ->
  Hs.ImportDecl Hs.GhcPs
newImportDecl :: ModuleName -> ImportDecl GhcPs
newImportDecl ModuleName
moduleName =
  Hs.ImportDecl
    { ideclExt :: XCImportDecl GhcPs
Hs.ideclExt =
        Hs.XImportDeclPass
          { ideclAnn :: EpAnn EpAnnImportDecl
Hs.ideclAnn = EpAnn EpAnnImportDecl
forall a. EpAnn a
Hs.noAnn,
            ideclSourceText :: SourceText
Hs.ideclSourceText = SourceText
SourceText.NoSourceText,
            ideclImplicit :: Bool
Hs.ideclImplicit = Bool
True
          },
      ideclName :: XRec GhcPs ModuleName
Hs.ideclName = ModuleName -> LocatedAn AnnListItem ModuleName
forall a an. a -> LocatedAn an a
Hs.noLocA ModuleName
moduleName,
      ideclPkgQual :: ImportDeclPkgQual GhcPs
Hs.ideclPkgQual = ImportDeclPkgQual GhcPs
RawPkgQual
Plugin.NoRawPkgQual,
      ideclSource :: IsBootInterface
Hs.ideclSource = IsBootInterface
Hs.NotBoot,
      ideclSafe :: Bool
Hs.ideclSafe = Bool
False,
      ideclQualified :: ImportDeclQualifiedStyle
Hs.ideclQualified = ImportDeclQualifiedStyle
Hs.QualifiedPre,
      ideclAs :: Maybe (XRec GhcPs ModuleName)
Hs.ideclAs = Maybe (XRec GhcPs ModuleName)
Maybe (LocatedAn AnnListItem ModuleName)
forall a. Maybe a
Nothing,
      ideclImportList :: Maybe (ImportListInterpretation, XRec GhcPs [LIE GhcPs])
Hs.ideclImportList = Maybe (ImportListInterpretation, XRec GhcPs [LIE GhcPs])
Maybe
  (ImportListInterpretation,
   GenLocated SrcSpanAnnL [GenLocated SrcSpanAnnA (IE GhcPs)])
forall a. Maybe a
Nothing
    }