{-# LANGUAGE PatternSynonyms #-}
module Language.Haskell.Tools.Rewrite.Match.Modules where
import Language.Haskell.Tools.AST
import Language.Haskell.Tools.Rewrite.ElementTypes
pattern Module :: FilePragmaList -> MaybeModuleHead
-> ImportDeclList -> DeclList -> Module
pattern Module filePrags head imps decls <- Ann _ (UModule filePrags head imps decls )
pattern ModuleHead :: ModuleName -> MaybeModulePragma -> MaybeExportSpecs -> ModuleHead
pattern ModuleHead n pr es <- Ann _ (UModuleHead n pr es)
pattern ExportSpecs :: ExportSpecList -> ExportSpecs
pattern ExportSpecs specs <- Ann _ (UExportSpecs specs)
pattern ExportSpec :: IESpec -> ExportSpec
pattern ExportSpec ieSpec <- Ann _ (UDeclExport ieSpec)
pattern ModuleExport :: ModuleName -> ExportSpec
pattern ModuleExport name <- Ann _ (UModuleExport name)
pattern IESpec :: MaybeImportModifier -> Name -> MaybeSubSpec -> IESpec
pattern IESpec modifier name ss <- Ann _ (UIESpec modifier name ss)
pattern SubAll :: SubSpec
pattern SubAll <- Ann _ USubSpecAll
pattern SubList :: NameList -> SubSpec
pattern SubList names <- Ann _ (USubSpecList names)
pattern ImportDecl :: MaybeImportSource -> MaybeImportQualified
-> MaybeImportSafe -> MaybeStringNode
-> ModuleName -> MaybeImportRenaming
-> MaybeImportSpec -> ImportDecl
pattern ImportDecl source qualified safe pkg name rename spec <- Ann _ (UImportDecl source qualified safe pkg name rename spec)
pattern ImportRenaming :: ModuleName -> ImportRenaming
pattern ImportRenaming name <- Ann _ (UImportRenaming name)
pattern ImportSpecList :: IESpecList -> ImportSpec
pattern ImportSpecList ieSpecs <- Ann _ (UImportSpecList ieSpecs)
pattern ImportHidingList :: IESpecList -> ImportSpec
pattern ImportHidingList hidings <- Ann _ (UImportSpecHiding hidings)
pattern ModuleName :: String -> ModuleName
pattern ModuleName s <- Ann _ (UModuleName s)
pattern LanguagePragma :: LanguageExtensionList -> FilePragma
pattern LanguagePragma exts <- Ann _ (ULanguagePragma exts)
pattern OptionsPragma :: String -> FilePragma
pattern OptionsPragma opt <- Ann _ (UOptionsPragma (Ann _ (UStringNode opt)))
pattern LanguageExtension :: String -> LanguageExtension
pattern LanguageExtension ext <- Ann _ (ULanguageExtension ext)
pattern ModuleWarningPragma :: StringNodeList -> ModulePragma
pattern ModuleWarningPragma msgs <- Ann _ (UModuleWarningPragma msgs)
pattern ModuleDeprecatedPragma :: StringNodeList -> ModulePragma
pattern ModuleDeprecatedPragma msgs <- Ann _ (UModuleDeprecatedPragma msgs)