| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Development.IDE.GHC.Compat.Core
Contents
- Session
- Linear Haskell
- Interface Files
- Fixity
- ModSummary
- HomeModInfo
- ModGuts
- ModDetails
- HsExpr,
- Var
- Specs
- SourceText
- Ways
- AvailInfo
- TcGblEnv
- Parsing and LExer types
- Compilation Main
- Typecheck utils
- Source Locations
- Finder
- Module and Package
- Linker
- Hooks
- HPT
- Driver-Make
- GHCi
- ModLocation
- DataCon
- Role
- Panic
- Other
- Util Module re-exports
- Syntax re-exports
Description
Compat Core module that handles the GHC module hierarchy re-organization by re-exporting everything we care about.
This module provides no other compat mechanisms, except for simple backward-compatible pattern synonyms.
Synopsis
- data DynFlags
- extensions :: DynFlags -> [OnOff Extension]
- extensionFlags :: DynFlags -> EnumSet Extension
- targetPlatform :: DynFlags -> Platform
- packageFlags :: DynFlags -> [PackageFlag]
- generalFlags :: DynFlags -> EnumSet GeneralFlag
- warningFlags :: DynFlags -> EnumSet WarningFlag
- topDir :: DynFlags -> FilePath
- hiDir :: DynFlags -> Maybe String
- tmpDir :: DynFlags -> TempDir
- importPaths :: DynFlags -> [FilePath]
- useColor :: DynFlags -> OverridingBool
- canUseColor :: DynFlags -> Bool
- useUnicode :: DynFlags -> Bool
- objectDir :: DynFlags -> Maybe String
- flagsForCompletion :: Bool -> [String]
- setImportPaths :: [FilePath] -> DynFlags -> DynFlags
- outputFile :: DynFlags -> Maybe String
- pluginModNames :: DynFlags -> [ModuleName]
- refLevelHoleFits :: DynFlags -> Maybe Int
- maxRefHoleFits :: DynFlags -> Maybe Int
- maxValidHoleFits :: DynFlags -> Maybe Int
- setOutputFile :: Maybe String -> DynFlags -> DynFlags
- lookupType :: HscEnv -> Name -> IO (Maybe TyThing)
- needWiredInHomeIface :: TyThing -> Bool
- loadWiredInHomeIface :: Name -> IfM lcl ()
- readIface :: DynFlags -> NameCache -> Module -> FilePath -> IO (MaybeErr ReadInterfaceError ModIface)
- loadSysInterface :: SDoc -> Module -> IfM lcl ModIface
- importDecl :: Name -> IfM lcl (MaybeErr IfaceMessage TyThing)
- type CommandLineOption = String
- sPgm_F :: Settings -> String
- settings :: DynFlags -> Settings
- gopt :: GeneralFlag -> DynFlags -> Bool
- gopt_set :: DynFlags -> GeneralFlag -> DynFlags
- gopt_unset :: DynFlags -> GeneralFlag -> DynFlags
- wopt :: WarningFlag -> DynFlags -> Bool
- wopt_set :: DynFlags -> WarningFlag -> DynFlags
- xFlags :: [FlagSpec Extension]
- xopt :: Extension -> DynFlags -> Bool
- xopt_unset :: DynFlags -> Extension -> DynFlags
- xopt_set :: DynFlags -> Extension -> DynFlags
- data FlagSpec flag = FlagSpec {
- flagSpecName :: String
- flagSpecFlag :: flag
- flagSpecAction :: TurnOnFlag -> DynP ()
- flagSpecGhcMode :: GhcFlagMode
- data WarningFlag
- = Opt_WarnDuplicateExports
- | Opt_WarnDuplicateConstraints
- | Opt_WarnRedundantConstraints
- | Opt_WarnHiShadows
- | Opt_WarnImplicitPrelude
- | Opt_WarnIncompletePatterns
- | Opt_WarnIncompleteUniPatterns
- | Opt_WarnIncompletePatternsRecUpd
- | Opt_WarnOverflowedLiterals
- | Opt_WarnEmptyEnumerations
- | Opt_WarnMissingFields
- | Opt_WarnMissingImportList
- | Opt_WarnMissingMethods
- | Opt_WarnMissingSignatures
- | Opt_WarnMissingLocalSignatures
- | Opt_WarnNameShadowing
- | Opt_WarnOverlappingPatterns
- | Opt_WarnTypeDefaults
- | Opt_WarnMonomorphism
- | Opt_WarnUnusedTopBinds
- | Opt_WarnUnusedLocalBinds
- | Opt_WarnUnusedPatternBinds
- | Opt_WarnUnusedImports
- | Opt_WarnUnusedMatches
- | Opt_WarnUnusedTypePatterns
- | Opt_WarnUnusedForalls
- | Opt_WarnUnusedRecordWildcards
- | Opt_WarnRedundantBangPatterns
- | Opt_WarnRedundantRecordWildcards
- | Opt_WarnDeprecatedFlags
- | Opt_WarnMissingMonadFailInstances
- | Opt_WarnSemigroup
- | Opt_WarnDodgyExports
- | Opt_WarnDodgyImports
- | Opt_WarnOrphans
- | Opt_WarnAutoOrphans
- | Opt_WarnIdentities
- | Opt_WarnTabs
- | Opt_WarnUnrecognisedPragmas
- | Opt_WarnMisplacedPragmas
- | Opt_WarnDodgyForeignImports
- | Opt_WarnUnusedDoBind
- | Opt_WarnWrongDoBind
- | Opt_WarnAlternativeLayoutRuleTransitional
- | Opt_WarnUnsafe
- | Opt_WarnSafe
- | Opt_WarnTrustworthySafe
- | Opt_WarnMissedSpecs
- | Opt_WarnAllMissedSpecs
- | Opt_WarnUnsupportedCallingConventions
- | Opt_WarnUnsupportedLlvmVersion
- | Opt_WarnMissedExtraSharedLib
- | Opt_WarnInlineRuleShadowing
- | Opt_WarnTypedHoles
- | Opt_WarnPartialTypeSignatures
- | Opt_WarnMissingExportedSignatures
- | Opt_WarnUntickedPromotedConstructors
- | Opt_WarnDerivingTypeable
- | Opt_WarnDeferredTypeErrors
- | Opt_WarnDeferredOutOfScopeVariables
- | Opt_WarnNonCanonicalMonadInstances
- | Opt_WarnNonCanonicalMonadFailInstances
- | Opt_WarnNonCanonicalMonoidInstances
- | Opt_WarnMissingPatternSynonymSignatures
- | Opt_WarnUnrecognisedWarningFlags
- | Opt_WarnSimplifiableClassConstraints
- | Opt_WarnCPPUndef
- | Opt_WarnUnbangedStrictPatterns
- | Opt_WarnMissingHomeModules
- | Opt_WarnPartialFields
- | Opt_WarnMissingExportList
- | Opt_WarnInaccessibleCode
- | Opt_WarnStarIsType
- | Opt_WarnStarBinder
- | Opt_WarnImplicitKindVars
- | Opt_WarnSpaceAfterBang
- | Opt_WarnMissingDerivingStrategies
- | Opt_WarnPrepositiveQualifiedModule
- | Opt_WarnUnusedPackages
- | Opt_WarnInferredSafeImports
- | Opt_WarnMissingSafeHaskellMode
- | Opt_WarnCompatUnqualifiedImports
- | Opt_WarnDerivingDefaults
- | Opt_WarnInvalidHaddock
- | Opt_WarnOperatorWhitespaceExtConflict
- | Opt_WarnOperatorWhitespace
- | Opt_WarnAmbiguousFields
- | Opt_WarnImplicitLift
- | Opt_WarnMissingKindSignatures
- | Opt_WarnMissingPolyKindSignatures
- | Opt_WarnMissingExportedPatternSynonymSignatures
- | Opt_WarnRedundantStrictnessFlags
- | Opt_WarnForallIdentifier
- | Opt_WarnUnicodeBidirectionalFormatCharacters
- | Opt_WarnGADTMonoLocalBinds
- | Opt_WarnTypeEqualityOutOfScope
- | Opt_WarnTypeEqualityRequiresOperators
- | Opt_WarnLoopySuperclassSolve
- | Opt_WarnTermVariableCapture
- | Opt_WarnMissingRoleAnnotations
- | Opt_WarnImplicitRhsQuantification
- | Opt_WarnIncompleteExportWarnings
- | Opt_WarnIncompleteRecordSelectors
- | Opt_WarnBadlyStagedTypes
- | Opt_WarnInconsistentFlags
- | Opt_WarnDataKindsTC
- | Opt_WarnDeprecatedTypeAbstractions
- | Opt_WarnDefaultedExceptionContext
- data GeneralFlag
- = Opt_DumpToFile
- | Opt_DumpWithWays
- | Opt_D_dump_minimal_imports
- | Opt_DoCoreLinting
- | Opt_DoLinearCoreLinting
- | Opt_DoStgLinting
- | Opt_DoCmmLinting
- | Opt_DoAsmLinting
- | Opt_DoAnnotationLinting
- | Opt_DoBoundsChecking
- | Opt_NoLlvmMangler
- | Opt_FastLlvm
- | Opt_NoTypeableBinds
- | Opt_DistinctConstructorTables
- | Opt_InfoTableMap
- | Opt_InfoTableMapWithFallback
- | Opt_InfoTableMapWithStack
- | Opt_WarnIsError
- | Opt_ShowWarnGroups
- | Opt_HideSourcePaths
- | Opt_PrintExplicitForalls
- | Opt_PrintExplicitKinds
- | Opt_PrintExplicitCoercions
- | Opt_PrintExplicitRuntimeReps
- | Opt_PrintEqualityRelations
- | Opt_PrintAxiomIncomps
- | Opt_PrintUnicodeSyntax
- | Opt_PrintExpandedSynonyms
- | Opt_PrintPotentialInstances
- | Opt_PrintRedundantPromotionTicks
- | Opt_PrintTypecheckerElaboration
- | Opt_CallArity
- | Opt_Exitification
- | Opt_Strictness
- | Opt_LateDmdAnal
- | Opt_KillAbsence
- | Opt_KillOneShot
- | Opt_FullLaziness
- | Opt_FloatIn
- | Opt_LocalFloatOut
- | Opt_LocalFloatOutTopLevel
- | Opt_LateSpecialise
- | Opt_Specialise
- | Opt_SpecialiseAggressively
- | Opt_CrossModuleSpecialise
- | Opt_PolymorphicSpecialisation
- | Opt_InlineGenerics
- | Opt_InlineGenericsAggressively
- | Opt_StaticArgumentTransformation
- | Opt_CSE
- | Opt_StgCSE
- | Opt_StgLiftLams
- | Opt_LiberateCase
- | Opt_SpecConstr
- | Opt_SpecConstrKeen
- | Opt_SpecialiseIncoherents
- | Opt_DoLambdaEtaExpansion
- | Opt_DoCleverArgEtaExpansion
- | Opt_IgnoreAsserts
- | Opt_DoEtaReduction
- | Opt_CaseMerge
- | Opt_CaseFolding
- | Opt_UnboxStrictFields
- | Opt_UnboxSmallStrictFields
- | Opt_DictsCheap
- | Opt_EnableRewriteRules
- | Opt_EnableThSpliceWarnings
- | Opt_RegsGraph
- | Opt_RegsIterative
- | Opt_PedanticBottoms
- | Opt_LlvmFillUndefWithGarbage
- | Opt_IrrefutableTuples
- | Opt_CmmSink
- | Opt_CmmStaticPred
- | Opt_CmmElimCommonBlocks
- | Opt_CmmControlFlow
- | Opt_AsmShortcutting
- | Opt_OmitYields
- | Opt_FunToThunk
- | Opt_DictsStrict
- | Opt_DmdTxDictSel
- | Opt_Loopification
- | Opt_CfgBlocklayout
- | Opt_WeightlessBlocklayout
- | Opt_CprAnal
- | Opt_WorkerWrapper
- | Opt_WorkerWrapperUnlift
- | Opt_SolveConstantDicts
- | Opt_AlignmentSanitisation
- | Opt_CatchNonexhaustiveCases
- | Opt_NumConstantFolding
- | Opt_CoreConstantFolding
- | Opt_FastPAPCalls
- | Opt_DoTagInferenceChecks
- | Opt_SimplPreInlining
- | Opt_IgnoreInterfacePragmas
- | Opt_OmitInterfacePragmas
- | Opt_ExposeAllUnfoldings
- | Opt_KeepAutoRules
- | Opt_WriteInterface
- | Opt_WriteHie
- | Opt_DisableJsMinifier
- | Opt_DisableJsCsources
- | Opt_AutoSccsOnIndividualCafs
- | Opt_ProfCountEntries
- | Opt_ProfLateInlineCcs
- | Opt_ProfLateCcs
- | Opt_ProfLateOverloadedCcs
- | Opt_ProfLateoverloadedCallsCCs
- | Opt_ProfManualCcs
- | Opt_Pp
- | Opt_ForceRecomp
- | Opt_IgnoreOptimChanges
- | Opt_IgnoreHpcChanges
- | Opt_ExcessPrecision
- | Opt_EagerBlackHoling
- | Opt_OrigThunkInfo
- | Opt_NoHsMain
- | Opt_SplitSections
- | Opt_StgStats
- | Opt_HideAllPackages
- | Opt_HideAllPluginPackages
- | Opt_PrintBindResult
- | Opt_Haddock
- | Opt_HaddockOptions
- | Opt_BreakOnException
- | Opt_BreakOnError
- | Opt_PrintEvldWithShow
- | Opt_PrintBindContents
- | Opt_GenManifest
- | Opt_EmbedManifest
- | Opt_SharedImplib
- | Opt_BuildingCabalPackage
- | Opt_IgnoreDotGhci
- | Opt_GhciSandbox
- | Opt_InsertBreakpoints
- | Opt_GhciHistory
- | Opt_GhciLeakCheck
- | Opt_ValidateHie
- | Opt_LocalGhciHistory
- | Opt_NoIt
- | Opt_HelpfulErrors
- | Opt_DeferTypeErrors
- | Opt_DeferTypedHoles
- | Opt_DeferOutOfScopeVariables
- | Opt_PIC
- | Opt_PIE
- | Opt_PICExecutable
- | Opt_ExternalDynamicRefs
- | Opt_Ticky
- | Opt_Ticky_Allocd
- | Opt_Ticky_LNE
- | Opt_Ticky_Dyn_Thunk
- | Opt_Ticky_Tag
- | Opt_Ticky_AP
- | Opt_CmmThreadSanitizer
- | Opt_RPath
- | Opt_RelativeDynlibPaths
- | Opt_CompactUnwind
- | Opt_Hpc
- | Opt_FamAppCache
- | Opt_ExternalInterpreter
- | Opt_OptimalApplicativeDo
- | Opt_VersionMacros
- | Opt_WholeArchiveHsLibs
- | Opt_SingleLibFolder
- | Opt_ExposeInternalSymbols
- | Opt_KeepCAFs
- | Opt_KeepGoing
- | Opt_ByteCode
- | Opt_ByteCodeAndObjectCode
- | Opt_UnoptimizedCoreForInterpreter
- | Opt_LinkRts
- | Opt_ErrorSpans
- | Opt_DeferDiagnostics
- | Opt_DiagnosticsAsJSON
- | Opt_DiagnosticsShowCaret
- | Opt_PprCaseAsLet
- | Opt_PprShowTicks
- | Opt_ShowHoleConstraints
- | Opt_ShowValidHoleFits
- | Opt_SortValidHoleFits
- | Opt_SortBySizeHoleFits
- | Opt_SortBySubsumHoleFits
- | Opt_AbstractRefHoleFits
- | Opt_UnclutterValidHoleFits
- | Opt_ShowTypeAppOfHoleFits
- | Opt_ShowTypeAppVarsOfHoleFits
- | Opt_ShowDocsOfHoleFits
- | Opt_ShowTypeOfHoleFits
- | Opt_ShowProvOfHoleFits
- | Opt_ShowMatchesOfHoleFits
- | Opt_ShowLoadedModules
- | Opt_HexWordLiterals
- | Opt_SuppressCoercions
- | Opt_SuppressCoercionTypes
- | Opt_SuppressVarKinds
- | Opt_SuppressModulePrefixes
- | Opt_SuppressTypeApplications
- | Opt_SuppressIdInfo
- | Opt_SuppressUnfoldings
- | Opt_SuppressTypeSignatures
- | Opt_SuppressUniques
- | Opt_SuppressStgExts
- | Opt_SuppressStgReps
- | Opt_SuppressTicks
- | Opt_SuppressTimestamps
- | Opt_SuppressCoreSizes
- | Opt_ShowErrorContext
- | Opt_AutoLinkPackages
- | Opt_ImplicitImportQualified
- | Opt_KeepHscppFiles
- | Opt_KeepHiDiffs
- | Opt_KeepHcFiles
- | Opt_KeepSFiles
- | Opt_KeepTmpFiles
- | Opt_KeepRawTokenStream
- | Opt_KeepLlvmFiles
- | Opt_KeepHiFiles
- | Opt_KeepOFiles
- | Opt_BuildDynamicToo
- | Opt_WriteIfSimplifiedCore
- | Opt_UseBytecodeRatherThanObjects
- | Opt_DistrustAllPackages
- | Opt_PackageTrust
- | Opt_PluginTrustworthy
- | Opt_G_NoStateHack
- | Opt_G_NoOptCoercion
- data PackageFlag
- data PackageArg
- data ModRenaming = ModRenaming {}
- pattern ExposePackage :: String -> PackageArg -> ModRenaming -> PackageFlag
- parseDynamicFlagsCmdLine :: MonadIO m => DynFlags -> [Located String] -> m (DynFlags, [Located String], Messages DriverMessage)
- parseDynamicFilePragma :: MonadIO m => DynFlags -> [Located String] -> m (DynFlags, [Located String], Messages DriverMessage)
- wWarningFlags :: [FlagSpec WarningFlag]
- updOptLevel :: Int -> DynFlags -> DynFlags
- setUnsafeGlobalDynFlags :: DynFlags -> IO ()
- scaledThing :: Scaled a -> a
- type IfaceExport = AvailInfo
- data IfaceTyCon = IfaceTyCon {}
- type ModIface = ModIface_ 'ModIfaceFinal
- data ModIface_ (phase :: ModIfacePhase) = ModIface {
- mi_module :: !Module
- mi_sig_of :: !(Maybe Module)
- mi_hsc_src :: !HscSource
- mi_deps :: Dependencies
- mi_usages :: [Usage]
- mi_exports :: ![IfaceExport]
- mi_used_th :: !Bool
- mi_fixities :: [(OccName, Fixity)]
- mi_warns :: IfaceWarnings
- mi_anns :: [IfaceAnnotation]
- mi_decls :: [IfaceDeclExts phase]
- mi_extra_decls :: Maybe [IfaceBindingX IfaceMaybeRhs IfaceTopBndrInfo]
- mi_globals :: !(Maybe IfGlobalRdrEnv)
- mi_insts :: [IfaceClsInst]
- mi_fam_insts :: [IfaceFamInst]
- mi_rules :: [IfaceRule]
- mi_hpc :: !AnyHpcUsage
- mi_trust :: !IfaceTrustInfo
- mi_trust_pkg :: !Bool
- mi_complete_matches :: ![IfaceCompleteMatch]
- mi_docs :: !(Maybe Docs)
- mi_final_exts :: !(IfaceBackendExts phase)
- mi_ext_fields :: !ExtensibleFields
- mi_src_hash :: !Fingerprint
- data HscSource where
- HsSrcFile
- HsBootOrSig !HsBootOrSig
- pattern HsigFile :: HscSource
- pattern HsBootFile :: HscSource
- data WhereFrom
- loadInterface :: SDoc -> Module -> WhereFrom -> IfM lcl (MaybeErr MissingInterfaceError ModIface)
- loadModuleInterface :: SDoc -> Module -> TcM ModIface
- data RecompileRequired
- mkPartialIface :: HscEnv -> CoreProgram -> ModDetails -> ModSummary -> ModGuts -> PartialModIface
- mkFullIface :: HscEnv -> PartialModIface -> Maybe StgCgInfos -> Maybe CmmCgInfos -> IO ModIface
- data IsBootInterface
- data LexicalFixity
- data Fixity = Fixity SourceText Int FixityDirection
- mi_fix :: ModIface -> OccName -> Fixity
- defaultFixity :: Fixity
- lookupFixityRn :: Name -> RnM Fixity
- data ModSummary = ModSummary {
- ms_mod :: Module
- ms_hsc_src :: HscSource
- ms_location :: ModLocation
- ms_hs_hash :: Fingerprint
- ms_obj_date :: Maybe UTCTime
- ms_dyn_obj_date :: !(Maybe UTCTime)
- ms_iface_date :: Maybe UTCTime
- ms_hie_date :: Maybe UTCTime
- ms_srcimps :: [(PkgQual, Located ModuleName)]
- ms_textual_imps :: [(PkgQual, Located ModuleName)]
- ms_ghc_prim_import :: !Bool
- ms_parsed_mod :: Maybe HsParsedModule
- ms_hspp_file :: FilePath
- ms_hspp_opts :: DynFlags
- ms_hspp_buf :: Maybe StringBuffer
- data HomeModInfo = HomeModInfo {}
- data ModGuts = ModGuts {
- mg_module :: !Module
- mg_hsc_src :: HscSource
- mg_loc :: SrcSpan
- mg_exports :: ![AvailInfo]
- mg_deps :: !Dependencies
- mg_usages :: ![Usage]
- mg_used_th :: !Bool
- mg_rdr_env :: !GlobalRdrEnv
- mg_fix_env :: !FixityEnv
- mg_tcs :: ![TyCon]
- mg_insts :: ![ClsInst]
- mg_fam_insts :: ![FamInst]
- mg_patsyns :: ![PatSyn]
- mg_rules :: ![CoreRule]
- mg_binds :: !CoreProgram
- mg_foreign :: !ForeignStubs
- mg_foreign_files :: ![(ForeignSrcLang, FilePath)]
- mg_warns :: !(Warnings GhcRn)
- mg_anns :: [Annotation]
- mg_complete_matches :: [CompleteMatch]
- mg_hpc_info :: !HpcInfo
- mg_modBreaks :: !(Maybe ModBreaks)
- mg_inst_env :: InstEnv
- mg_fam_inst_env :: FamInstEnv
- mg_boot_exports :: !NameSet
- mg_safe_haskell :: SafeHaskellMode
- mg_trust_pkg :: Bool
- mg_docs :: !(Maybe Docs)
- data CgGuts = CgGuts {
- cg_module :: !Module
- cg_tycons :: [TyCon]
- cg_binds :: CoreProgram
- cg_ccs :: [CostCentre]
- cg_foreign :: !ForeignStubs
- cg_foreign_files :: ![(ForeignSrcLang, FilePath)]
- cg_dep_pkgs :: !(Set UnitId)
- cg_hpc_info :: !HpcInfo
- cg_modBreaks :: !(Maybe ModBreaks)
- cg_spt_entries :: [SptEntry]
- data ModDetails = ModDetails {
- md_exports :: [AvailInfo]
- md_types :: !TypeEnv
- md_insts :: InstEnv
- md_fam_insts :: ![FamInst]
- md_rules :: ![CoreRule]
- md_anns :: ![Annotation]
- md_complete_matches :: [CompleteMatch]
- data Type
- pattern FunTy :: FunTyFlag -> Type -> Type -> Type
- pattern ConPatIn :: Located (ConLikeP GhcPs) -> HsConPatDetails GhcPs -> Pat GhcPs
- conPatDetails :: Pat p -> Maybe (HsConPatDetails p)
- mapConPatDetail :: (HsConPatDetails p -> Maybe (HsConPatDetails p)) -> Pat p -> Maybe (Pat p)
- data ImpDeclSpec = ImpDeclSpec {}
- data ImportSpec = ImpSpec {
- is_decl :: !ImpDeclSpec
- is_item :: !ImpItemSpec
- data SourceText
- data Way
- wayGeneralFlags :: Platform -> Way -> [GeneralFlag]
- wayUnsetGeneralFlags :: Platform -> Way -> [GeneralFlag]
- data AvailInfo
- pattern AvailName :: Name -> AvailInfo
- pattern AvailFL :: FieldLabel -> AvailInfo
- pattern AvailTC :: Name -> [Name] -> [FieldLabel] -> AvailInfo
- availName :: AvailInfo -> Name
- availNames :: AvailInfo -> [Name]
- availsToNameSet :: [AvailInfo] -> NameSet
- data TcGblEnv = TcGblEnv {
- tcg_mod :: Module
- tcg_semantic_mod :: Module
- tcg_src :: HscSource
- tcg_rdr_env :: GlobalRdrEnv
- tcg_default :: Maybe [Type]
- tcg_fix_env :: FixityEnv
- tcg_type_env :: TypeEnv
- tcg_type_env_var :: KnotVars (IORef TypeEnv)
- tcg_inst_env :: !InstEnv
- tcg_fam_inst_env :: !FamInstEnv
- tcg_ann_env :: AnnEnv
- tcg_exports :: [AvailInfo]
- tcg_imports :: ImportAvails
- tcg_dus :: DefUses
- tcg_used_gres :: TcRef [GlobalRdrElt]
- tcg_keep :: TcRef NameSet
- tcg_th_used :: TcRef Bool
- tcg_th_splice_used :: TcRef Bool
- tcg_th_needed_deps :: TcRef ([Linkable], PkgsLoaded)
- tcg_dfun_n :: TcRef OccSet
- tcg_merged :: [(Module, Fingerprint)]
- tcg_rn_exports :: Maybe [(LIE GhcRn, Avails)]
- tcg_rn_imports :: [LImportDecl GhcRn]
- tcg_rn_decls :: Maybe (HsGroup GhcRn)
- tcg_dependent_files :: TcRef [FilePath]
- tcg_th_topdecls :: TcRef [LHsDecl GhcPs]
- tcg_th_foreign_files :: TcRef [(ForeignSrcLang, FilePath)]
- tcg_th_topnames :: TcRef NameSet
- tcg_th_modfinalizers :: TcRef [(TcLclEnv, ThModFinalizers)]
- tcg_th_coreplugins :: TcRef [String]
- tcg_th_state :: TcRef (Map TypeRep Dynamic)
- tcg_th_remote_state :: TcRef (Maybe (ForeignRef (IORef QState)))
- tcg_th_docs :: TcRef THDocs
- tcg_ev_binds :: Bag EvBind
- tcg_tr_module :: Maybe Id
- tcg_binds :: LHsBinds GhcTc
- tcg_sigs :: NameSet
- tcg_imp_specs :: [LTcSpecPrag]
- tcg_warns :: Warnings GhcRn
- tcg_anns :: [Annotation]
- tcg_tcs :: [TyCon]
- tcg_ksigs :: NameSet
- tcg_insts :: [ClsInst]
- tcg_fam_insts :: [FamInst]
- tcg_rules :: [LRuleDecl GhcTc]
- tcg_fords :: [LForeignDecl GhcTc]
- tcg_patsyns :: [PatSyn]
- tcg_hdr_info :: (Maybe (LHsDoc GhcRn), Maybe (XRec GhcRn ModuleName))
- tcg_hpc :: !AnyHpcUsage
- tcg_self_boot :: SelfBootInfo
- tcg_main :: Maybe Name
- tcg_safe_infer :: TcRef Bool
- tcg_safe_infer_reasons :: TcRef (Messages TcRnMessage)
- tcg_tc_plugin_solvers :: [TcPluginSolver]
- tcg_tc_plugin_rewriters :: UniqFM TyCon [TcPluginRewriter]
- tcg_defaulting_plugins :: [FillDefaulting]
- tcg_hf_plugins :: [HoleFitPlugin]
- tcg_top_loc :: RealSrcSpan
- tcg_static_wc :: TcRef WantedConstraints
- tcg_complete_matches :: !CompleteMatches
- tcg_cc_st :: TcRef CostCentreState
- tcg_next_wrapper_num :: TcRef (ModuleEnv Int)
- data HsModule p
- = HsModule {
- hsmodExt :: XCModule p
- hsmodName :: Maybe (XRec p ModuleName)
- hsmodExports :: Maybe (XRec p [LIE p])
- hsmodImports :: [LImportDecl p]
- hsmodDecls :: [LHsDecl p]
- | XModule !(XXModule p)
- = HsModule {
- type ParsedSource = Located (HsModule GhcPs)
- type RenamedSource = (HsGroup GhcRn, [LImportDecl GhcRn], Maybe [(LIE GhcRn, Avails)], Maybe (LHsDoc GhcRn), Maybe (XRec GhcRn ModuleName))
- data HscEnv
- runGhc :: Maybe FilePath -> Ghc a -> IO a
- unGhc :: Ghc a -> Session -> IO a
- data Session = Session !(IORef HscEnv)
- modifySession :: GhcMonad m => (HscEnv -> HscEnv) -> m ()
- getSession :: GhcMonad m => m HscEnv
- setSessionDynFlags :: (HasCallStack, GhcMonad m) => DynFlags -> m ()
- getSessionDynFlags :: GhcMonad m => m DynFlags
- class (Functor m, ExceptionMonad m, HasDynFlags m, HasLogger m) => GhcMonad (m :: Type -> Type)
- data Ghc a
- runHsc :: HscEnv -> Hsc a -> IO a
- compileFile :: HscEnv -> StopPhase -> (FilePath, Maybe Phase) -> IO (Maybe FilePath)
- data Phase
- hscDesugar :: HscEnv -> ModSummary -> TcGblEnv -> IO ModGuts
- hscGenHardCode :: HscEnv -> CgGuts -> ModLocation -> FilePath -> IO (FilePath, Maybe FilePath, [(ForeignSrcLang, FilePath)], Maybe StgCgInfos, Maybe CmmCgInfos)
- hscInteractive :: HscEnv -> CgInteractiveGuts -> ModLocation -> IO (Maybe FilePath, CompiledByteCode, [SptEntry])
- hscSimplify :: HscEnv -> [String] -> ModGuts -> IO ModGuts
- hscTypecheckRename :: HscEnv -> ModSummary -> HsParsedModule -> IO (TcGblEnv, RenamedStuff)
- hscUpdateHPT :: (HomePackageTable -> HomePackageTable) -> HscEnv -> HscEnv
- makeSimpleDetails :: HscEnv -> TcGblEnv -> IO ModDetails
- tcSplitForAllTyVars :: Type -> ([TyVar], Type)
- tcSplitForAllTyVarBinder_maybe :: Type -> Maybe (TyVarBinder, Type)
- typecheckIface :: ModIface -> IfG ModDetails
- mkIfaceTc :: HscEnv -> SafeHaskellMode -> ModDetails -> ModSummary -> Maybe CoreProgram -> TcGblEnv -> IO ModIface
- mkBootModDetailsTc :: HscEnv -> TcGblEnv -> IO ModDetails
- initTidyOpts :: HscEnv -> IO TidyOpts
- driverNoStop :: StopPhase
- tidyProgram :: TidyOpts -> ModGuts -> IO (CgGuts, ModDetails)
- data ImportedModsVal = ImportedModsVal {}
- importedByUser :: [ImportedBy] -> [ImportedModsVal]
- type TypecheckedSource = LHsBinds GhcTc
- class HasSrcSpan a
- type Located = GenLocated SrcSpan
- unLoc :: GenLocated l e -> e
- getLoc :: HasSrcSpan a => a -> SrcSpan
- getLocA :: HasLoc a => GenLocated a e -> SrcSpan
- locA :: HasLoc a => a -> SrcSpan
- noLocA :: HasAnnotation e => a -> GenLocated e a
- unLocA :: forall (pass :: Pass) a. XRec (GhcPass pass) a -> a
- type LocatedAn a = LocatedAn a
- type LocatedA = GenLocated SrcSpanAnnA
- data AnnListItem = AnnListItem {
- lann_trailing :: [TrailingAnn]
- data NameAnn
- = NameAnn { }
- | NameAnnCommas { }
- | NameAnnBars { }
- | NameAnnOnly { }
- | NameAnnRArrow { }
- | NameAnnQuote { }
- | NameAnnTrailing {
- nann_trailing :: [TrailingAnn]
- type RealLocated = GenLocated RealSrcSpan
- data GenLocated l e = L l e
- data SrcSpan = UnhelpfulSpan !UnhelpfulSpanReason
- data RealSrcSpan
- pattern RealSrcSpan :: RealSrcSpan -> Maybe BufSpan -> SrcSpan
- data RealSrcLoc
- pattern RealSrcLoc :: RealSrcLoc -> Maybe BufPos -> SrcLoc
- data SrcLoc = UnhelpfulLoc !FastString
- data BufSpan
- leftmost_smallest :: SrcSpan -> SrcSpan -> Ordering
- containsSpan :: RealSrcSpan -> RealSrcSpan -> Bool
- mkGeneralSrcSpan :: FastString -> SrcSpan
- mkRealSrcSpan :: RealSrcLoc -> RealSrcLoc -> RealSrcSpan
- mkRealSrcLoc :: FastString -> Int -> Int -> RealSrcLoc
- getRealSrcSpan :: RealLocated a -> RealSrcSpan
- realSrcLocSpan :: RealSrcLoc -> RealSrcSpan
- realSrcSpanStart :: RealSrcSpan -> RealSrcLoc
- realSrcSpanEnd :: RealSrcSpan -> RealSrcLoc
- isSubspanOfA :: LocatedAn la a -> LocatedAn lb b -> Bool
- isSubspanOf :: SrcSpan -> SrcSpan -> Bool
- wiredInSrcSpan :: SrcSpan
- mkSrcSpan :: SrcLoc -> SrcLoc -> SrcSpan
- srcSpanStart :: SrcSpan -> SrcLoc
- srcSpanStartLine :: RealSrcSpan -> Int
- srcSpanStartCol :: RealSrcSpan -> Int
- srcSpanEnd :: SrcSpan -> SrcLoc
- srcSpanEndLine :: RealSrcSpan -> Int
- srcSpanEndCol :: RealSrcSpan -> Int
- srcSpanFile :: RealSrcSpan -> FastString
- srcLocCol :: RealSrcLoc -> Int
- srcLocFile :: RealSrcLoc -> FastString
- srcLocLine :: RealSrcLoc -> Int
- noSrcSpan :: SrcSpan
- noSrcLoc :: SrcLoc
- noLoc :: e -> Located e
- mapLoc :: (a -> b) -> GenLocated l a -> GenLocated l b
- data FindResult
- = Found ModLocation Module
- | NoPackage Unit
- | FoundMultiple [(Module, ModuleOrigin)]
- | NotFound {
- fr_paths :: [FilePath]
- fr_pkg :: Maybe Unit
- fr_mods_hidden :: [Unit]
- fr_pkgs_hidden :: [Unit]
- fr_unusables :: [UnusableUnit]
- fr_suggestions :: [ModuleSuggestion]
- mkHomeModLocation :: DynFlags -> ModuleName -> FilePath -> IO ModLocation
- findObjectLinkableMaybe :: Module -> ModLocation -> IO (Maybe Linkable)
- data InstalledFindResult
- data ModuleOrigin
- = ModHidden
- | ModUnusable !UnusableUnit
- | ModOrigin { }
- newtype PackageName = PackageName {}
- data Unlinked
- data Linkable = LM {
- linkableTime :: !UTCTime
- linkableModule :: !Module
- linkableUnlinked :: [Unlinked]
- unload :: HscEnv -> [Linkable] -> IO ()
- data Hooks
- runMetaHook :: Hooks -> Maybe (MetaHook TcM)
- type MetaHook (f :: Type -> Type) = MetaRequest -> LHsExpr GhcTc -> f MetaResult
- data MetaRequest
- = MetaE (LHsExpr GhcPs -> MetaResult)
- | MetaP (LPat GhcPs -> MetaResult)
- | MetaT (LHsType GhcPs -> MetaResult)
- | MetaD ([LHsDecl GhcPs] -> MetaResult)
- | MetaAW (Serialized -> MetaResult)
- metaRequestE :: Functor f => MetaHook f -> LHsExpr GhcTc -> f (LHsExpr GhcPs)
- metaRequestP :: Functor f => MetaHook f -> LHsExpr GhcTc -> f (LPat GhcPs)
- metaRequestT :: Functor f => MetaHook f -> LHsExpr GhcTc -> f (LHsType GhcPs)
- metaRequestD :: Functor f => MetaHook f -> LHsExpr GhcTc -> f [LHsDecl GhcPs]
- metaRequestAW :: Functor f => MetaHook f -> LHsExpr GhcTc -> f Serialized
- addToHpt :: HomePackageTable -> ModuleName -> HomeModInfo -> HomePackageTable
- addListToHpt :: HomePackageTable -> [(ModuleName, HomeModInfo)] -> HomePackageTable
- data Target = Target {
- targetId :: !TargetId
- targetAllowObjCode :: !Bool
- targetUnitId :: !UnitId
- targetContents :: !(Maybe (InputFileBuffer, UTCTime))
- data TargetId
- = TargetModule !ModuleName
- | TargetFile !FilePath !(Maybe Phase)
- mkSimpleTarget :: DynFlags -> FilePath -> Target
- initObjLinker :: HscEnv -> IO ()
- loadDLL :: HscEnv -> String -> IO (Maybe String)
- data InteractiveImport
- getContext :: GhcMonad m => m [InteractiveImport]
- setContext :: GhcMonad m => [InteractiveImport] -> m ()
- parseImportDecl :: GhcMonad m => String -> m (ImportDecl GhcPs)
- runDecls :: GhcMonad m => String -> m [Name]
- type Warn = Located DriverMessage
- data ModLocation
- ml_hs_file :: ModLocation -> Maybe FilePath
- ml_obj_file :: ModLocation -> FilePath
- ml_hi_file :: ModLocation -> FilePath
- ml_hie_file :: ModLocation -> FilePath
- dataConExTyCoVars :: DataCon -> [TyCoVar]
- data Role
- data PlainGhcException
- data CoreModule = CoreModule {
- cm_module :: !Module
- cm_types :: !TypeEnv
- cm_binds :: CoreProgram
- cm_safe :: SafeHaskellMode
- data SafeHaskellMode
- pattern GRE :: Name -> Parent -> Bool -> [ImportSpec] -> GlobalRdrElt
- gre_name :: GlobalRdrElt -> Name
- gre_imp :: GlobalRdrElt -> [ImportSpec]
- gre_lcl :: GlobalRdrElt -> Bool
- gre_par :: GlobalRdrElt -> Parent
- collectHsBindsBinders :: CollectPass p => Bag (XRec p (HsBindLR p idR)) -> [IdP p]
- class Uniquable a where
- hasKey :: Uniquable a => a -> Unique -> Bool
- allNameStrings :: Infinite String
- allNameStringList :: [String]
- itName :: Unique -> SrcSpan -> Name
- mkUnboundName :: OccName -> Name
- isUnboundName :: Name -> Bool
- basicKnownKeyNames :: [Name]
- genericTyConNames :: [Name]
- gHC_PRIM :: Module
- gHC_PRIM_PANIC :: Module
- gHC_TYPES :: Module
- gHC_MAGIC :: Module
- gHC_MAGIC_DICT :: Module
- gHC_CSTRING :: Module
- gHC_CLASSES :: Module
- gHC_PRIMOPWRAPPERS :: Module
- gHC_INTERNAL_TUPLE :: Module
- pRELUDE :: Module
- dATA_LIST :: Module
- cONTROL_MONAD_ZIP :: Module
- gHC_INTERNAL_NUM_INTEGER :: Module
- gHC_INTERNAL_NUM_NATURAL :: Module
- gHC_INTERNAL_NUM_BIGNAT :: Module
- gHC_INTERNAL_BASE :: Module
- gHC_INTERNAL_ENUM :: Module
- gHC_INTERNAL_GHCI :: Module
- gHC_INTERNAL_GHCI_HELPERS :: Module
- gHC_INTERNAL_SHOW :: Module
- gHC_INTERNAL_READ :: Module
- gHC_INTERNAL_NUM :: Module
- gHC_INTERNAL_MAYBE :: Module
- gHC_INTERNAL_LIST :: Module
- gHC_INTERNAL_DATA_EITHER :: Module
- gHC_INTERNAL_DATA_STRING :: Module
- gHC_INTERNAL_DATA_FOLDABLE :: Module
- gHC_INTERNAL_DATA_TRAVERSABLE :: Module
- gHC_INTERNAL_CONC :: Module
- gHC_INTERNAL_IO :: Module
- gHC_INTERNAL_IO_Exception :: Module
- gHC_INTERNAL_ST :: Module
- gHC_INTERNAL_IX :: Module
- gHC_INTERNAL_STABLE :: Module
- gHC_INTERNAL_PTR :: Module
- gHC_INTERNAL_ERR :: Module
- gHC_INTERNAL_REAL :: Module
- gHC_INTERNAL_FLOAT :: Module
- gHC_INTERNAL_TOP_HANDLER :: Module
- gHC_INTERNAL_SYSTEM_IO :: Module
- gHC_INTERNAL_DYNAMIC :: Module
- gHC_INTERNAL_TYPEABLE :: Module
- gHC_INTERNAL_TYPEABLE_INTERNAL :: Module
- gHC_INTERNAL_DATA_DATA :: Module
- gHC_INTERNAL_READ_PREC :: Module
- gHC_INTERNAL_LEX :: Module
- gHC_INTERNAL_INT :: Module
- gHC_INTERNAL_WORD :: Module
- gHC_INTERNAL_MONAD :: Module
- gHC_INTERNAL_MONAD_FIX :: Module
- gHC_INTERNAL_MONAD_FAIL :: Module
- gHC_INTERNAL_ARROW :: Module
- gHC_INTERNAL_DESUGAR :: Module
- gHC_INTERNAL_RANDOM :: Module
- gHC_INTERNAL_EXTS :: Module
- gHC_INTERNAL_IS_LIST :: Module
- gHC_INTERNAL_CONTROL_EXCEPTION_BASE :: Module
- gHC_INTERNAL_EXCEPTION_CONTEXT :: Module
- gHC_INTERNAL_GENERICS :: Module
- gHC_INTERNAL_TYPEERROR :: Module
- gHC_INTERNAL_TYPELITS :: Module
- gHC_INTERNAL_TYPELITS_INTERNAL :: Module
- gHC_INTERNAL_TYPENATS :: Module
- gHC_INTERNAL_TYPENATS_INTERNAL :: Module
- gHC_INTERNAL_DATA_COERCE :: Module
- gHC_INTERNAL_DEBUG_TRACE :: Module
- gHC_INTERNAL_UNSAFE_COERCE :: Module
- gHC_INTERNAL_FOREIGN_C_CONSTPTR :: Module
- gHC_INTERNAL_SRCLOC :: Module
- gHC_INTERNAL_STACK :: Module
- gHC_INTERNAL_STACK_TYPES :: Module
- gHC_INTERNAL_STATICPTR :: Module
- gHC_INTERNAL_STATICPTR_INTERNAL :: Module
- gHC_INTERNAL_FINGERPRINT_TYPE :: Module
- gHC_INTERNAL_OVER_LABELS :: Module
- gHC_INTERNAL_RECORDS :: Module
- dATA_TUPLE_EXPERIMENTAL :: Module
- dATA_SUM_EXPERIMENTAL :: Module
- rOOT_MAIN :: Module
- mkInteractiveModule :: String -> Module
- pRELUDE_NAME :: ModuleName
- mAIN_NAME :: ModuleName
- mkPrimModule :: FastString -> Module
- mkBignumModule :: FastString -> Module
- mkGhcInternalModule :: FastString -> Module
- mkGhcInternalModule_ :: ModuleName -> Module
- mkBaseModule :: FastString -> Module
- mkBaseModule_ :: ModuleName -> Module
- mkThisGhcModule :: FastString -> Module
- mkThisGhcModule_ :: ModuleName -> Module
- mkMainModule :: FastString -> Module
- mkMainModule_ :: ModuleName -> Module
- mkExperimentalModule :: FastString -> Module
- main_RDR_Unqual :: RdrName
- eq_RDR :: RdrName
- ge_RDR :: RdrName
- le_RDR :: RdrName
- lt_RDR :: RdrName
- gt_RDR :: RdrName
- compare_RDR :: RdrName
- ltTag_RDR :: RdrName
- eqTag_RDR :: RdrName
- gtTag_RDR :: RdrName
- map_RDR :: RdrName
- append_RDR :: RdrName
- foldr_RDR :: RdrName
- build_RDR :: RdrName
- returnM_RDR :: RdrName
- bindM_RDR :: RdrName
- failM_RDR :: RdrName
- left_RDR :: RdrName
- right_RDR :: RdrName
- fromEnum_RDR :: RdrName
- toEnum_RDR :: RdrName
- enumFrom_RDR :: RdrName
- enumFromTo_RDR :: RdrName
- enumFromThen_RDR :: RdrName
- enumFromThenTo_RDR :: RdrName
- times_RDR :: RdrName
- plus_RDR :: RdrName
- compose_RDR :: RdrName
- and_RDR :: RdrName
- not_RDR :: RdrName
- dataToTag_RDR :: RdrName
- succ_RDR :: RdrName
- pred_RDR :: RdrName
- minBound_RDR :: RdrName
- maxBound_RDR :: RdrName
- range_RDR :: RdrName
- inRange_RDR :: RdrName
- index_RDR :: RdrName
- unsafeIndex_RDR :: RdrName
- unsafeRangeSize_RDR :: RdrName
- readList_RDR :: RdrName
- readListDefault_RDR :: RdrName
- readListPrec_RDR :: RdrName
- readListPrecDefault_RDR :: RdrName
- readPrec_RDR :: RdrName
- parens_RDR :: RdrName
- choose_RDR :: RdrName
- lexP_RDR :: RdrName
- expectP_RDR :: RdrName
- readField_RDR :: RdrName
- readFieldHash_RDR :: RdrName
- readSymField_RDR :: RdrName
- punc_RDR :: RdrName
- ident_RDR :: RdrName
- symbol_RDR :: RdrName
- step_RDR :: RdrName
- alt_RDR :: RdrName
- reset_RDR :: RdrName
- prec_RDR :: RdrName
- pfail_RDR :: RdrName
- showsPrec_RDR :: RdrName
- shows_RDR :: RdrName
- showString_RDR :: RdrName
- showSpace_RDR :: RdrName
- showCommaSpace_RDR :: RdrName
- showParen_RDR :: RdrName
- error_RDR :: RdrName
- u1DataCon_RDR :: RdrName
- par1DataCon_RDR :: RdrName
- rec1DataCon_RDR :: RdrName
- k1DataCon_RDR :: RdrName
- m1DataCon_RDR :: RdrName
- l1DataCon_RDR :: RdrName
- r1DataCon_RDR :: RdrName
- prodDataCon_RDR :: RdrName
- comp1DataCon_RDR :: RdrName
- unPar1_RDR :: RdrName
- unRec1_RDR :: RdrName
- unK1_RDR :: RdrName
- unComp1_RDR :: RdrName
- from_RDR :: RdrName
- from1_RDR :: RdrName
- to_RDR :: RdrName
- to1_RDR :: RdrName
- datatypeName_RDR :: RdrName
- moduleName_RDR :: RdrName
- packageName_RDR :: RdrName
- isNewtypeName_RDR :: RdrName
- selName_RDR :: RdrName
- conName_RDR :: RdrName
- conFixity_RDR :: RdrName
- conIsRecord_RDR :: RdrName
- prefixDataCon_RDR :: RdrName
- infixDataCon_RDR :: RdrName
- leftAssocDataCon_RDR :: RdrName
- rightAssocDataCon_RDR :: RdrName
- notAssocDataCon_RDR :: RdrName
- uAddrDataCon_RDR :: RdrName
- uCharDataCon_RDR :: RdrName
- uDoubleDataCon_RDR :: RdrName
- uFloatDataCon_RDR :: RdrName
- uIntDataCon_RDR :: RdrName
- uWordDataCon_RDR :: RdrName
- uAddrHash_RDR :: RdrName
- uCharHash_RDR :: RdrName
- uDoubleHash_RDR :: RdrName
- uFloatHash_RDR :: RdrName
- uIntHash_RDR :: RdrName
- uWordHash_RDR :: RdrName
- fmap_RDR :: RdrName
- replace_RDR :: RdrName
- pure_RDR :: RdrName
- ap_RDR :: RdrName
- liftA2_RDR :: RdrName
- foldable_foldr_RDR :: RdrName
- foldMap_RDR :: RdrName
- null_RDR :: RdrName
- all_RDR :: RdrName
- traverse_RDR :: RdrName
- mempty_RDR :: RdrName
- mappend_RDR :: RdrName
- varQual_RDR :: Module -> FastString -> RdrName
- tcQual_RDR :: Module -> FastString -> RdrName
- clsQual_RDR :: Module -> FastString -> RdrName
- dataQual_RDR :: Module -> FastString -> RdrName
- fieldQual_RDR :: Module -> FastString -> FastString -> RdrName
- wildCardName :: Name
- runMainIOName :: Name
- runRWName :: Name
- orderingTyConName :: Name
- ordLTDataConName :: Name
- ordEQDataConName :: Name
- ordGTDataConName :: Name
- specTyConName :: Name
- eitherTyConName :: Name
- leftDataConName :: Name
- rightDataConName :: Name
- voidTyConName :: Name
- v1TyConName :: Name
- u1TyConName :: Name
- par1TyConName :: Name
- rec1TyConName :: Name
- k1TyConName :: Name
- m1TyConName :: Name
- sumTyConName :: Name
- prodTyConName :: Name
- compTyConName :: Name
- rTyConName :: Name
- dTyConName :: Name
- cTyConName :: Name
- sTyConName :: Name
- rec0TyConName :: Name
- d1TyConName :: Name
- c1TyConName :: Name
- s1TyConName :: Name
- repTyConName :: Name
- rep1TyConName :: Name
- uRecTyConName :: Name
- uAddrTyConName :: Name
- uCharTyConName :: Name
- uDoubleTyConName :: Name
- uFloatTyConName :: Name
- uIntTyConName :: Name
- uWordTyConName :: Name
- prefixIDataConName :: Name
- infixIDataConName :: Name
- leftAssociativeDataConName :: Name
- rightAssociativeDataConName :: Name
- notAssociativeDataConName :: Name
- sourceUnpackDataConName :: Name
- sourceNoUnpackDataConName :: Name
- noSourceUnpackednessDataConName :: Name
- sourceLazyDataConName :: Name
- sourceStrictDataConName :: Name
- noSourceStrictnessDataConName :: Name
- decidedLazyDataConName :: Name
- decidedStrictDataConName :: Name
- decidedUnpackDataConName :: Name
- metaDataDataConName :: Name
- metaConsDataConName :: Name
- metaSelDataConName :: Name
- divIntName :: Name
- modIntName :: Name
- cstringLengthName :: Name
- eqStringName :: Name
- unpackCStringName :: Name
- unpackCStringAppendName :: Name
- unpackCStringFoldrName :: Name
- unpackCStringUtf8Name :: Name
- unpackCStringAppendUtf8Name :: Name
- unpackCStringFoldrUtf8Name :: Name
- inlineIdName :: Name
- eqClassName :: Name
- eqName :: Name
- ordClassName :: Name
- geName :: Name
- functorClassName :: Name
- fmapName :: Name
- monadClassName :: Name
- thenMName :: Name
- bindMName :: Name
- returnMName :: Name
- monadFailClassName :: Name
- failMName :: Name
- applicativeClassName :: Name
- apAName :: Name
- pureAName :: Name
- thenAName :: Name
- foldableClassName :: Name
- traversableClassName :: Name
- semigroupClassName :: Name
- sappendName :: Name
- monoidClassName :: Name
- memptyName :: Name
- mappendName :: Name
- mconcatName :: Name
- joinMName :: Name
- alternativeClassName :: Name
- joinMIdKey :: Unique
- apAClassOpKey :: Unique
- pureAClassOpKey :: Unique
- thenAClassOpKey :: Unique
- alternativeClassKey :: Unique
- considerAccessibleName :: Name
- dollarName :: Name
- otherwiseIdName :: Name
- foldrName :: Name
- buildName :: Name
- augmentName :: Name
- mapName :: Name
- appendName :: Name
- assertName :: Name
- fromStringName :: Name
- numClassName :: Name
- fromIntegerName :: Name
- minusName :: Name
- negateName :: Name
- bnbVarQual :: String -> Unique -> Name
- bnnVarQual :: String -> Unique -> Name
- bniVarQual :: String -> Unique -> Name
- bignatFromWordListName :: Name
- bignatEqName :: Name
- bignatCompareName :: Name
- bignatCompareWordName :: Name
- naturalToWordName :: Name
- naturalPopCountName :: Name
- naturalShiftRName :: Name
- naturalShiftLName :: Name
- naturalAddName :: Name
- naturalSubName :: Name
- naturalSubThrowName :: Name
- naturalSubUnsafeName :: Name
- naturalMulName :: Name
- naturalQuotRemName :: Name
- naturalQuotName :: Name
- naturalRemName :: Name
- naturalAndName :: Name
- naturalAndNotName :: Name
- naturalOrName :: Name
- naturalXorName :: Name
- naturalTestBitName :: Name
- naturalBitName :: Name
- naturalGcdName :: Name
- naturalLcmName :: Name
- naturalLog2Name :: Name
- naturalLogBaseWordName :: Name
- naturalLogBaseName :: Name
- naturalPowModName :: Name
- naturalSizeInBaseName :: Name
- integerFromNaturalName :: Name
- integerToNaturalClampName :: Name
- integerToNaturalThrowName :: Name
- integerToNaturalName :: Name
- integerToWordName :: Name
- integerToIntName :: Name
- integerToWord64Name :: Name
- integerToInt64Name :: Name
- integerFromWordName :: Name
- integerFromWord64Name :: Name
- integerFromInt64Name :: Name
- integerAddName :: Name
- integerMulName :: Name
- integerSubName :: Name
- integerNegateName :: Name
- integerAbsName :: Name
- integerPopCountName :: Name
- integerQuotName :: Name
- integerRemName :: Name
- integerDivName :: Name
- integerModName :: Name
- integerDivModName :: Name
- integerQuotRemName :: Name
- integerEncodeFloatName :: Name
- integerEncodeDoubleName :: Name
- integerGcdName :: Name
- integerLcmName :: Name
- integerAndName :: Name
- integerOrName :: Name
- integerXorName :: Name
- integerComplementName :: Name
- integerBitName :: Name
- integerTestBitName :: Name
- integerShiftLName :: Name
- integerShiftRName :: Name
- rationalTyConName :: Name
- ratioTyConName :: Name
- ratioDataConName :: Name
- realClassName :: Name
- integralClassName :: Name
- realFracClassName :: Name
- fractionalClassName :: Name
- fromRationalName :: Name
- toIntegerName :: Name
- toRationalName :: Name
- fromIntegralName :: Name
- realToFracName :: Name
- mkRationalBase2Name :: Name
- mkRationalBase10Name :: Name
- floatingClassName :: Name
- realFloatClassName :: Name
- integerToFloatName :: Name
- integerToDoubleName :: Name
- naturalToFloatName :: Name
- naturalToDoubleName :: Name
- rationalToFloatName :: Name
- rationalToDoubleName :: Name
- ixClassName :: Name
- trModuleTyConName :: Name
- trModuleDataConName :: Name
- trNameTyConName :: Name
- trNameSDataConName :: Name
- trNameDDataConName :: Name
- trTyConTyConName :: Name
- trTyConDataConName :: Name
- kindRepTyConName :: Name
- kindRepTyConAppDataConName :: Name
- kindRepVarDataConName :: Name
- kindRepAppDataConName :: Name
- kindRepFunDataConName :: Name
- kindRepTYPEDataConName :: Name
- kindRepTypeLitSDataConName :: Name
- kindRepTypeLitDDataConName :: Name
- typeLitSortTyConName :: Name
- typeLitSymbolDataConName :: Name
- typeLitNatDataConName :: Name
- typeLitCharDataConName :: Name
- typeableClassName :: Name
- typeRepTyConName :: Name
- someTypeRepTyConName :: Name
- someTypeRepDataConName :: Name
- typeRepIdName :: Name
- mkTrTypeName :: Name
- mkTrConName :: Name
- mkTrAppName :: Name
- mkTrFunName :: Name
- typeNatTypeRepName :: Name
- typeSymbolTypeRepName :: Name
- typeCharTypeRepName :: Name
- trGhcPrimModuleName :: Name
- starKindRepName :: Name
- starArrStarKindRepName :: Name
- starArrStarArrStarKindRepName :: Name
- constraintKindRepName :: Name
- withDictClassName :: Name
- nonEmptyTyConName :: Name
- dataToTagClassName :: Name
- errorMessageTypeErrorFamName :: Name
- typeErrorTextDataConName :: Name
- typeErrorAppendDataConName :: Name
- typeErrorVAppendDataConName :: Name
- typeErrorShowTypeDataConName :: Name
- unsatisfiableClassName :: Name
- unsatisfiableIdName :: Name
- unsafeEqualityProofName :: Name
- unsafeEqualityTyConName :: Name
- unsafeReflDataConName :: Name
- unsafeCoercePrimName :: Name
- toDynName :: Name
- dataClassName :: Name
- assertErrorName :: Name
- traceName :: Name
- enumClassName :: Name
- enumFromName :: Name
- enumFromToName :: Name
- enumFromThenName :: Name
- enumFromThenToName :: Name
- boundedClassName :: Name
- concatName :: Name
- filterName :: Name
- zipName :: Name
- isListClassName :: Name
- fromListName :: Name
- fromListNName :: Name
- toListName :: Name
- getFieldName :: Name
- setFieldName :: Name
- showClassName :: Name
- readClassName :: Name
- genClassName :: Name
- gen1ClassName :: Name
- datatypeClassName :: Name
- constructorClassName :: Name
- selectorClassName :: Name
- genericClassNames :: [Name]
- ghciIoClassName :: Name
- ghciStepIoMName :: Name
- ioTyConName :: Name
- ioDataConName :: Name
- thenIOName :: Name
- bindIOName :: Name
- returnIOName :: Name
- failIOName :: Name
- int8TyConName :: Name
- int16TyConName :: Name
- int32TyConName :: Name
- int64TyConName :: Name
- word8TyConName :: Name
- word16TyConName :: Name
- word32TyConName :: Name
- word64TyConName :: Name
- ptrTyConName :: Name
- funPtrTyConName :: Name
- stablePtrTyConName :: Name
- newStablePtrName :: Name
- monadFixClassName :: Name
- mfixName :: Name
- arrAName :: Name
- composeAName :: Name
- firstAName :: Name
- appAName :: Name
- choiceAName :: Name
- loopAName :: Name
- guardMName :: Name
- liftMName :: Name
- mzipName :: Name
- toAnnotationWrapperName :: Name
- monadPlusClassName :: Name
- isStringClassName :: Name
- knownNatClassName :: Name
- knownSymbolClassName :: Name
- knownCharClassName :: Name
- fromLabelClassOpName :: Name
- ipClassName :: Name
- hasFieldClassName :: Name
- exceptionContextTyConName :: Name
- emptyExceptionContextName :: Name
- callStackTyConName :: Name
- emptyCallStackName :: Name
- pushCallStackName :: Name
- srcLocDataConName :: Name
- pLUGINS :: Module
- pluginTyConName :: Name
- frontendPluginTyConName :: Name
- makeStaticName :: Name
- staticPtrInfoTyConName :: Name
- staticPtrInfoDataConName :: Name
- staticPtrTyConName :: Name
- staticPtrDataConName :: Name
- fromStaticPtrName :: Name
- fingerprintDataConName :: Name
- constPtrConName :: Name
- jsvalTyConName :: Name
- varQual :: Module -> FastString -> Unique -> Name
- tcQual :: Module -> FastString -> Unique -> Name
- clsQual :: Module -> FastString -> Unique -> Name
- dcQual :: Module -> FastString -> Unique -> Name
- mk_known_key_name :: NameSpace -> Module -> FastString -> Unique -> Name
- boundedClassKey :: Unique
- enumClassKey :: Unique
- eqClassKey :: Unique
- floatingClassKey :: Unique
- fractionalClassKey :: Unique
- integralClassKey :: Unique
- monadClassKey :: Unique
- dataClassKey :: Unique
- functorClassKey :: Unique
- numClassKey :: Unique
- ordClassKey :: Unique
- readClassKey :: Unique
- realClassKey :: Unique
- realFloatClassKey :: Unique
- realFracClassKey :: Unique
- showClassKey :: Unique
- ixClassKey :: Unique
- typeableClassKey :: Unique
- withDictClassKey :: Unique
- dataToTagClassKey :: Unique
- monadFixClassKey :: Unique
- monadFailClassKey :: Unique
- monadPlusClassKey :: Unique
- randomClassKey :: Unique
- randomGenClassKey :: Unique
- isStringClassKey :: Unique
- applicativeClassKey :: Unique
- foldableClassKey :: Unique
- traversableClassKey :: Unique
- genClassKey :: Unique
- gen1ClassKey :: Unique
- datatypeClassKey :: Unique
- constructorClassKey :: Unique
- selectorClassKey :: Unique
- knownNatClassNameKey :: Unique
- knownSymbolClassNameKey :: Unique
- knownCharClassNameKey :: Unique
- ghciIoClassKey :: Unique
- semigroupClassKey :: Unique
- monoidClassKey :: Unique
- ipClassKey :: Unique
- hasFieldClassNameKey :: Unique
- addrPrimTyConKey :: Unique
- arrayPrimTyConKey :: Unique
- boolTyConKey :: Unique
- byteArrayPrimTyConKey :: Unique
- stringTyConKey :: Unique
- charPrimTyConKey :: Unique
- charTyConKey :: Unique
- doublePrimTyConKey :: Unique
- doubleTyConKey :: Unique
- floatPrimTyConKey :: Unique
- floatTyConKey :: Unique
- fUNTyConKey :: Unique
- intPrimTyConKey :: Unique
- intTyConKey :: Unique
- int8PrimTyConKey :: Unique
- int8TyConKey :: Unique
- int16PrimTyConKey :: Unique
- int16TyConKey :: Unique
- int32PrimTyConKey :: Unique
- int32TyConKey :: Unique
- int64PrimTyConKey :: Unique
- int64TyConKey :: Unique
- integerTyConKey :: Unique
- naturalTyConKey :: Unique
- listTyConKey :: Unique
- foreignObjPrimTyConKey :: Unique
- maybeTyConKey :: Unique
- weakPrimTyConKey :: Unique
- mutableArrayPrimTyConKey :: Unique
- mutableByteArrayPrimTyConKey :: Unique
- orderingTyConKey :: Unique
- mVarPrimTyConKey :: Unique
- ioPortPrimTyConKey :: Unique
- ratioTyConKey :: Unique
- rationalTyConKey :: Unique
- realWorldTyConKey :: Unique
- stablePtrPrimTyConKey :: Unique
- stablePtrTyConKey :: Unique
- eqTyConKey :: Unique
- heqTyConKey :: Unique
- ctArrowTyConKey :: Unique
- ccArrowTyConKey :: Unique
- tcArrowTyConKey :: Unique
- statePrimTyConKey :: Unique
- stableNamePrimTyConKey :: Unique
- stableNameTyConKey :: Unique
- eqPrimTyConKey :: Unique
- eqReprPrimTyConKey :: Unique
- eqPhantPrimTyConKey :: Unique
- mutVarPrimTyConKey :: Unique
- ioTyConKey :: Unique
- wordPrimTyConKey :: Unique
- wordTyConKey :: Unique
- word8PrimTyConKey :: Unique
- word8TyConKey :: Unique
- word16PrimTyConKey :: Unique
- word16TyConKey :: Unique
- word32PrimTyConKey :: Unique
- word32TyConKey :: Unique
- word64PrimTyConKey :: Unique
- word64TyConKey :: Unique
- kindConKey :: Unique
- boxityConKey :: Unique
- typeConKey :: Unique
- threadIdPrimTyConKey :: Unique
- bcoPrimTyConKey :: Unique
- ptrTyConKey :: Unique
- funPtrTyConKey :: Unique
- tVarPrimTyConKey :: Unique
- compactPrimTyConKey :: Unique
- stackSnapshotPrimTyConKey :: Unique
- promptTagPrimTyConKey :: Unique
- eitherTyConKey :: Unique
- voidTyConKey :: Unique
- nonEmptyTyConKey :: Unique
- dictTyConKey :: Unique
- liftedTypeKindTyConKey :: Unique
- unliftedTypeKindTyConKey :: Unique
- tYPETyConKey :: Unique
- cONSTRAINTTyConKey :: Unique
- constraintKindTyConKey :: Unique
- levityTyConKey :: Unique
- runtimeRepTyConKey :: Unique
- vecCountTyConKey :: Unique
- vecElemTyConKey :: Unique
- liftedRepTyConKey :: Unique
- unliftedRepTyConKey :: Unique
- zeroBitRepTyConKey :: Unique
- zeroBitTypeTyConKey :: Unique
- pluginTyConKey :: Unique
- frontendPluginTyConKey :: Unique
- trTyConTyConKey :: Unique
- trModuleTyConKey :: Unique
- trNameTyConKey :: Unique
- kindRepTyConKey :: Unique
- typeLitSortTyConKey :: Unique
- v1TyConKey :: Unique
- u1TyConKey :: Unique
- par1TyConKey :: Unique
- rec1TyConKey :: Unique
- k1TyConKey :: Unique
- m1TyConKey :: Unique
- sumTyConKey :: Unique
- prodTyConKey :: Unique
- compTyConKey :: Unique
- rTyConKey :: Unique
- dTyConKey :: Unique
- cTyConKey :: Unique
- sTyConKey :: Unique
- rec0TyConKey :: Unique
- d1TyConKey :: Unique
- c1TyConKey :: Unique
- s1TyConKey :: Unique
- repTyConKey :: Unique
- rep1TyConKey :: Unique
- uRecTyConKey :: Unique
- uAddrTyConKey :: Unique
- uCharTyConKey :: Unique
- uDoubleTyConKey :: Unique
- uFloatTyConKey :: Unique
- uIntTyConKey :: Unique
- uWordTyConKey :: Unique
- unsatisfiableClassNameKey :: Unique
- errorMessageTypeErrorFamKey :: Unique
- coercibleTyConKey :: Unique
- proxyPrimTyConKey :: Unique
- specTyConKey :: Unique
- anyTyConKey :: Unique
- smallArrayPrimTyConKey :: Unique
- smallMutableArrayPrimTyConKey :: Unique
- staticPtrTyConKey :: Unique
- staticPtrInfoTyConKey :: Unique
- callStackTyConKey :: Unique
- typeRepTyConKey :: Unique
- someTypeRepTyConKey :: Unique
- someTypeRepDataConKey :: Unique
- typeSymbolAppendFamNameKey :: Unique
- unsafeEqualityTyConKey :: Unique
- multiplicityTyConKey :: Unique
- unrestrictedFunTyConKey :: Unique
- multMulTyConKey :: Unique
- int8X16PrimTyConKey :: Unique
- int16X8PrimTyConKey :: Unique
- int32X4PrimTyConKey :: Unique
- int64X2PrimTyConKey :: Unique
- int8X32PrimTyConKey :: Unique
- int16X16PrimTyConKey :: Unique
- int32X8PrimTyConKey :: Unique
- int64X4PrimTyConKey :: Unique
- int8X64PrimTyConKey :: Unique
- int16X32PrimTyConKey :: Unique
- int32X16PrimTyConKey :: Unique
- int64X8PrimTyConKey :: Unique
- word8X16PrimTyConKey :: Unique
- word16X8PrimTyConKey :: Unique
- word32X4PrimTyConKey :: Unique
- word64X2PrimTyConKey :: Unique
- word8X32PrimTyConKey :: Unique
- word16X16PrimTyConKey :: Unique
- word32X8PrimTyConKey :: Unique
- word64X4PrimTyConKey :: Unique
- word8X64PrimTyConKey :: Unique
- word16X32PrimTyConKey :: Unique
- word32X16PrimTyConKey :: Unique
- word64X8PrimTyConKey :: Unique
- floatX4PrimTyConKey :: Unique
- doubleX2PrimTyConKey :: Unique
- floatX8PrimTyConKey :: Unique
- doubleX4PrimTyConKey :: Unique
- floatX16PrimTyConKey :: Unique
- doubleX8PrimTyConKey :: Unique
- typeSymbolKindConNameKey :: Unique
- typeCharKindConNameKey :: Unique
- typeNatAddTyFamNameKey :: Unique
- typeNatMulTyFamNameKey :: Unique
- typeNatExpTyFamNameKey :: Unique
- typeNatSubTyFamNameKey :: Unique
- typeSymbolCmpTyFamNameKey :: Unique
- typeNatCmpTyFamNameKey :: Unique
- typeCharCmpTyFamNameKey :: Unique
- typeLeqCharTyFamNameKey :: Unique
- typeNatDivTyFamNameKey :: Unique
- typeNatModTyFamNameKey :: Unique
- typeNatLogTyFamNameKey :: Unique
- typeConsSymbolTyFamNameKey :: Unique
- typeUnconsSymbolTyFamNameKey :: Unique
- typeCharToNatTyFamNameKey :: Unique
- typeNatToCharTyFamNameKey :: Unique
- constPtrTyConKey :: Unique
- jsvalTyConKey :: Unique
- exceptionContextTyConKey :: Unique
- charDataConKey :: Unique
- consDataConKey :: Unique
- doubleDataConKey :: Unique
- falseDataConKey :: Unique
- floatDataConKey :: Unique
- intDataConKey :: Unique
- nothingDataConKey :: Unique
- justDataConKey :: Unique
- eqDataConKey :: Unique
- nilDataConKey :: Unique
- ratioDataConKey :: Unique
- word8DataConKey :: Unique
- stableNameDataConKey :: Unique
- trueDataConKey :: Unique
- wordDataConKey :: Unique
- ioDataConKey :: Unique
- heqDataConKey :: Unique
- crossDataConKey :: Unique
- inlDataConKey :: Unique
- inrDataConKey :: Unique
- genUnitDataConKey :: Unique
- leftDataConKey :: Unique
- rightDataConKey :: Unique
- ordLTDataConKey :: Unique
- ordEQDataConKey :: Unique
- ordGTDataConKey :: Unique
- mkDictDataConKey :: Unique
- coercibleDataConKey :: Unique
- staticPtrDataConKey :: Unique
- staticPtrInfoDataConKey :: Unique
- fingerprintDataConKey :: Unique
- srcLocDataConKey :: Unique
- trTyConDataConKey :: Unique
- trModuleDataConKey :: Unique
- trNameSDataConKey :: Unique
- trNameDDataConKey :: Unique
- trGhcPrimModuleKey :: Unique
- typeErrorTextDataConKey :: Unique
- typeErrorAppendDataConKey :: Unique
- typeErrorVAppendDataConKey :: Unique
- typeErrorShowTypeDataConKey :: Unique
- prefixIDataConKey :: Unique
- infixIDataConKey :: Unique
- leftAssociativeDataConKey :: Unique
- rightAssociativeDataConKey :: Unique
- notAssociativeDataConKey :: Unique
- sourceUnpackDataConKey :: Unique
- sourceNoUnpackDataConKey :: Unique
- noSourceUnpackednessDataConKey :: Unique
- sourceLazyDataConKey :: Unique
- sourceStrictDataConKey :: Unique
- noSourceStrictnessDataConKey :: Unique
- decidedLazyDataConKey :: Unique
- decidedStrictDataConKey :: Unique
- decidedUnpackDataConKey :: Unique
- metaDataDataConKey :: Unique
- metaConsDataConKey :: Unique
- metaSelDataConKey :: Unique
- vecRepDataConKey :: Unique
- tupleRepDataConKey :: Unique
- sumRepDataConKey :: Unique
- boxedRepDataConKey :: Unique
- boxedRepDataConTyConKey :: Unique
- tupleRepDataConTyConKey :: Unique
- runtimeRepSimpleDataConKeys :: [Unique]
- liftedDataConKey :: Unique
- unliftedDataConKey :: Unique
- vecCountDataConKeys :: [Unique]
- vecElemDataConKeys :: [Unique]
- kindRepTyConAppDataConKey :: Unique
- kindRepVarDataConKey :: Unique
- kindRepAppDataConKey :: Unique
- kindRepFunDataConKey :: Unique
- kindRepTYPEDataConKey :: Unique
- kindRepTypeLitSDataConKey :: Unique
- kindRepTypeLitDDataConKey :: Unique
- typeLitSymbolDataConKey :: Unique
- typeLitNatDataConKey :: Unique
- typeLitCharDataConKey :: Unique
- unsafeReflDataConKey :: Unique
- oneDataConKey :: Unique
- manyDataConKey :: Unique
- integerISDataConKey :: Unique
- integerINDataConKey :: Unique
- integerIPDataConKey :: Unique
- naturalNSDataConKey :: Unique
- naturalNBDataConKey :: Unique
- wildCardKey :: Unique
- absentErrorIdKey :: Unique
- absentConstraintErrorIdKey :: Unique
- augmentIdKey :: Unique
- appendIdKey :: Unique
- buildIdKey :: Unique
- foldrIdKey :: Unique
- recSelErrorIdKey :: Unique
- seqIdKey :: Unique
- absentSumFieldErrorIdKey :: Unique
- eqStringIdKey :: Unique
- noMethodBindingErrorIdKey :: Unique
- nonExhaustiveGuardsErrorIdKey :: Unique
- impossibleErrorIdKey :: Unique
- impossibleConstraintErrorIdKey :: Unique
- patErrorIdKey :: Unique
- realWorldPrimIdKey :: Unique
- recConErrorIdKey :: Unique
- unpackCStringUtf8IdKey :: Unique
- unpackCStringAppendUtf8IdKey :: Unique
- unpackCStringFoldrUtf8IdKey :: Unique
- unpackCStringIdKey :: Unique
- unpackCStringAppendIdKey :: Unique
- unpackCStringFoldrIdKey :: Unique
- voidPrimIdKey :: Unique
- typeErrorIdKey :: Unique
- divIntIdKey :: Unique
- modIntIdKey :: Unique
- cstringLengthIdKey :: Unique
- concatIdKey :: Unique
- filterIdKey :: Unique
- zipIdKey :: Unique
- bindIOIdKey :: Unique
- returnIOIdKey :: Unique
- newStablePtrIdKey :: Unique
- printIdKey :: Unique
- failIOIdKey :: Unique
- nullAddrIdKey :: Unique
- voidArgIdKey :: Unique
- otherwiseIdKey :: Unique
- assertIdKey :: Unique
- leftSectionKey :: Unique
- rightSectionKey :: Unique
- rootMainKey :: Unique
- runMainKey :: Unique
- thenIOIdKey :: Unique
- lazyIdKey :: Unique
- assertErrorIdKey :: Unique
- oneShotKey :: Unique
- runRWKey :: Unique
- traceKey :: Unique
- nospecIdKey :: Unique
- inlineIdKey :: Unique
- mapIdKey :: Unique
- dollarIdKey :: Unique
- coercionTokenIdKey :: Unique
- considerAccessibleIdKey :: Unique
- noinlineIdKey :: Unique
- noinlineConstraintIdKey :: Unique
- integerToFloatIdKey :: Unique
- integerToDoubleIdKey :: Unique
- naturalToFloatIdKey :: Unique
- naturalToDoubleIdKey :: Unique
- rationalToFloatIdKey :: Unique
- rationalToDoubleIdKey :: Unique
- coerceKey :: Unique
- unboundKey :: Unique
- fromIntegerClassOpKey :: Unique
- minusClassOpKey :: Unique
- fromRationalClassOpKey :: Unique
- enumFromClassOpKey :: Unique
- enumFromThenClassOpKey :: Unique
- enumFromToClassOpKey :: Unique
- enumFromThenToClassOpKey :: Unique
- eqClassOpKey :: Unique
- geClassOpKey :: Unique
- negateClassOpKey :: Unique
- bindMClassOpKey :: Unique
- thenMClassOpKey :: Unique
- fmapClassOpKey :: Unique
- returnMClassOpKey :: Unique
- mfixIdKey :: Unique
- failMClassOpKey :: Unique
- fromLabelClassOpKey :: Unique
- arrAIdKey :: Unique
- composeAIdKey :: Unique
- firstAIdKey :: Unique
- appAIdKey :: Unique
- choiceAIdKey :: Unique
- loopAIdKey :: Unique
- fromStringClassOpKey :: Unique
- toAnnotationWrapperIdKey :: Unique
- fromIntegralIdKey :: Unique
- realToFracIdKey :: Unique
- toIntegerClassOpKey :: Unique
- toRationalClassOpKey :: Unique
- guardMIdKey :: Unique
- liftMIdKey :: Unique
- mzipIdKey :: Unique
- ghciStepIoMClassOpKey :: Unique
- isListClassKey :: Unique
- fromListClassOpKey :: Unique
- fromListNClassOpKey :: Unique
- toListClassOpKey :: Unique
- proxyHashKey :: Unique
- mkTyConKey :: Unique
- mkTrTypeKey :: Unique
- mkTrConKey :: Unique
- mkTrAppKey :: Unique
- typeNatTypeRepKey :: Unique
- typeSymbolTypeRepKey :: Unique
- typeCharTypeRepKey :: Unique
- typeRepIdKey :: Unique
- mkTrFunKey :: Unique
- starKindRepKey :: Unique
- starArrStarKindRepKey :: Unique
- starArrStarArrStarKindRepKey :: Unique
- constraintKindRepKey :: Unique
- toDynIdKey :: Unique
- eqSCSelIdKey :: Unique
- heqSCSelIdKey :: Unique
- coercibleSCSelIdKey :: Unique
- sappendClassOpKey :: Unique
- memptyClassOpKey :: Unique
- mappendClassOpKey :: Unique
- mconcatClassOpKey :: Unique
- emptyCallStackKey :: Unique
- pushCallStackKey :: Unique
- fromStaticPtrClassOpKey :: Unique
- makeStaticKey :: Unique
- emptyExceptionContextKey :: Unique
- unsafeEqualityProofIdKey :: Unique
- unsafeCoercePrimIdKey :: Unique
- getFieldClassOpKey :: Unique
- setFieldClassOpKey :: Unique
- unsatisfiableIdNameKey :: Unique
- integerFromNaturalIdKey :: Unique
- integerToNaturalClampIdKey :: Unique
- integerToNaturalThrowIdKey :: Unique
- integerToNaturalIdKey :: Unique
- integerToWordIdKey :: Unique
- integerToIntIdKey :: Unique
- integerToWord64IdKey :: Unique
- integerToInt64IdKey :: Unique
- integerAddIdKey :: Unique
- integerMulIdKey :: Unique
- integerSubIdKey :: Unique
- integerNegateIdKey :: Unique
- integerAbsIdKey :: Unique
- integerPopCountIdKey :: Unique
- integerQuotIdKey :: Unique
- integerRemIdKey :: Unique
- integerDivIdKey :: Unique
- integerModIdKey :: Unique
- integerDivModIdKey :: Unique
- integerQuotRemIdKey :: Unique
- integerEncodeFloatIdKey :: Unique
- integerEncodeDoubleIdKey :: Unique
- integerGcdIdKey :: Unique
- integerLcmIdKey :: Unique
- integerAndIdKey :: Unique
- integerOrIdKey :: Unique
- integerXorIdKey :: Unique
- integerComplementIdKey :: Unique
- integerBitIdKey :: Unique
- integerTestBitIdKey :: Unique
- integerShiftLIdKey :: Unique
- integerShiftRIdKey :: Unique
- integerFromWordIdKey :: Unique
- integerFromWord64IdKey :: Unique
- integerFromInt64IdKey :: Unique
- naturalToWordIdKey :: Unique
- naturalPopCountIdKey :: Unique
- naturalShiftRIdKey :: Unique
- naturalShiftLIdKey :: Unique
- naturalAddIdKey :: Unique
- naturalSubIdKey :: Unique
- naturalSubThrowIdKey :: Unique
- naturalSubUnsafeIdKey :: Unique
- naturalMulIdKey :: Unique
- naturalQuotRemIdKey :: Unique
- naturalQuotIdKey :: Unique
- naturalRemIdKey :: Unique
- naturalAndIdKey :: Unique
- naturalAndNotIdKey :: Unique
- naturalOrIdKey :: Unique
- naturalXorIdKey :: Unique
- naturalTestBitIdKey :: Unique
- naturalBitIdKey :: Unique
- naturalGcdIdKey :: Unique
- naturalLcmIdKey :: Unique
- naturalLog2IdKey :: Unique
- naturalLogBaseWordIdKey :: Unique
- naturalLogBaseIdKey :: Unique
- naturalPowModIdKey :: Unique
- naturalSizeInBaseIdKey :: Unique
- bignatFromWordListIdKey :: Unique
- bignatEqIdKey :: Unique
- bignatCompareIdKey :: Unique
- bignatCompareWordIdKey :: Unique
- mkRationalBase2IdKey :: Unique
- mkRationalBase10IdKey :: Unique
- numericClassKeys :: [Unique]
- fractionalClassKeys :: [Unique]
- standardClassKeys :: [Unique]
- derivableClassKeys :: [Unique]
- interactiveClassNames :: [Name]
- interactiveClassKeys :: [Unique]
- module GHC.Builtin.Types
- module GHC.Builtin.Types.Prim
- module GHC.Builtin.Utils
- module GHC.Core.Class
- module GHC.Core.Coercion
- module GHC.Core.ConLike
- data SrcUnpackedness
- data SrcStrictness
- data FieldLabelString
- type ConTag = Int
- data FieldLabel = FieldLabel {}
- flLabel :: FieldLabel -> FieldLabelString
- fIRST_TAG :: ConTag
- data EqSpec
- data DataConRep
- = NoDataConRep
- | DCR {
- dcr_wrap_id :: Id
- dcr_boxer :: DataConBoxer
- dcr_arg_tys :: [Scaled Type]
- dcr_stricts :: [StrictnessMark]
- dcr_bangs :: [HsImplBang]
- data DataCon
- promoteDataCon :: DataCon -> TyCon
- dataConWrapId :: DataCon -> Id
- isTypeDataCon :: DataCon -> Bool
- isUnboxedSumDataCon :: DataCon -> Bool
- dataConFullSig :: DataCon -> ([TyVar], [TyCoVar], [EqSpec], ThetaType, [Scaled Type], Type)
- dataConStupidTheta :: DataCon -> ThetaType
- dataConInstOrigArgTys :: DataCon -> [Type] -> [Scaled Type]
- dataConFieldLabels :: DataCon -> [FieldLabel]
- dataConSourceArity :: DataCon -> Arity
- dataConUserTyVarBinders :: DataCon -> [InvisTVBinder]
- dataConUserTyVars :: DataCon -> [TyVar]
- dataConTyCon :: DataCon -> TyCon
- dataConWorkId :: DataCon -> Id
- dataConName :: DataCon -> Name
- data StrictnessMark
- data HsImplBang
- data HsSrcBang = HsSrcBang SourceText SrcUnpackedness SrcStrictness
- type DataConEnv a = UniqFM DataCon a
- mkEqSpec :: TyVar -> Type -> EqSpec
- eqSpecTyVar :: EqSpec -> TyVar
- eqSpecType :: EqSpec -> Type
- eqSpecPair :: EqSpec -> (TyVar, Type)
- eqSpecPreds :: [EqSpec] -> ThetaType
- eqHsBang :: HsImplBang -> HsImplBang -> Bool
- isBanged :: HsImplBang -> Bool
- isSrcStrict :: SrcStrictness -> Bool
- isSrcUnpacked :: SrcUnpackedness -> Bool
- isMarkedStrict :: StrictnessMark -> Bool
- cbvFromStrictMark :: StrictnessMark -> CbvMark
- mkDataCon :: Name -> Bool -> TyConRepName -> [HsSrcBang] -> [FieldLabel] -> [TyVar] -> [TyCoVar] -> ConcreteTyVars -> [InvisTVBinder] -> [EqSpec] -> KnotTied ThetaType -> [KnotTied (Scaled Type)] -> KnotTied Type -> PromDataConInfo -> KnotTied TyCon -> ConTag -> ThetaType -> Id -> DataConRep -> DataCon
- dataConTag :: DataCon -> ConTag
- dataConTagZ :: DataCon -> ConTagZ
- dataConOrigTyCon :: DataCon -> TyCon
- dataConRepType :: DataCon -> Type
- dataConIsInfix :: DataCon -> Bool
- dataConUnivTyVars :: DataCon -> [TyVar]
- dataConUnivAndExTyCoVars :: DataCon -> [TyCoVar]
- dataConConcreteTyVars :: DataCon -> ConcreteTyVars
- dataConTheta :: DataCon -> ThetaType
- dataConWrapId_maybe :: DataCon -> Maybe Id
- dataConImplicitTyThings :: DataCon -> [TyThing]
- dataConFieldType :: DataCon -> FieldLabelString -> Type
- dataConFieldType_maybe :: DataCon -> FieldLabelString -> Maybe (FieldLabel, Type)
- dataConSrcBangs :: DataCon -> [HsSrcBang]
- dataConRepArity :: DataCon -> Arity
- isNullarySrcDataCon :: DataCon -> Bool
- isNullaryRepDataCon :: DataCon -> Bool
- dataConRepStrictness :: DataCon -> [StrictnessMark]
- dataConImplBangs :: DataCon -> [HsImplBang]
- dataConBoxer :: DataCon -> Maybe DataConBoxer
- dataConInstSig :: DataCon -> [Type] -> ([TyCoVar], ThetaType, [Type])
- dataConOrigResTy :: DataCon -> Type
- dataConWrapperType :: DataCon -> Type
- dataConNonlinearType :: DataCon -> Type
- dataConDisplayType :: Bool -> DataCon -> Type
- dataConInstArgTys :: DataCon -> [Type] -> [Scaled Type]
- dataConInstUnivs :: DataCon -> [Type] -> [Type]
- dataConOrigArgTys :: DataCon -> [Scaled Type]
- dataConOtherTheta :: DataCon -> ThetaType
- dataConRepArgTys :: DataCon -> [Scaled Type]
- dataConIdentity :: DataCon -> ByteString
- isTupleDataCon :: DataCon -> Bool
- isBoxedTupleDataCon :: DataCon -> Bool
- isUnboxedTupleDataCon :: DataCon -> Bool
- isVanillaDataCon :: DataCon -> Bool
- isNewDataCon :: DataCon -> Bool
- isCovertGadtDataCon :: DataCon -> Bool
- specialPromotedDc :: DataCon -> Bool
- classDataCon :: Class -> DataCon
- dataConCannotMatch :: [Type] -> DataCon -> Bool
- dataConResRepTyArgs :: DataCon -> [Type]
- checkDataConTyVars :: DataCon -> Bool
- dataConUserTyVarsNeedWrapper :: DataCon -> Bool
- splitDataProductType_maybe :: Type -> Maybe (TyCon, [Type], DataCon, [Scaled Type])
- data FamInstMatch = FamInstMatch {}
- data InjectivityCheckResult
- data FamInstEnv
- type FamInstEnvs = (FamInstEnv, FamInstEnv)
- data FamFlavor
- data FamInst = FamInst {}
- famInstAxiom :: FamInst -> CoAxiom Unbranched
- famInstRHS :: FamInst -> Type
- famInstTyCon :: FamInst -> TyCon
- famInstsRepTyCons :: [FamInst] -> [TyCon]
- famInstRepTyCon_maybe :: FamInst -> Maybe TyCon
- dataFamInstRepTyCon :: FamInst -> TyCon
- orphNamesOfFamInst :: FamInst -> NameSet
- pprFamInsts :: [FamInst] -> SDoc
- mkLocalFamInst :: FamFlavor -> CoAxiom Unbranched -> [TyVar] -> [CoVar] -> [Type] -> Type -> FamInst
- mkImportedFamInst :: Name -> [RoughMatchTc] -> CoAxiom Unbranched -> IsOrphan -> FamInst
- famInstEnvSize :: FamInstEnv -> Int
- emptyFamInstEnvs :: (FamInstEnv, FamInstEnv)
- emptyFamInstEnv :: FamInstEnv
- famInstEnvElts :: FamInstEnv -> [FamInst]
- familyInstances :: (FamInstEnv, FamInstEnv) -> TyCon -> [FamInst]
- familyNameInstances :: (FamInstEnv, FamInstEnv) -> Name -> [FamInst]
- unionFamInstEnv :: FamInstEnv -> FamInstEnv -> FamInstEnv
- extendFamInstEnvList :: FamInstEnv -> [FamInst] -> FamInstEnv
- extendFamInstEnv :: FamInstEnv -> FamInst -> FamInstEnv
- compatibleBranches :: CoAxBranch -> CoAxBranch -> Bool
- injectiveBranches :: [Bool] -> CoAxBranch -> CoAxBranch -> InjectivityCheckResult
- mkCoAxBranch :: [TyVar] -> [TyVar] -> [CoVar] -> [Type] -> Type -> [Role] -> SrcSpan -> CoAxBranch
- mkBranchedCoAxiom :: Name -> TyCon -> [CoAxBranch] -> CoAxiom Branched
- mkUnbranchedCoAxiom :: Name -> TyCon -> CoAxBranch -> CoAxiom Unbranched
- mkSingleCoAxiom :: Role -> Name -> [TyVar] -> [TyVar] -> [CoVar] -> TyCon -> [Type] -> Type -> CoAxiom Unbranched
- mkNewTypeCoAxiom :: Name -> TyCon -> [TyVar] -> [Role] -> Type -> CoAxiom Unbranched
- lookupFamInstEnvByTyCon :: FamInstEnvs -> TyCon -> [FamInst]
- lookupFamInstEnv :: FamInstEnvs -> TyCon -> [Type] -> [FamInstMatch]
- lookupFamInstEnvConflicts :: FamInstEnvs -> FamInst -> [FamInst]
- lookupFamInstEnvInjectivityConflicts :: [Bool] -> FamInstEnvs -> FamInst -> [CoAxBranch]
- isDominatedBy :: CoAxBranch -> [CoAxBranch] -> Bool
- reduceTyFamApp_maybe :: FamInstEnvs -> Role -> TyCon -> [Type] -> Maybe Reduction
- apartnessCheck :: [Type] -> CoAxBranch -> Bool
- topNormaliseType :: FamInstEnvs -> Type -> Type
- topNormaliseType_maybe :: FamInstEnvs -> Type -> Maybe Reduction
- topReduceTyFamApp_maybe :: FamInstEnvs -> TyCon -> [Type] -> Maybe HetReduction
- normaliseType :: FamInstEnvs -> Role -> Type -> Reduction
- normaliseTcApp :: FamInstEnvs -> Role -> TyCon -> [Type] -> Reduction
- module GHC.Core.InstEnv
- module GHC.Types.Unique.FM
- module GHC.Core.PatSyn
- module GHC.Core.Predicate
- module GHC.Core.TyCon
- module GHC.Core.TyCo.Ppr
- module GHC.Core.Type
- module GHC.Core.Unify
- module GHC.Core.Utils
- module GHC.HsToCore.Docs
- module GHC.HsToCore.Expr
- module GHC.HsToCore.Monad
- module GHC.Iface.Syntax
- module GHC.Iface.Recomp
- data DerivStrategy pass
- = StockStrategy (XStockStrategy pass)
- | AnyclassStrategy (XAnyClassStrategy pass)
- | NewtypeStrategy (XNewtypeStrategy pass)
- | ViaStrategy (XViaStrategy pass)
- data InjectivityAnn pass
- = InjectivityAnn (XCInjectivityAnn pass) (LIdP pass) [LIdP pass]
- | XInjectivityAnn !(XXInjectivityAnn pass)
- data RuleBndr pass
- = RuleBndr (XCRuleBndr pass) (LIdP pass)
- | RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass)
- | XRuleBndr !(XXRuleBndr pass)
- data WarnDecl pass
- = Warning (XWarning pass) [LIdP pass] (WarningTxt pass)
- | XWarnDecl !(XXWarnDecl pass)
- data AnnDecl pass
- = HsAnnotation (XHsAnnotation pass) (AnnProvenance pass) (XRec pass (HsExpr pass))
- | XAnnDecl !(XXAnnDecl pass)
- data ForeignExport pass
- = CExport (XCExport pass) (XRec pass CExportSpec)
- | XForeignExport !(XXForeignExport pass)
- data ForeignImport pass
- = CImport (XCImport pass) (XRec pass CCallConv) (XRec pass Safety) (Maybe Header) CImportSpec
- | XForeignImport !(XXForeignImport pass)
- data SpliceDecl p
- = SpliceDecl (XSpliceDecl p) (XRec p (HsUntypedSplice p)) SpliceDecoration
- | XSpliceDecl !(XXSpliceDecl p)
- data StandaloneKindSig pass
- = StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass)
- | XStandaloneKindSig !(XXStandaloneKindSig pass)
- data CImportSpec
- data WarnDecls pass
- = Warnings {
- wd_ext :: XWarnings pass
- wd_warnings :: [LWarnDecl pass]
- | XWarnDecls !(XXWarnDecls pass)
- = Warnings {
- data RoleAnnotDecl pass
- = RoleAnnotDecl (XCRoleAnnotDecl pass) (LIdP pass) [XRec pass (Maybe Role)]
- | XRoleAnnotDecl !(XXRoleAnnotDecl pass)
- type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass)
- data AnnProvenance pass
- = ValueAnnProvenance (LIdP pass)
- | TypeAnnProvenance (LIdP pass)
- | ModuleAnnProvenance
- type LAnnDecl pass = XRec pass (AnnDecl pass)
- type LWarnDecl pass = XRec pass (WarnDecl pass)
- type LWarnDecls pass = XRec pass (WarnDecls pass)
- data DocDecl pass
- = DocCommentNext (LHsDoc pass)
- | DocCommentPrev (LHsDoc pass)
- | DocCommentNamed String (LHsDoc pass)
- | DocGroup Int (LHsDoc pass)
- type LDocDecl pass = XRec pass (DocDecl pass)
- type LRuleBndr pass = XRec pass (RuleBndr pass)
- data RuleDecl pass
- type LRuleDecl pass = XRec pass (RuleDecl pass)
- data RuleDecls pass
- = HsRules {
- rds_ext :: XCRuleDecls pass
- rds_rules :: [LRuleDecl pass]
- | XRuleDecls !(XXRuleDecls pass)
- = HsRules {
- type LRuleDecls pass = XRec pass (RuleDecls pass)
- data ForeignDecl pass
- = ForeignImport {
- fd_i_ext :: XForeignImport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fi :: ForeignImport pass
- | ForeignExport {
- fd_e_ext :: XForeignExport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fe :: ForeignExport pass
- | XForeignDecl !(XXForeignDecl pass)
- = ForeignImport {
- type LForeignDecl pass = XRec pass (ForeignDecl pass)
- data DefaultDecl pass
- = DefaultDecl (XCDefaultDecl pass) [LHsType pass]
- | XDefaultDecl !(XXDefaultDecl pass)
- type LDefaultDecl pass = XRec pass (DefaultDecl pass)
- type LDerivStrategy pass = XRec pass (DerivStrategy pass)
- data DerivDecl pass
- = DerivDecl {
- deriv_ext :: XCDerivDecl pass
- deriv_type :: LHsSigWcType pass
- deriv_strategy :: Maybe (LDerivStrategy pass)
- deriv_overlap_mode :: Maybe (XRec pass OverlapMode)
- | XDerivDecl !(XXDerivDecl pass)
- = DerivDecl {
- type LDerivDecl pass = XRec pass (DerivDecl pass)
- data InstDecl pass
- = ClsInstD {
- cid_d_ext :: XClsInstD pass
- cid_inst :: ClsInstDecl pass
- | DataFamInstD {
- dfid_ext :: XDataFamInstD pass
- dfid_inst :: DataFamInstDecl pass
- | TyFamInstD {
- tfid_ext :: XTyFamInstD pass
- tfid_inst :: TyFamInstDecl pass
- | XInstDecl !(XXInstDecl pass)
- = ClsInstD {
- type LInstDecl pass = XRec pass (InstDecl pass)
- data ClsInstDecl pass
- = ClsInstDecl {
- cid_ext :: XCClsInstDecl pass
- cid_poly_ty :: LHsSigType pass
- cid_binds :: LHsBinds pass
- cid_sigs :: [LSig pass]
- cid_tyfam_insts :: [LTyFamInstDecl pass]
- cid_datafam_insts :: [LDataFamInstDecl pass]
- cid_overlap_mode :: Maybe (XRec pass OverlapMode)
- | XClsInstDecl !(XXClsInstDecl pass)
- = ClsInstDecl {
- type LClsInstDecl pass = XRec pass (ClsInstDecl pass)
- data FamEqn pass rhs
- = FamEqn {
- feqn_ext :: XCFamEqn pass rhs
- feqn_tycon :: LIdP pass
- feqn_bndrs :: HsOuterFamEqnTyVarBndrs pass
- feqn_pats :: HsFamEqnPats pass
- feqn_fixity :: LexicalFixity
- feqn_rhs :: rhs
- | XFamEqn !(XXFamEqn pass rhs)
- = FamEqn {
- newtype DataFamInstDecl pass = DataFamInstDecl {
- dfid_eqn :: FamEqn pass (HsDataDefn pass)
- type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass)
- data TyFamInstDecl pass
- = TyFamInstDecl {
- tfid_xtn :: XCTyFamInstDecl pass
- tfid_eqn :: TyFamInstEqn pass
- | XTyFamInstDecl !(XXTyFamInstDecl pass)
- = TyFamInstDecl {
- type LTyFamInstDecl pass = XRec pass (TyFamInstDecl pass)
- type LTyFamDefltDecl pass = XRec pass (TyFamDefltDecl pass)
- type TyFamDefltDecl = TyFamInstDecl
- type TyFamInstEqn pass = FamEqn pass (LHsType pass)
- type HsFamEqnPats pass = [LHsTypeArg pass]
- type LTyFamInstEqn pass = XRec pass (TyFamInstEqn pass)
- data HsConDeclGADTDetails pass
- = PrefixConGADT !(XPrefixConGADT pass) [HsScaled pass (LBangType pass)]
- | RecConGADT !(XRecConGADT pass) (XRec pass [LConDeclField pass])
- | XConDeclGADTDetails !(XXConDeclGADTDetails pass)
- type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass])
- data ConDecl pass
- = ConDeclGADT {
- con_g_ext :: XConDeclGADT pass
- con_names :: NonEmpty (LIdP pass)
- con_bndrs :: XRec pass (HsOuterSigTyVarBndrs pass)
- con_mb_cxt :: Maybe (LHsContext pass)
- con_g_args :: HsConDeclGADTDetails pass
- con_res_ty :: LHsType pass
- con_doc :: Maybe (LHsDoc pass)
- | ConDeclH98 {
- con_ext :: XConDeclH98 pass
- con_name :: LIdP pass
- con_forall :: Bool
- con_ex_tvs :: [LHsTyVarBndr Specificity pass]
- con_mb_cxt :: Maybe (LHsContext pass)
- con_args :: HsConDeclH98Details pass
- con_doc :: Maybe (LHsDoc pass)
- | XConDecl !(XXConDecl pass)
- = ConDeclGADT {
- type LConDecl pass = XRec pass (ConDecl pass)
- data NewOrData
- type LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass)
- data DerivClauseTys pass
- = DctSingle (XDctSingle pass) (LHsSigType pass)
- | DctMulti (XDctMulti pass) [LHsSigType pass]
- | XDerivClauseTys !(XXDerivClauseTys pass)
- type LDerivClauseTys pass = XRec pass (DerivClauseTys pass)
- data HsDerivingClause pass
- = HsDerivingClause {
- deriv_clause_ext :: XCHsDerivingClause pass
- deriv_clause_strategy :: Maybe (LDerivStrategy pass)
- deriv_clause_tys :: LDerivClauseTys pass
- | XHsDerivingClause !(XXHsDerivingClause pass)
- = HsDerivingClause {
- type LHsDerivingClause pass = XRec pass (HsDerivingClause pass)
- type HsDeriving pass = [LHsDerivingClause pass]
- data HsDataDefn pass
- = HsDataDefn {
- dd_ext :: XCHsDataDefn pass
- dd_ctxt :: Maybe (LHsContext pass)
- dd_cType :: Maybe (XRec pass CType)
- dd_kindSig :: Maybe (LHsKind pass)
- dd_cons :: DataDefnCons (LConDecl pass)
- dd_derivs :: HsDeriving pass
- | XHsDataDefn !(XXHsDataDefn pass)
- = HsDataDefn {
- data FamilyInfo pass
- = DataFamily
- | OpenTypeFamily
- | ClosedTypeFamily (Maybe [LTyFamInstEqn pass])
- type LInjectivityAnn pass = XRec pass (InjectivityAnn pass)
- data FamilyDecl pass
- = FamilyDecl {
- fdExt :: XCFamilyDecl pass
- fdInfo :: FamilyInfo pass
- fdTopLevel :: TopLevelFlag
- fdLName :: LIdP pass
- fdTyVars :: LHsQTyVars pass
- fdFixity :: LexicalFixity
- fdResultSig :: LFamilyResultSig pass
- fdInjectivityAnn :: Maybe (LInjectivityAnn pass)
- | XFamilyDecl !(XXFamilyDecl pass)
- = FamilyDecl {
- type LFamilyDecl pass = XRec pass (FamilyDecl pass)
- data FamilyResultSig pass
- = NoSig (XNoSig pass)
- | KindSig (XCKindSig pass) (LHsKind pass)
- | TyVarSig (XTyVarSig pass) (LHsTyVarBndr () pass)
- | XFamilyResultSig !(XXFamilyResultSig pass)
- type LFamilyResultSig pass = XRec pass (FamilyResultSig pass)
- data TyClGroup pass
- = TyClGroup {
- group_ext :: XCTyClGroup pass
- group_tyclds :: [LTyClDecl pass]
- group_roles :: [LRoleAnnotDecl pass]
- group_kisigs :: [LStandaloneKindSig pass]
- group_instds :: [LInstDecl pass]
- | XTyClGroup !(XXTyClGroup pass)
- = TyClGroup {
- type LHsFunDep pass = XRec pass (FunDep pass)
- pattern XFunDep :: !(XXFunDep pass) -> FunDep pass
- data TyClDecl pass
- = FamDecl {
- tcdFExt :: XFamDecl pass
- tcdFam :: FamilyDecl pass
- | SynDecl {
- tcdSExt :: XSynDecl pass
- tcdLName :: LIdP pass
- tcdTyVars :: LHsQTyVars pass
- tcdFixity :: LexicalFixity
- tcdRhs :: LHsType pass
- | DataDecl {
- tcdDExt :: XDataDecl pass
- tcdLName :: LIdP pass
- tcdTyVars :: LHsQTyVars pass
- tcdFixity :: LexicalFixity
- tcdDataDefn :: HsDataDefn pass
- | ClassDecl {
- tcdCExt :: XClassDecl pass
- tcdCtxt :: Maybe (LHsContext pass)
- tcdLName :: LIdP pass
- tcdTyVars :: LHsQTyVars pass
- tcdFixity :: LexicalFixity
- tcdFDs :: [LHsFunDep pass]
- tcdSigs :: [LSig pass]
- tcdMeths :: LHsBinds pass
- tcdATs :: [LFamilyDecl pass]
- tcdATDefs :: [LTyFamDefltDecl pass]
- tcdDocs :: [LDocDecl pass]
- | XTyClDecl !(XXTyClDecl pass)
- = FamDecl {
- type LTyClDecl pass = XRec pass (TyClDecl pass)
- data SpliceDecoration
- type LSpliceDecl pass = XRec pass (SpliceDecl pass)
- data HsGroup p
- = HsGroup {
- hs_ext :: XCHsGroup p
- hs_valds :: HsValBinds p
- hs_splcds :: [LSpliceDecl p]
- hs_tyclds :: [TyClGroup p]
- hs_derivds :: [LDerivDecl p]
- hs_fixds :: [LFixitySig p]
- hs_defds :: [LDefaultDecl p]
- hs_fords :: [LForeignDecl p]
- hs_warnds :: [LWarnDecls p]
- hs_annds :: [LAnnDecl p]
- hs_ruleds :: [LRuleDecls p]
- hs_docs :: [LDocDecl p]
- | XHsGroup !(XXHsGroup p)
- = HsGroup {
- data HsDecl p
- = TyClD (XTyClD p) (TyClDecl p)
- | InstD (XInstD p) (InstDecl p)
- | DerivD (XDerivD p) (DerivDecl p)
- | ValD (XValD p) (HsBind p)
- | SigD (XSigD p) (Sig p)
- | KindSigD (XKindSigD p) (StandaloneKindSig p)
- | DefD (XDefD p) (DefaultDecl p)
- | ForD (XForD p) (ForeignDecl p)
- | WarningD (XWarningD p) (WarnDecls p)
- | AnnD (XAnnD p) (AnnDecl p)
- | RuleD (XRuleD p) (RuleDecls p)
- | SpliceD (XSpliceD p) (SpliceDecl p)
- | DocD (XDocD p) (DocDecl p)
- | RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p)
- | XHsDecl !(XXHsDecl p)
- type LHsDecl p = XRec p (HsDecl p)
- hsGroupInstDecls :: HsGroup id -> [LInstDecl id]
- isDataDecl :: TyClDecl pass -> Bool
- isSynDecl :: TyClDecl pass -> Bool
- isClassDecl :: TyClDecl pass -> Bool
- isFamilyDecl :: TyClDecl pass -> Bool
- isTypeFamilyDecl :: TyClDecl pass -> Bool
- isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool
- isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool
- isDataFamilyDecl :: TyClDecl pass -> Bool
- tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass
- tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass]
- tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass]
- tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass]
- tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass]
- collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass]
- docDeclDoc :: DocDecl pass -> LHsDoc pass
- annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p)
- data HsRuleAnn = HsRuleAnn {}
- data HsRuleRn = HsRuleRn NameSet NameSet
- data XViaStrategyPs = XViaStrategyPs [AddEpAnn] (LHsSigType GhcPs)
- data DataDeclRn = DataDeclRn {
- tcdDataCusk :: Bool
- tcdFVs :: NameSet
- partitionBindsAndSigs :: [LHsDecl GhcPs] -> (LHsBinds GhcPs, [LSig GhcPs], [LFamilyDecl GhcPs], [LTyFamInstDecl GhcPs], [LDataFamInstDecl GhcPs], [LDocDecl GhcPs])
- emptyRdrGroup :: forall (p :: Pass). HsGroup (GhcPass p)
- emptyRnGroup :: forall (p :: Pass). HsGroup (GhcPass p)
- hsGroupTopLevelFixitySigs :: forall (p :: Pass). HsGroup (GhcPass p) -> [LFixitySig (GhcPass p)]
- appendGroups :: forall (p :: Pass). HsGroup (GhcPass p) -> HsGroup (GhcPass p) -> HsGroup (GhcPass p)
- tyFamInstDeclName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyFamInstDecl (GhcPass p) -> IdP (GhcPass p)
- tyFamInstDeclLName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyFamInstDecl (GhcPass p) -> LocatedN (IdP (GhcPass p))
- tyClDeclLName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyClDecl (GhcPass p) -> LocatedN (IdP (GhcPass p))
- countTyClDecls :: [TyClDecl pass] -> (Int, Int, Int, Int, Int)
- tcdName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyClDecl (GhcPass p) -> IdP (GhcPass p)
- hsDeclHasCusk :: TyClDecl GhcRn -> Bool
- pp_vanilla_decl_head :: forall (p :: Pass). OutputableBndrId p => XRec (GhcPass p) (IdP (GhcPass p)) -> LHsQTyVars (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc
- pprTyClDeclFlavour :: forall (p :: Pass). TyClDecl (GhcPass p) -> SDoc
- familyDeclLName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> XRec (GhcPass p) (IdP (GhcPass p))
- familyDeclName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> IdP (GhcPass p)
- famResultKindSignature :: forall (p :: Pass). FamilyResultSig (GhcPass p) -> Maybe (LHsKind (GhcPass p))
- resultVariableName :: forall (a :: Pass). FamilyResultSig (GhcPass a) -> Maybe (IdP (GhcPass a))
- derivStrategyName :: DerivStrategy a -> SDoc
- standaloneKindSigName :: forall (p :: Pass). StandaloneKindSig (GhcPass p) -> IdP (GhcPass p)
- getConNames :: ConDecl GhcRn -> [LocatedN Name]
- getRecConArgs_maybe :: ConDecl GhcRn -> Maybe (LocatedL [LConDeclField GhcRn])
- hsConDeclTheta :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> [LHsType (GhcPass p)]
- ppDataDefnHeader :: forall (p :: Pass). OutputableBndrId p => (Maybe (LHsContext (GhcPass p)) -> SDoc) -> HsDataDefn (GhcPass p) -> SDoc
- pprTyFamInstDecl :: forall (p :: Pass). OutputableBndrId p => TopLevelFlag -> TyFamInstDecl (GhcPass p) -> SDoc
- pprDataFamInstFlavour :: forall (p :: Pass). DataFamInstDecl (GhcPass p) -> SDoc
- pprHsFamInstLHS :: forall (p :: Pass). OutputableBndrId p => IdP (GhcPass p) -> HsOuterFamEqnTyVarBndrs (GhcPass p) -> HsFamEqnPats (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc
- instDeclDataFamInsts :: forall (p :: Pass). [LInstDecl (GhcPass p)] -> [DataFamInstDecl (GhcPass p)]
- newOrDataToFlavour :: NewOrData -> TyConFlavour tc
- anyLConIsGadt :: Foldable f => f (GenLocated l (ConDecl pass)) -> Bool
- foldDerivStrategy :: forall p (pass :: Pass) r. p ~ GhcPass pass => r -> (XViaStrategy p -> r) -> DerivStrategy p -> r
- mapDerivStrategy :: forall p (pass :: Pass). p ~ GhcPass pass => (XViaStrategy p -> XViaStrategy p) -> DerivStrategy p -> DerivStrategy p
- flattenRuleDecls :: forall (p :: Pass). [LRuleDecls (GhcPass p)] -> [LRuleDecl (GhcPass p)]
- pprFullRuleName :: SourceText -> GenLocated a RuleName -> SDoc
- roleAnnotDeclName :: forall (p :: Pass). RoleAnnotDecl (GhcPass p) -> IdP (GhcPass p)
- module GHC.Hs.Expr
- module GHC.Hs.Doc
- module GHC.Hs.Extension
- module GHC.Hs.ImpExp
- module GHC.Hs.Pat
- module GHC.Hs.Type
- mkHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- mkHsAppKindTy :: forall (p :: Pass). XAppKindTy (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- data ImplicitFieldBinders = ImplicitFieldBinders {}
- data LConsWithFields (p :: Pass) = LConsWithFields {}
- data TyDeclBinders (p :: Pass) = TyDeclBinders {
- tyDeclMainBinder :: !(LocatedA (IdP (GhcPass p)), TyConFlavour ())
- tyDeclATs :: ![(LocatedA (IdP (GhcPass p)), TyConFlavour ())]
- tyDeclOpSigs :: ![LocatedA (IdP (GhcPass p))]
- tyDeclConsWithFields :: !(LConsWithFields p)
- class UnXRec p => CollectPass p where
- collectXXPat :: CollectFlag p -> XXPat p -> [IdP p] -> [IdP p]
- collectXXHsBindsLR :: XXHsBindsLR p pR -> [IdP p] -> [IdP p]
- collectXSplicePat :: CollectFlag p -> XSplicePat p -> [IdP p] -> [IdP p]
- data CollectFlag p where
- CollNoDictBinders :: forall p. CollectFlag p
- CollWithDictBinders :: CollectFlag (GhcPass 'Typechecked)
- CollVarTyVarBinders :: CollectFlag (GhcPass 'Renamed)
- mkHsPar :: forall (p :: Pass). IsPass p => LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- mkSimpleMatch :: forall (p :: Pass) body. (Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA, Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ EpAnn NoEpAnns) => HsMatchContext (LIdP (NoGhcTc (GhcPass p))) -> [LPat (GhcPass p)] -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p)))
- unguardedGRHSs :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ EpAnn NoEpAnns => SrcSpan -> LocatedA (body (GhcPass p)) -> EpAnn GrhsAnn -> GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))
- unguardedRHS :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ EpAnn NoEpAnns => EpAnn GrhsAnn -> SrcSpan -> LocatedA (body (GhcPass p)) -> [LGRHS (GhcPass p) (LocatedA (body (GhcPass p)))]
- mkMatchGroup :: forall (p :: Pass) body. AnnoBody p body => Origin -> LocatedL [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] -> MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))
- mkLamCaseMatchGroup :: forall (p :: Pass) body. AnnoBody p body => Origin -> HsLamVariant -> LocatedL [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] -> MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))
- mkLocatedList :: (Semigroup a, NoAnn an) => [GenLocated (EpAnn a) e2] -> LocatedAn an [GenLocated (EpAnn a) e2]
- mkHsApp :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkHsAppWith :: forall (id :: Pass). (LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> HsExpr (GhcPass id) -> LHsExpr (GhcPass id)) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkHsApps :: forall (id :: Pass). LHsExpr (GhcPass id) -> [LHsExpr (GhcPass id)] -> LHsExpr (GhcPass id)
- mkHsAppsWith :: forall (id :: Pass). (LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> HsExpr (GhcPass id) -> LHsExpr (GhcPass id)) -> LHsExpr (GhcPass id) -> [LHsExpr (GhcPass id)] -> LHsExpr (GhcPass id)
- mkHsAppType :: LHsExpr GhcRn -> LHsWcType GhcRn -> LHsExpr GhcRn
- mkHsAppTypes :: LHsExpr GhcRn -> [LHsWcType GhcRn] -> LHsExpr GhcRn
- mkHsLam :: forall (p :: Pass). (IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ Origin) => [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- mkHsLams :: [TyVar] -> [EvVar] -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkHsSyntaxApps :: SrcSpanAnnA -> SyntaxExprTc -> [LHsExpr GhcTc] -> LHsExpr GhcTc
- mkHsCaseAlt :: forall (p :: Pass) body. (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ EpAnn NoEpAnns, Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA) => LPat (GhcPass p) -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p)))
- nlHsTyApp :: Id -> [Type] -> LHsExpr GhcTc
- nlHsTyApps :: Id -> [Type] -> [LHsExpr GhcTc] -> LHsExpr GhcTc
- mkLHsPar :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkParPat :: forall (p :: Pass). IsPass p => LPat (GhcPass p) -> LPat (GhcPass p)
- nlParPat :: forall (p :: Pass). IsPass p => LPat (GhcPass p) -> LPat (GhcPass p)
- mkRecStmt :: forall (idL :: Pass) bodyR. Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL => AnnList -> LocatedL [LStmtLR (GhcPass idL) GhcPs bodyR] -> StmtLR (GhcPass idL) GhcPs bodyR
- mkHsIntegral :: IntegralLit -> HsOverLit GhcPs
- mkHsFractional :: FractionalLit -> HsOverLit GhcPs
- mkHsIsString :: SourceText -> FastString -> HsOverLit GhcPs
- mkHsDo :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> HsExpr GhcPs
- mkHsDoAnns :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> AnnList -> HsExpr GhcPs
- mkHsComp :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> HsExpr GhcPs
- mkHsCompAnns :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> AnnList -> HsExpr GhcPs
- mkHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> AnnsIf -> HsExpr GhcPs
- mkHsCmdIf :: LHsExpr GhcPs -> LHsCmd GhcPs -> LHsCmd GhcPs -> AnnsIf -> HsCmd GhcPs
- mkNPat :: LocatedAn NoEpAnns (HsOverLit GhcPs) -> Maybe (SyntaxExpr GhcPs) -> [AddEpAnn] -> Pat GhcPs
- mkNPlusKPat :: LocatedN RdrName -> LocatedAn NoEpAnns (HsOverLit GhcPs) -> EpaLocation -> Pat GhcPs
- emptyTransStmt :: [AddEpAnn] -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- mkTransformStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- mkTransformByStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- mkGroupUsingStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- mkGroupByUsingStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- mkLastStmt :: forall (idR :: Pass) bodyR (idL :: Pass). IsPass idR => LocatedA (bodyR (GhcPass idR)) -> StmtLR (GhcPass idL) (GhcPass idR) (LocatedA (bodyR (GhcPass idR)))
- mkBodyStmt :: forall bodyR (idL :: Pass). LocatedA (bodyR GhcPs) -> StmtLR (GhcPass idL) GhcPs (LocatedA (bodyR GhcPs))
- mkPsBindStmt :: [AddEpAnn] -> LPat GhcPs -> LocatedA (bodyR GhcPs) -> StmtLR GhcPs GhcPs (LocatedA (bodyR GhcPs))
- mkRnBindStmt :: LPat GhcRn -> LocatedA (bodyR GhcRn) -> StmtLR GhcRn GhcRn (LocatedA (bodyR GhcRn))
- mkTcBindStmt :: LPat GhcTc -> LocatedA (bodyR GhcTc) -> StmtLR GhcTc GhcTc (LocatedA (bodyR GhcTc))
- unitRecStmtTc :: RecStmtTc
- emptyRecStmt :: forall (idL :: Pass) bodyR. Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL => StmtLR (GhcPass idL) GhcPs bodyR
- emptyRecStmtName :: Anno [GenLocated (Anno (StmtLR GhcRn GhcRn bodyR)) (StmtLR GhcRn GhcRn bodyR)] ~ SrcSpanAnnL => StmtLR GhcRn GhcRn bodyR
- emptyRecStmtId :: Stmt GhcTc (LocatedA (HsCmd GhcTc))
- mkLetStmt :: [AddEpAnn] -> HsLocalBinds GhcPs -> StmtLR GhcPs GhcPs (LocatedA b)
- mkHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> HsExpr GhcPs
- mkHsString :: forall (p :: Pass). String -> HsLit (GhcPass p)
- mkHsStringFS :: forall (p :: Pass). FastString -> HsLit (GhcPass p)
- mkHsStringPrimLit :: forall (p :: Pass). FastString -> HsLit (GhcPass p)
- mkHsCharPrimLit :: forall (p :: Pass). Char -> HsLit (GhcPass p)
- mkConLikeTc :: ConLike -> HsExpr GhcTc
- nlHsVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LHsExpr (GhcPass p)
- nl_HsVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> HsExpr (GhcPass p)
- nlHsDataCon :: DataCon -> LHsExpr GhcTc
- nlHsLit :: forall (p :: Pass). HsLit (GhcPass p) -> LHsExpr (GhcPass p)
- nlHsIntLit :: forall (p :: Pass). Integer -> LHsExpr (GhcPass p)
- nlVarPat :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LPat (GhcPass p)
- nlLitPat :: HsLit GhcPs -> LPat GhcPs
- nlHsApp :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- nlHsSyntaxApps :: SyntaxExprTc -> [LHsExpr GhcTc] -> LHsExpr GhcTc
- nlHsApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [LHsExpr (GhcPass p)] -> LHsExpr (GhcPass p)
- nlHsVarApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [IdP (GhcPass p)] -> LHsExpr (GhcPass p)
- nlConVarPat :: RdrName -> [RdrName] -> LPat GhcPs
- nlConVarPatName :: Name -> [Name] -> LPat GhcRn
- nlInfixConPat :: RdrName -> LPat GhcPs -> LPat GhcPs -> LPat GhcPs
- nlConPat :: RdrName -> [LPat GhcPs] -> LPat GhcPs
- nlConPatName :: Name -> [LPat GhcRn] -> LPat GhcRn
- nlNullaryConPat :: RdrName -> LPat GhcPs
- nlWildConPat :: DataCon -> LPat GhcPs
- nlWildPat :: LPat GhcPs
- nlWildPatName :: LPat GhcRn
- nlHsDo :: HsDoFlavour -> [LStmt GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs
- nlHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs
- nlHsLam :: LMatch GhcPs (LHsExpr GhcPs) -> LHsExpr GhcPs
- nlHsPar :: forall (p :: Pass). IsPass p => LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- nlHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs
- nlHsCase :: LHsExpr GhcPs -> [LMatch GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs
- nlList :: [LHsExpr GhcPs] -> LHsExpr GhcPs
- nlHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- nlHsTyVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> IdP (GhcPass p) -> LHsType (GhcPass p)
- nlHsFunTy :: forall (p :: Pass). IsPass p => LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- nlHsParTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p)
- nlHsTyConApp :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> LexicalFixity -> IdP (GhcPass p) -> [LHsTypeArg (GhcPass p)] -> LHsType (GhcPass p)
- nlHsAppKindTy :: forall (p :: Pass). IsPass p => LHsType (GhcPass p) -> LHsKind (GhcPass p) -> LHsType (GhcPass p)
- mkLHsTupleExpr :: forall (p :: Pass). [LHsExpr (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p)
- mkLHsVarTuple :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p)
- nlTuplePat :: [LPat GhcPs] -> Boxity -> LPat GhcPs
- missingTupArg :: EpAnn Bool -> HsTupArg GhcPs
- mkBigLHsVarTup :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p)
- mkBigLHsTup :: forall (id :: Pass). [LHsExpr (GhcPass id)] -> XExplicitTuple (GhcPass id) -> LHsExpr (GhcPass id)
- mkBigLHsVarPatTup :: [IdP GhcRn] -> LPat GhcRn
- mkBigLHsPatTup :: [LPat GhcRn] -> LPat GhcRn
- hsTypeToHsSigType :: LHsType GhcPs -> LHsSigType GhcPs
- hsTypeToHsSigWcType :: LHsType GhcPs -> LHsSigWcType GhcPs
- mkHsSigEnv :: (LSig GhcRn -> Maybe ([LocatedN Name], a)) -> [LSig GhcRn] -> NameEnv a
- mkClassOpSigs :: [LSig GhcPs] -> [LSig GhcPs]
- mkLHsWrap :: HsWrapper -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkHsWrap :: HsWrapper -> HsExpr GhcTc -> HsExpr GhcTc
- mkHsWrapCo :: TcCoercionN -> HsExpr GhcTc -> HsExpr GhcTc
- mkHsWrapCoR :: TcCoercionR -> HsExpr GhcTc -> HsExpr GhcTc
- mkLHsWrapCo :: TcCoercionN -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkHsCmdWrap :: HsWrapper -> HsCmd GhcTc -> HsCmd GhcTc
- mkLHsCmdWrap :: HsWrapper -> LHsCmd GhcTc -> LHsCmd GhcTc
- mkHsWrapPat :: HsWrapper -> Pat GhcTc -> Type -> Pat GhcTc
- mkLHsWrapPat :: HsWrapper -> LPat GhcTc -> Type -> LPat GhcTc
- mkHsWrapPatCo :: TcCoercionN -> Pat GhcTc -> Type -> Pat GhcTc
- mkHsDictLet :: TcEvBinds -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkFunBind :: Origin -> LocatedN RdrName -> [LMatch GhcPs (LHsExpr GhcPs)] -> HsBind GhcPs
- mkTopFunBind :: Origin -> LocatedN Name -> [LMatch GhcRn (LHsExpr GhcRn)] -> HsBind GhcRn
- mkHsVarBind :: SrcSpan -> RdrName -> LHsExpr GhcPs -> LHsBind GhcPs
- mkVarBind :: IdP GhcTc -> LHsExpr GhcTc -> LHsBind GhcTc
- mkPatSynBind :: LocatedN RdrName -> HsPatSynDetails GhcPs -> LPat GhcPs -> HsPatSynDir GhcPs -> [AddEpAnn] -> HsBind GhcPs
- isInfixFunBind :: forall id1 id2. UnXRec id2 => HsBindLR id1 id2 -> Bool
- spanHsLocaLBinds :: forall (p :: Pass). HsLocalBinds (GhcPass p) -> SrcSpan
- mkSimpleGeneratedFunBind :: SrcSpan -> RdrName -> [LPat GhcPs] -> LHsExpr GhcPs -> LHsBind GhcPs
- mkPrefixFunRhs :: fn -> HsMatchContext fn
- mkMatch :: forall (p :: Pass). IsPass p => HsMatchContext (LIdP (NoGhcTc (GhcPass p))) -> [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> HsLocalBinds (GhcPass p) -> LMatch (GhcPass p) (LHsExpr (GhcPass p))
- isUnliftedHsBind :: HsBind GhcTc -> Bool
- isUnliftedHsBinds :: LHsBinds GhcTc -> Bool
- isBangedHsBind :: HsBind GhcTc -> Bool
- collectLocalBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)]
- collectHsIdBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)]
- collectHsValBinders :: forall (idL :: Pass) idR. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) idR -> [IdP (GhcPass idL)]
- collectHsBindBinders :: CollectPass p => CollectFlag p -> HsBindLR p idR -> [IdP p]
- collectHsBindListBinders :: CollectPass p => CollectFlag p -> [LHsBindLR p idR] -> [IdP p]
- collectMethodBinders :: UnXRec idL => LHsBindsLR idL idR -> [LIdP idL]
- collectLStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [LStmtLR (GhcPass idL) (GhcPass idR) body] -> [IdP (GhcPass idL)]
- collectStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [StmtLR (GhcPass idL) (GhcPass idR) body] -> [IdP (GhcPass idL)]
- collectLStmtBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> LStmtLR (GhcPass idL) (GhcPass idR) body -> [IdP (GhcPass idL)]
- collectStmtBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> StmtLR (GhcPass idL) (GhcPass idR) body -> [IdP (GhcPass idL)]
- collectPatBinders :: CollectPass p => CollectFlag p -> LPat p -> [IdP p]
- collectPatsBinders :: CollectPass p => CollectFlag p -> [LPat p] -> [IdP p]
- hsGroupBinders :: HsGroup GhcRn -> [Name]
- hsTyClForeignBinders :: [TyClGroup GhcRn] -> [LForeignDecl GhcRn] -> [Name]
- hsLTyClDeclBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => LocatedA (TyClDecl (GhcPass p)) -> TyDeclBinders p
- hsForeignDeclsBinders :: forall (p :: Pass) a. (UnXRec (GhcPass p), IsSrcSpanAnn p a) => [LForeignDecl (GhcPass p)] -> [LIdP (GhcPass p)]
- hsPatSynSelectors :: forall (p :: Pass). IsPass p => HsValBinds (GhcPass p) -> [FieldOcc (GhcPass p)]
- getPatSynBinds :: UnXRec id => [(RecFlag, LHsBinds id)] -> [PatSynBind id id]
- hsDataFamInstBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => DataFamInstDecl (GhcPass p) -> LConsWithFields p
- lStmtsImplicits :: forall (idR :: Pass) (body :: Type -> Type). [LStmtLR GhcRn (GhcPass idR) (LocatedA (body (GhcPass idR)))] -> [(SrcSpan, [ImplicitFieldBinders])]
- hsValBindsImplicits :: forall (idR :: Pass). HsValBindsLR GhcRn (GhcPass idR) -> [(SrcSpan, [ImplicitFieldBinders])]
- lPatImplicits :: LPat GhcRn -> [(SrcSpan, [ImplicitFieldBinders])]
- lHsRecFieldsImplicits :: [LHsRecField GhcRn (LPat GhcRn)] -> RecFieldsDotDot -> [ImplicitFieldBinders]
- data DerivStrategy pass
- = StockStrategy (XStockStrategy pass)
- | AnyclassStrategy (XAnyClassStrategy pass)
- | NewtypeStrategy (XNewtypeStrategy pass)
- | ViaStrategy (XViaStrategy pass)
- data InjectivityAnn pass
- = InjectivityAnn (XCInjectivityAnn pass) (LIdP pass) [LIdP pass]
- | XInjectivityAnn !(XXInjectivityAnn pass)
- data RuleBndr pass
- = RuleBndr (XCRuleBndr pass) (LIdP pass)
- | RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass)
- | XRuleBndr !(XXRuleBndr pass)
- type BangType pass = HsType pass
- type Stmt id body = StmtLR id id body
- data Match p body
- data Pat p
- = WildPat (XWildPat p)
- | VarPat (XVarPat p) (LIdP p)
- | LazyPat (XLazyPat p) (LPat p)
- | AsPat (XAsPat p) (LIdP p) (LPat p)
- | ParPat (XParPat p) (LPat p)
- | BangPat (XBangPat p) (LPat p)
- | ListPat (XListPat p) [LPat p]
- | TuplePat (XTuplePat p) [LPat p] Boxity
- | SumPat (XSumPat p) (LPat p) ConTag SumWidth
- | ConPat {
- pat_con_ext :: XConPat p
- pat_con :: XRec p (ConLikeP p)
- pat_args :: HsConPatDetails p
- | ViewPat (XViewPat p) (LHsExpr p) (LPat p)
- | SplicePat (XSplicePat p) (HsUntypedSplice p)
- | LitPat (XLitPat p) (HsLit p)
- | NPat (XNPat p) (XRec p (HsOverLit p)) (Maybe (SyntaxExpr p)) (SyntaxExpr p)
- | NPlusKPat (XNPlusKPat p) (LIdP p) (XRec p (HsOverLit p)) (HsOverLit p) (SyntaxExpr p) (SyntaxExpr p)
- | SigPat (XSigPat p) (LPat p) (HsPatSigType (NoGhcTc p))
- | EmbTyPat (XEmbTyPat p) (HsTyPat (NoGhcTc p))
- | InvisPat (XInvisPat p) (HsTyPat (NoGhcTc p))
- | XPat !(XXPat p)
- data NewOrData
- data WarnDecl pass
- = Warning (XWarning pass) [LIdP pass] (WarningTxt pass)
- | XWarnDecl !(XXWarnDecl pass)
- data AnnDecl pass
- = HsAnnotation (XHsAnnotation pass) (AnnProvenance pass) (XRec pass (HsExpr pass))
- | XAnnDecl !(XXAnnDecl pass)
- data IE pass
- = IEVar (XIEVar pass) (LIEWrappedName pass) (Maybe (ExportDoc pass))
- | IEThingAbs (XIEThingAbs pass) (LIEWrappedName pass) (Maybe (ExportDoc pass))
- | IEThingAll (XIEThingAll pass) (LIEWrappedName pass) (Maybe (ExportDoc pass))
- | IEThingWith (XIEThingWith pass) (LIEWrappedName pass) IEWildcard [LIEWrappedName pass] (Maybe (ExportDoc pass))
- | IEModuleContents (XIEModuleContents pass) (XRec pass ModuleName)
- | IEGroup (XIEGroup pass) Int (LHsDoc pass)
- | IEDoc (XIEDoc pass) (LHsDoc pass)
- | IEDocNamed (XIEDocNamed pass) String
- | XIE !(XXIE pass)
- data HsExpr p
- = HsVar (XVar p) (LIdP p)
- | HsUnboundVar (XUnboundVar p) RdrName
- | HsRecSel (XRecSel p) (FieldOcc p)
- | HsOverLabel (XOverLabel p) SourceText FastString
- | HsIPVar (XIPVar p) HsIPName
- | HsOverLit (XOverLitE p) (HsOverLit p)
- | HsLit (XLitE p) (HsLit p)
- | HsLam (XLam p) HsLamVariant (MatchGroup p (LHsExpr p))
- | HsApp (XApp p) (LHsExpr p) (LHsExpr p)
- | HsAppType (XAppTypeE p) (LHsExpr p) (LHsWcType (NoGhcTc p))
- | OpApp (XOpApp p) (LHsExpr p) (LHsExpr p) (LHsExpr p)
- | NegApp (XNegApp p) (LHsExpr p) (SyntaxExpr p)
- | HsPar (XPar p) (LHsExpr p)
- | SectionL (XSectionL p) (LHsExpr p) (LHsExpr p)
- | SectionR (XSectionR p) (LHsExpr p) (LHsExpr p)
- | ExplicitTuple (XExplicitTuple p) [HsTupArg p] Boxity
- | ExplicitSum (XExplicitSum p) ConTag SumWidth (LHsExpr p)
- | HsCase (XCase p) (LHsExpr p) (MatchGroup p (LHsExpr p))
- | HsIf (XIf p) (LHsExpr p) (LHsExpr p) (LHsExpr p)
- | HsMultiIf (XMultiIf p) [LGRHS p (LHsExpr p)]
- | HsLet (XLet p) (HsLocalBinds p) (LHsExpr p)
- | HsDo (XDo p) HsDoFlavour (XRec p [ExprLStmt p])
- | ExplicitList (XExplicitList p) [LHsExpr p]
- | RecordCon {
- rcon_ext :: XRecordCon p
- rcon_con :: XRec p (ConLikeP p)
- rcon_flds :: HsRecordBinds p
- | RecordUpd {
- rupd_ext :: XRecordUpd p
- rupd_expr :: LHsExpr p
- rupd_flds :: LHsRecUpdFields p
- | HsGetField { }
- | HsProjection {
- proj_ext :: XProjection p
- proj_flds :: NonEmpty (XRec p (DotFieldOcc p))
- | ExprWithTySig (XExprWithTySig p) (LHsExpr p) (LHsSigWcType (NoGhcTc p))
- | ArithSeq (XArithSeq p) (Maybe (SyntaxExpr p)) (ArithSeqInfo p)
- | HsTypedBracket (XTypedBracket p) (LHsExpr p)
- | HsUntypedBracket (XUntypedBracket p) (HsQuote p)
- | HsTypedSplice (XTypedSplice p) (LHsExpr p)
- | HsUntypedSplice (XUntypedSplice p) (HsUntypedSplice p)
- | HsProc (XProc p) (LPat p) (LHsCmdTop p)
- | HsStatic (XStatic p) (LHsExpr p)
- | HsPragE (XPragE p) (HsPragE p) (LHsExpr p)
- | HsEmbTy (XEmbTy p) (LHsWcType (NoGhcTc p))
- | XExpr !(XXExpr p)
- data NoExtField = NoExtField
- type family NoGhcTc p
- type family XXIEWrappedName p
- type family XIEType p
- type family XIEPattern p
- type family XIEName p
- type family XXIE x
- type family XIEDocNamed x
- type family XIEDoc x
- type family XIEGroup x
- type family XIEModuleContents x
- type family XIEThingWith x
- type family XIEThingAll x
- type family XIEThingAbs x
- type family XIEVar x
- type family ImportDeclPkgQual x
- type family XXImportDecl x
- type family XCImportDecl x
- type family XXFieldOcc x
- type family XCFieldOcc x
- type family XXConDeclField x
- type family XConDeclField x
- data ConDeclField pass
- = ConDeclField {
- cd_fld_ext :: XConDeclField pass
- cd_fld_names :: [LFieldOcc pass]
- cd_fld_type :: LBangType pass
- cd_fld_doc :: Maybe (LHsDoc pass)
- | XConDeclField !(XXConDeclField pass)
- = ConDeclField {
- type family XXTyVarBndr x
- type family XKindedTyVar x
- type family XUserTyVar x
- type family XXHsForAllTelescope x
- type family XHsForAllInvis x
- type family XHsForAllVis x
- type family XXTyLit x
- type family XCharTy x
- type family XStrTy x
- type family XNumTy x
- type family XXType x
- type family XWildCardTy x
- type family XTyLit x
- data HsTyLit pass
- type family XExplicitTupleTy x
- type family XExplicitListTy x
- type family XRecTy x
- type family XBangTy x
- type family XDocTy x
- type family XSpliceTy x
- type family XKindSig x
- type family XStarTy x
- type family XIParamTy x
- type family XParTy x
- type family XOpTy x
- type family XSumTy x
- type family XTupleTy x
- type family XListTy x
- type family XFunTy x
- type family XAppKindTy x
- type family XAppTy x
- type family XTyVar x
- type family XQualTy x
- type family XForAllTy x
- type family XXHsTyPat x
- type family XHsTP x
- type family XXHsPatSigType x
- type family XHsPS x
- type family XXHsWildCardBndrs x b
- type family XHsWC x b
- type family XXHsSigType x
- type family XHsSig x
- type family XXHsOuterTyVarBndrs x
- type family XHsOuterExplicit x flag
- type family XHsOuterImplicit x
- type family XXLHsQTyVars x
- type family XHsQTvs x
- type family XHsFieldBind x
- type family XXPat x
- type family XCoPat x
- type family XInvisPat x
- type family XEmbTyPat x
- type family XSigPat x
- type family XNPlusKPat x
- type family XNPat x
- type family XLitPat x
- type family XSplicePat x
- type family XViewPat x
- type family XConPat x
- type family XSumPat x
- type family XTuplePat x
- type family XListPat x
- type family XBangPat x
- type family XParPat x
- type family XAsPat x
- type family XLazyPat x
- type family XVarPat x
- type family XWildPat x
- type family XXOverLit x
- type family XOverLit x
- data HsOverLit p
- type family XXLit x
- type family XHsDoublePrim x
- type family XHsFloatPrim x
- type family XHsRat x
- type family XHsInteger x
- type family XHsWord64Prim x
- type family XHsWord32Prim x
- type family XHsWord16Prim x
- type family XHsWord8Prim x
- type family XHsInt64Prim x
- type family XHsInt32Prim x
- type family XHsInt16Prim x
- type family XHsInt8Prim x
- type family XHsWordPrim x
- type family XHsIntPrim x
- type family XHsInt x
- type family XHsStringPrim x
- type family XHsString x
- type family XHsCharPrim x
- type family XHsChar x
- type family XXApplicativeArg x
- type family XApplicativeArgMany x
- type family XApplicativeArgOne x
- type family XXParStmtBlock x x'
- type family XParStmtBlock x x'
- data ParStmtBlock idL idR
- = ParStmtBlock (XParStmtBlock idL idR) [ExprLStmt idL] [IdP idR] (SyntaxExpr idR)
- | XParStmtBlock !(XXParStmtBlock idL idR)
- type family XXCmd x
- type family XCmdWrap x
- type family XCmdDo x
- type family XCmdLet x
- type family XCmdIf x
- type family XCmdLamCase x
- type family XCmdCase x
- type family XCmdPar x
- type family XCmdLam x
- type family XCmdApp x
- type family XCmdArrForm x
- type family XCmdArrApp x
- type family XXStmtLR x x' b
- type family XRecStmt x x' b
- type family XTransStmt x x' b
- type family XParStmt x x' b
- type family XLetStmt x x' b
- type family XBodyStmt x x' b
- type family XApplicativeStmt x x' b
- type family XBindStmt x x' b
- type family XLastStmt x x' b
- type family XXGRHS x b
- type family XCGRHS x b
- type family XXGRHSs x b
- type family XCGRHSs x b
- type family XXMatch x b
- type family XCMatch x b
- type family XXMatchGroup x b
- type family XMG x b
- type family XXCmdTop x
- type family XCmdTop x
- data HsCmdTop p
- type family XXQuote x
- type family XVarBr x
- type family XTypBr x
- type family XDecBrG x
- type family XDecBrL x
- type family XPatBr x
- type family XExpBr x
- type family XXUntypedSplice x
- type family XQuasiQuote x
- type family XUntypedSpliceExpr x
- type family XXTupArg x
- type family XMissing x
- type family XPresent x
- type family XXAmbiguousFieldOcc x
- type family XAmbiguous x
- type family XUnambiguous x
- type family XXPragE x
- type family XSCC x
- type family XXDotFieldOcc x
- type family XCDotFieldOcc x
- type family XXExpr x
- type family XEmbTy x
- type family XPragE x
- type family XBinTick x
- type family XTick x
- type family XStatic x
- type family XProc x
- type family XUntypedSplice x
- data HsUntypedSplice id
- = HsUntypedSpliceExpr (XUntypedSpliceExpr id) (LHsExpr id)
- | HsQuasiQuote (XQuasiQuote id) (IdP id) (XRec id FastString)
- | XUntypedSplice !(XXUntypedSplice id)
- type family XTypedSplice x
- type family XUntypedBracket x
- type family XTypedBracket x
- type family XArithSeq x
- type family XExprWithTySig x
- type family XProjection x
- type family XGetField x
- type family XLHsOLRecUpdLabels x
- type family XLHsRecUpdLabels x
- type family XRecordUpd x
- type family XRecordCon x
- type family XExplicitList x
- type family XDo x
- type family XLet x
- type family XMultiIf x
- type family XIf x
- type family XCase x
- type family XExplicitSum x
- type family XExplicitTuple x
- type family XSectionR x
- type family XSectionL x
- type family XPar x
- type family XNegApp x
- type family XOpApp x
- type family XAppTypeE x
- type family XApp x
- type family XLamCase x
- type family XLam x
- type family XLitE x
- type family XOverLitE x
- type family XIPVar x
- type family XOverLabel x
- type family XRecSel x
- type family XUnboundVar x
- type family XVar x
- type family XXModule x
- type family XCModule x
- type family XXInjectivityAnn x
- type family XCInjectivityAnn x
- type family XXRoleAnnotDecl x
- type family XCRoleAnnotDecl x
- type family XXAnnDecl x
- type family XHsAnnotation x
- type family XXWarnDecl x
- type family XWarning x
- type family XXWarnDecls x
- type family XWarnings x
- type family XXRuleBndr x
- type family XRuleBndrSig x
- type family XCRuleBndr x
- type family XXRuleDecl x
- type family XHsRule x
- type family XXRuleDecls x
- type family XCRuleDecls x
- type family XXForeignExport x
- type family XCExport x
- type family XXForeignImport x
- type family XCImport x
- type family XXForeignDecl x
- type family XForeignExport x
- data ForeignExport pass
- = CExport (XCExport pass) (XRec pass CExportSpec)
- | XForeignExport !(XXForeignExport pass)
- type family XForeignImport x
- data ForeignImport pass
- = CImport (XCImport pass) (XRec pass CCallConv) (XRec pass Safety) (Maybe Header) CImportSpec
- | XForeignImport !(XXForeignImport pass)
- type family XXDefaultDecl x
- type family XCDefaultDecl x
- type family XViaStrategy x
- type family XNewtypeStrategy x
- type family XAnyClassStrategy x
- type family XStockStrategy x
- type family XXDerivDecl x
- type family XCDerivDecl x
- type family XXInstDecl x
- type family XTyFamInstD x
- type family XDataFamInstD x
- type family XClsInstD x
- type family XXClsInstDecl x
- type family XCClsInstDecl x
- type family XXTyFamInstDecl x
- type family XCTyFamInstDecl x
- type family XXFamEqn x r
- type family XCFamEqn x r
- type family XXConDecl x
- type family XConDeclH98 x
- type family XConDeclGADT x
- type family XXDerivClauseTys x
- type family XDctMulti x
- type family XDctSingle x
- type family XXHsDerivingClause x
- type family XCHsDerivingClause x
- type family XXHsDataDefn x
- type family XCHsDataDefn x
- type family XXFamilyDecl x
- type family XCFamilyDecl x
- type family XXFamilyResultSig x
- type family XTyVarSig x
- type family XCKindSig x
- type family XNoSig x
- type family XXTyClGroup x
- type family XCTyClGroup x
- type family XXFunDep x
- type family XCFunDep x
- type family XXTyClDecl x
- type family XClassDecl x
- type family XDataDecl x
- type family XSynDecl x
- type family XFamDecl x
- type family XXSpliceDecl x
- type family XSpliceDecl x
- data SpliceDecl p
- = SpliceDecl (XSpliceDecl p) (XRec p (HsUntypedSplice p)) SpliceDecoration
- | XSpliceDecl !(XXSpliceDecl p)
- type family XXHsGroup x
- type family XCHsGroup x
- type family XXHsDecl x
- type family XRoleAnnotD x
- type family XDocD x
- type family XSpliceD x
- type family XRuleD x
- type family XAnnD x
- type family XWarningD x
- type family XForD x
- type family XDefD x
- type family XKindSigD x
- type family XSigD x
- type family XValD x
- type family XDerivD x
- type family XInstD x
- type family XTyClD x
- type family XXStandaloneKindSig x
- type family XStandaloneKindSig x
- data StandaloneKindSig pass
- = StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass)
- | XStandaloneKindSig !(XXStandaloneKindSig pass)
- type family XXFixitySig x
- type family XFixitySig x
- data FixitySig pass
- = FixitySig (XFixitySig pass) [LIdP pass] Fixity
- | XFixitySig !(XXFixitySig pass)
- type family XXSig x
- type family XCompleteMatchSig x
- type family XSCCFunSig x
- type family XMinimalSig x
- type family XSpecInstSig x
- type family XSpecSig x
- type family XInlineSig x
- type family XFixSig x
- type family XIdSig x
- type family XClassOpSig x
- type family XPatSynSig x
- type family XTypeSig x
- type family XXIPBind x
- type family XCIPBind x
- type family XXHsIPBinds x
- type family XIPBinds x
- type family XXPatSynBind x x'
- type family XPSB x x'
- type family XXHsBindsLR x x'
- type family XPatSynBind x x'
- data PatSynBind idL idR
- = PSB {
- psb_ext :: XPSB idL idR
- psb_id :: LIdP idL
- psb_args :: HsPatSynDetails idR
- psb_def :: LPat idR
- psb_dir :: HsPatSynDir idR
- | XPatSynBind !(XXPatSynBind idL idR)
- = PSB {
- type family XVarBind x x'
- type family XPatBind x x'
- type family XFunBind x x'
- type family XXValBindsLR x x'
- type family XValBinds x x'
- type family XXHsLocalBindsLR x x'
- type family XEmptyLocalBinds x x'
- type family XHsIPBinds x x'
- data HsIPBinds id
- = IPBinds (XIPBinds id) [LIPBind id]
- | XHsIPBinds !(XXHsIPBinds id)
- type family XHsValBinds x x'
- type LIdP p = XRec p (IdP p)
- type family IdP p
- class WrapXRec p a where
- class MapXRec p where
- class UnXRec p where
- type family Anno a = (b :: Type)
- type family XRec p a = (r :: Type) | r -> a
- data DataConCantHappen
- noExtField :: NoExtField
- dataConCantHappen :: DataConCantHappen -> a
- newtype ModuleName = ModuleName FastString
- stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering
- moduleNameFS :: ModuleName -> FastString
- moduleNameString :: ModuleName -> String
- mkModuleName :: String -> ModuleName
- mkModuleNameFS :: FastString -> ModuleName
- moduleNameSlashes :: ModuleName -> String
- moduleNameColons :: ModuleName -> String
- parseModuleName :: ReadP ModuleName
- data IsBootInterface
- type LPat p = XRec p (Pat p)
- data HsDoFlavour
- = DoExpr (Maybe ModuleName)
- | MDoExpr (Maybe ModuleName)
- | GhciStmtCtxt
- | ListComp
- | MonadComp
- type LHsExpr p = XRec p (HsExpr p)
- type family SyntaxExpr p
- data GRHSs p body
- = GRHSs {
- grhssExt :: XCGRHSs p body
- grhssGRHSs :: [LGRHS p body]
- grhssLocalBinds :: HsLocalBinds p
- | XGRHSs !(XXGRHSs p body)
- = GRHSs {
- data MatchGroup p body
- = MG { }
- | XMatchGroup !(XXMatchGroup p body)
- data PromotionFlag
- isPromoted :: PromotionFlag -> Bool
- data CImportSpec
- type LIEWrappedName p = XRec p (IEWrappedName p)
- data IEWrappedName p
- = IEName (XIEName p) (LIdP p)
- | IEPattern (XIEPattern p) (LIdP p)
- | IEType (XIEType p) (LIdP p)
- | XIEWrappedName !(XXIEWrappedName p)
- data IEWildcard
- type ExportDoc pass = LHsDoc pass
- type LIE pass = XRec pass (IE pass)
- data ImportListInterpretation
- data ImportDecl pass
- = ImportDecl {
- ideclExt :: XCImportDecl pass
- ideclName :: XRec pass ModuleName
- ideclPkgQual :: ImportDeclPkgQual pass
- ideclSource :: IsBootInterface
- ideclSafe :: Bool
- ideclQualified :: ImportDeclQualifiedStyle
- ideclAs :: Maybe (XRec pass ModuleName)
- ideclImportList :: Maybe (ImportListInterpretation, XRec pass [LIE pass])
- | XImportDecl !(XXImportDecl pass)
- = ImportDecl {
- data ImportDeclQualifiedStyle
- type LImportDecl pass = XRec pass (ImportDecl pass)
- data WarnDecls pass
- = Warnings {
- wd_ext :: XWarnings pass
- wd_warnings :: [LWarnDecl pass]
- | XWarnDecls !(XXWarnDecls pass)
- = Warnings {
- data OverLitVal
- data HsLit x
- = HsChar (XHsChar x) Char
- | HsCharPrim (XHsCharPrim x) Char
- | HsString (XHsString x) FastString
- | HsStringPrim (XHsStringPrim x) !ByteString
- | HsInt (XHsInt x) IntegralLit
- | HsIntPrim (XHsIntPrim x) Integer
- | HsWordPrim (XHsWordPrim x) Integer
- | HsInt8Prim (XHsInt8Prim x) Integer
- | HsInt16Prim (XHsInt16Prim x) Integer
- | HsInt32Prim (XHsInt32Prim x) Integer
- | HsInt64Prim (XHsInt64Prim x) Integer
- | HsWord8Prim (XHsWord8Prim x) Integer
- | HsWord16Prim (XHsWord16Prim x) Integer
- | HsWord32Prim (XHsWord32Prim x) Integer
- | HsWord64Prim (XHsWord64Prim x) Integer
- | HsInteger (XHsInteger x) Integer Type
- | HsRat (XHsRat x) FractionalLit Type
- | HsFloatPrim (XHsFloatPrim x) FractionalLit
- | HsDoublePrim (XHsDoublePrim x) FractionalLit
- | XLit !(XXLit x)
- negateOverLitVal :: OverLitVal -> OverLitVal
- data HsSrcBang = HsSrcBang SourceText SrcUnpackedness SrcStrictness
- data AmbiguousFieldOcc pass
- = Unambiguous (XUnambiguous pass) (XRec pass RdrName)
- | Ambiguous (XAmbiguous pass) (XRec pass RdrName)
- | XAmbiguousFieldOcc !(XXAmbiguousFieldOcc pass)
- type LAmbiguousFieldOcc pass = XRec pass (AmbiguousFieldOcc pass)
- data FieldOcc pass
- = FieldOcc {
- foExt :: XCFieldOcc pass
- foLabel :: XRec pass RdrName
- | XFieldOcc !(XXFieldOcc pass)
- = FieldOcc {
- type LFieldOcc pass = XRec pass (FieldOcc pass)
- type LHsTypeArg p = HsArg p (LHsType p) (LHsKind p)
- type family XXArg p
- type family XArgPar p
- type family XTypeArg p
- type family XValArg p
- data HsArg p tm ty
- data HsConDetails tyarg arg rec
- type LConDeclField pass = XRec pass (ConDeclField pass)
- data HsTupleSort
- data HsScaled pass a = HsScaled (HsArrow pass) a
- type family XXArrow p
- type family XExplicitMult p
- type family XLinearArrow p
- type family XUnrestrictedArrow p
- data HsArrow pass
- = HsUnrestrictedArrow !(XUnrestrictedArrow pass)
- | HsLinearArrow !(XLinearArrow pass)
- | HsExplicitMult !(XExplicitMult pass) !(LHsType pass)
- | XArrow !(XXArrow pass)
- data HsType pass
- = HsForAllTy {
- hst_xforall :: XForAllTy pass
- hst_tele :: HsForAllTelescope pass
- hst_body :: LHsType pass
- | HsQualTy { }
- | HsTyVar (XTyVar pass) PromotionFlag (LIdP pass)
- | HsAppTy (XAppTy pass) (LHsType pass) (LHsType pass)
- | HsAppKindTy (XAppKindTy pass) (LHsType pass) (LHsKind pass)
- | HsFunTy (XFunTy pass) (HsArrow pass) (LHsType pass) (LHsType pass)
- | HsListTy (XListTy pass) (LHsType pass)
- | HsTupleTy (XTupleTy pass) HsTupleSort [LHsType pass]
- | HsSumTy (XSumTy pass) [LHsType pass]
- | HsOpTy (XOpTy pass) PromotionFlag (LHsType pass) (LIdP pass) (LHsType pass)
- | HsParTy (XParTy pass) (LHsType pass)
- | HsIParamTy (XIParamTy pass) (XRec pass HsIPName) (LHsType pass)
- | HsStarTy (XStarTy pass) Bool
- | HsKindSig (XKindSig pass) (LHsType pass) (LHsKind pass)
- | HsSpliceTy (XSpliceTy pass) (HsUntypedSplice pass)
- | HsDocTy (XDocTy pass) (LHsType pass) (LHsDoc pass)
- | HsBangTy (XBangTy pass) HsSrcBang (LHsType pass)
- | HsRecTy (XRecTy pass) [LConDeclField pass]
- | HsExplicitListTy (XExplicitListTy pass) PromotionFlag [LHsType pass]
- | HsExplicitTupleTy (XExplicitTupleTy pass) [LHsType pass]
- | HsTyLit (XTyLit pass) (HsTyLit pass)
- | HsWildCardTy (XWildCardTy pass)
- | XHsType !(XXType pass)
- = HsForAllTy {
- type family XXBndrVis p
- data HsBndrVis pass
- = HsBndrRequired !(XBndrRequired pass)
- | HsBndrInvisible !(XBndrInvisible pass)
- | XXBndrVis !(XXBndrVis pass)
- type family XBndrInvisible p
- type family XBndrRequired p
- data HsTyVarBndr flag pass
- = UserTyVar (XUserTyVar pass) flag (LIdP pass)
- | KindedTyVar (XKindedTyVar pass) flag (LIdP pass) (LHsKind pass)
- | XTyVarBndr !(XXTyVarBndr pass)
- newtype HsIPName = HsIPName FastString
- data HsSigType pass
- = HsSig { }
- | XHsSigType !(XXHsSigType pass)
- type LHsTyPat pass = XRec pass (HsTyPat pass)
- data HsTyPat pass
- type LHsSigWcType pass = HsWildCardBndrs pass (LHsSigType pass)
- type LHsWcType pass = HsWildCardBndrs pass (LHsType pass)
- type LHsSigType pass = XRec pass (HsSigType pass)
- data HsPatSigType pass
- = HsPS { }
- | XHsPatSigType !(XXHsPatSigType pass)
- data HsWildCardBndrs pass thing
- = HsWC { }
- | XHsWildCardBndrs !(XXHsWildCardBndrs pass thing)
- type HsOuterFamEqnTyVarBndrs = HsOuterTyVarBndrs ()
- type HsOuterSigTyVarBndrs = HsOuterTyVarBndrs Specificity
- data HsOuterTyVarBndrs flag pass
- = HsOuterImplicit {
- hso_ximplicit :: XHsOuterImplicit pass
- | HsOuterExplicit {
- hso_xexplicit :: XHsOuterExplicit pass flag
- hso_bndrs :: [LHsTyVarBndr flag (NoGhcTc pass)]
- | XHsOuterTyVarBndrs !(XXHsOuterTyVarBndrs pass)
- = HsOuterImplicit {
- data LHsQTyVars pass
- = HsQTvs {
- hsq_ext :: XHsQTvs pass
- hsq_explicit :: [LHsTyVarBndr (HsBndrVis pass) pass]
- | XLHsQTyVars !(XXLHsQTyVars pass)
- = HsQTvs {
- type LHsTyVarBndr flag pass = XRec pass (HsTyVarBndr flag pass)
- data HsForAllTelescope pass
- = HsForAllVis {
- hsf_xvis :: XHsForAllVis pass
- hsf_vis_bndrs :: [LHsTyVarBndr () pass]
- | HsForAllInvis {
- hsf_xinvis :: XHsForAllInvis pass
- hsf_invis_bndrs :: [LHsTyVarBndr Specificity pass]
- | XHsForAllTelescope !(XXHsForAllTelescope pass)
- = HsForAllVis {
- type LHsKind pass = XRec pass (HsKind pass)
- type HsKind pass = HsType pass
- type LHsType pass = XRec pass (HsType pass)
- type HsContext pass = [LHsType pass]
- type LHsContext pass = XRec pass (HsContext pass)
- type LBangType pass = XRec pass (BangType pass)
- hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr (HsBndrVis pass) pass]
- hsPatSigType :: HsPatSigType pass -> LHsType pass
- mapHsOuterImplicit :: (XHsOuterImplicit pass -> XHsOuterImplicit pass) -> HsOuterTyVarBndrs flag pass -> HsOuterTyVarBndrs flag pass
- hsIPNameFS :: HsIPName -> FastString
- isHsBndrInvisible :: HsBndrVis pass -> Bool
- isHsKindedTyVar :: HsTyVarBndr flag pass -> Bool
- hsMult :: HsScaled pass a -> HsArrow pass
- hsScaledThing :: HsScaled pass a -> a
- noTypeArgs :: [Void]
- conDetailsArity :: (rec -> Arity) -> HsConDetails tyarg arg rec -> Arity
- data HsFieldBind lhs rhs = HsFieldBind {}
- type HsRecUpdField p q = HsFieldBind (LAmbiguousFieldOcc p) (LHsExpr q)
- type HsRecField p arg = HsFieldBind (LFieldOcc p) arg
- type LHsRecUpdField p q = XRec p (HsRecUpdField p q)
- type LHsRecField p arg = XRec p (HsRecField p arg)
- type LHsFieldBind p id arg = XRec p (HsFieldBind id arg)
- newtype RecFieldsDotDot = RecFieldsDotDot {}
- data HsRecFields p arg = HsRecFields {
- rec_flds :: [LHsRecField p arg]
- rec_dotdot :: Maybe (XRec p RecFieldsDotDot)
- type HsConPatDetails p = HsConDetails (HsConPatTyArg (NoGhcTc p)) (LPat p) (HsRecFields p (LPat p))
- type family XConPatTyArg p
- data HsConPatTyArg p = HsConPatTyArg !(XConPatTyArg p) (HsTyPat p)
- type family ConLikeP x
- isInvisArgPat :: Pat p -> Bool
- isVisArgPat :: Pat p -> Bool
- hsConPatArgs :: UnXRec p => HsConPatDetails p -> [LPat p]
- hsConPatTyArgs :: HsConPatDetails p -> [HsConPatTyArg (NoGhcTc p)]
- hsRecFields :: UnXRec p => HsRecFields p arg -> [XCFieldOcc p]
- hsRecFieldsArgs :: UnXRec p => HsRecFields p arg -> [arg]
- hsRecFieldSel :: UnXRec p => HsRecField p arg -> XCFieldOcc p
- data HsPatSynDir id
- data RecordPatSynField pass = RecordPatSynField {
- recordPatSynField :: FieldOcc pass
- recordPatSynPatVar :: LIdP pass
- type HsPatSynDetails pass = HsConDetails Void (LIdP pass) [RecordPatSynField pass]
- type LFixitySig pass = XRec pass (FixitySig pass)
- data Sig pass
- = TypeSig (XTypeSig pass) [LIdP pass] (LHsSigWcType pass)
- | PatSynSig (XPatSynSig pass) [LIdP pass] (LHsSigType pass)
- | ClassOpSig (XClassOpSig pass) Bool [LIdP pass] (LHsSigType pass)
- | FixSig (XFixSig pass) (FixitySig pass)
- | InlineSig (XInlineSig pass) (LIdP pass) InlinePragma
- | SpecSig (XSpecSig pass) (LIdP pass) [LHsSigType pass] InlinePragma
- | SpecInstSig (XSpecInstSig pass) (LHsSigType pass)
- | MinimalSig (XMinimalSig pass) (LBooleanFormula (LIdP pass))
- | SCCFunSig (XSCCFunSig pass) (LIdP pass) (Maybe (XRec pass StringLiteral))
- | CompleteMatchSig (XCompleteMatchSig pass) [LIdP pass] (Maybe (LIdP pass))
- | XSig !(XXSig pass)
- type LSig pass = XRec pass (Sig pass)
- data IPBind id
- type LIPBind id = XRec id (IPBind id)
- data HsLocalBindsLR idL idR
- = HsValBinds (XHsValBinds idL idR) (HsValBindsLR idL idR)
- | HsIPBinds (XHsIPBinds idL idR) (HsIPBinds idR)
- | EmptyLocalBinds (XEmptyLocalBinds idL idR)
- | XHsLocalBindsLR !(XXHsLocalBindsLR idL idR)
- type family XXMultAnn p
- type family XMultAnn p
- data HsMultAnn pass
- = HsNoMultAnn !(XNoMultAnn pass)
- | HsPct1Ann !(XPct1Ann pass)
- | HsMultAnn !(XMultAnn pass) (LHsType (NoGhcTc pass))
- | XMultAnn !(XXMultAnn pass)
- type family XPct1Ann p
- type family XNoMultAnn p
- data HsBindLR idL idR
- = FunBind {
- fun_ext :: XFunBind idL idR
- fun_id :: LIdP idL
- fun_matches :: MatchGroup idR (LHsExpr idR)
- | PatBind { }
- | VarBind { }
- | PatSynBind (XPatSynBind idL idR) (PatSynBind idL idR)
- | XHsBindsLR !(XXHsBindsLR idL idR)
- = FunBind {
- type LHsBindLR idL idR = XRec idL (HsBindLR idL idR)
- type LHsBindsLR idL idR = Bag (LHsBindLR idL idR)
- type HsBind id = HsBindLR id id
- type LHsBinds id = LHsBindsLR id id
- type LHsBind id = LHsBindLR id id
- data HsValBindsLR idL idR
- = ValBinds (XValBinds idL idR) (LHsBindsLR idL idR) [LSig idR]
- | XValBindsLR !(XXValBindsLR idL idR)
- type HsValBinds id = HsValBindsLR id id
- type LHsLocalBindsLR idL idR = XRec idL (HsLocalBindsLR idL idR)
- type LHsLocalBinds id = XRec id (HsLocalBinds id)
- type HsLocalBinds id = HsLocalBindsLR id id
- isFixityLSig :: UnXRec p => LSig p -> Bool
- isTypeLSig :: UnXRec p => LSig p -> Bool
- isSpecLSig :: UnXRec p => LSig p -> Bool
- isSpecInstLSig :: UnXRec p => LSig p -> Bool
- isPragLSig :: UnXRec p => LSig p -> Bool
- isInlineLSig :: UnXRec p => LSig p -> Bool
- isMinimalLSig :: UnXRec p => LSig p -> Bool
- isSCCFunSig :: UnXRec p => LSig p -> Bool
- isCompleteMatchSig :: UnXRec p => LSig p -> Bool
- data RoleAnnotDecl pass
- = RoleAnnotDecl (XCRoleAnnotDecl pass) (LIdP pass) [XRec pass (Maybe Role)]
- | XRoleAnnotDecl !(XXRoleAnnotDecl pass)
- type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass)
- data AnnProvenance pass
- = ValueAnnProvenance (LIdP pass)
- | TypeAnnProvenance (LIdP pass)
- | ModuleAnnProvenance
- type LAnnDecl pass = XRec pass (AnnDecl pass)
- type LWarnDecl pass = XRec pass (WarnDecl pass)
- type LWarnDecls pass = XRec pass (WarnDecls pass)
- data DocDecl pass
- = DocCommentNext (LHsDoc pass)
- | DocCommentPrev (LHsDoc pass)
- | DocCommentNamed String (LHsDoc pass)
- | DocGroup Int (LHsDoc pass)
- type LDocDecl pass = XRec pass (DocDecl pass)
- type LRuleBndr pass = XRec pass (RuleBndr pass)
- data RuleDecl pass
- type LRuleDecl pass = XRec pass (RuleDecl pass)
- data RuleDecls pass
- = HsRules {
- rds_ext :: XCRuleDecls pass
- rds_rules :: [LRuleDecl pass]
- | XRuleDecls !(XXRuleDecls pass)
- = HsRules {
- type LRuleDecls pass = XRec pass (RuleDecls pass)
- data ForeignDecl pass
- = ForeignImport {
- fd_i_ext :: XForeignImport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fi :: ForeignImport pass
- | ForeignExport {
- fd_e_ext :: XForeignExport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fe :: ForeignExport pass
- | XForeignDecl !(XXForeignDecl pass)
- = ForeignImport {
- type LForeignDecl pass = XRec pass (ForeignDecl pass)
- data DefaultDecl pass
- = DefaultDecl (XCDefaultDecl pass) [LHsType pass]
- | XDefaultDecl !(XXDefaultDecl pass)
- type LDefaultDecl pass = XRec pass (DefaultDecl pass)
- type LDerivStrategy pass = XRec pass (DerivStrategy pass)
- data DerivDecl pass
- = DerivDecl {
- deriv_ext :: XCDerivDecl pass
- deriv_type :: LHsSigWcType pass
- deriv_strategy :: Maybe (LDerivStrategy pass)
- deriv_overlap_mode :: Maybe (XRec pass OverlapMode)
- | XDerivDecl !(XXDerivDecl pass)
- = DerivDecl {
- type LDerivDecl pass = XRec pass (DerivDecl pass)
- data InstDecl pass
- = ClsInstD {
- cid_d_ext :: XClsInstD pass
- cid_inst :: ClsInstDecl pass
- | DataFamInstD {
- dfid_ext :: XDataFamInstD pass
- dfid_inst :: DataFamInstDecl pass
- | TyFamInstD {
- tfid_ext :: XTyFamInstD pass
- tfid_inst :: TyFamInstDecl pass
- | XInstDecl !(XXInstDecl pass)
- = ClsInstD {
- type LInstDecl pass = XRec pass (InstDecl pass)
- data ClsInstDecl pass
- = ClsInstDecl {
- cid_ext :: XCClsInstDecl pass
- cid_poly_ty :: LHsSigType pass
- cid_binds :: LHsBinds pass
- cid_sigs :: [LSig pass]
- cid_tyfam_insts :: [LTyFamInstDecl pass]
- cid_datafam_insts :: [LDataFamInstDecl pass]
- cid_overlap_mode :: Maybe (XRec pass OverlapMode)
- | XClsInstDecl !(XXClsInstDecl pass)
- = ClsInstDecl {
- type LClsInstDecl pass = XRec pass (ClsInstDecl pass)
- data FamEqn pass rhs
- = FamEqn {
- feqn_ext :: XCFamEqn pass rhs
- feqn_tycon :: LIdP pass
- feqn_bndrs :: HsOuterFamEqnTyVarBndrs pass
- feqn_pats :: HsFamEqnPats pass
- feqn_fixity :: LexicalFixity
- feqn_rhs :: rhs
- | XFamEqn !(XXFamEqn pass rhs)
- = FamEqn {
- newtype DataFamInstDecl pass = DataFamInstDecl {
- dfid_eqn :: FamEqn pass (HsDataDefn pass)
- type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass)
- data TyFamInstDecl pass
- = TyFamInstDecl {
- tfid_xtn :: XCTyFamInstDecl pass
- tfid_eqn :: TyFamInstEqn pass
- | XTyFamInstDecl !(XXTyFamInstDecl pass)
- = TyFamInstDecl {
- type LTyFamInstDecl pass = XRec pass (TyFamInstDecl pass)
- type LTyFamDefltDecl pass = XRec pass (TyFamDefltDecl pass)
- type TyFamDefltDecl = TyFamInstDecl
- type TyFamInstEqn pass = FamEqn pass (LHsType pass)
- type HsFamEqnPats pass = [LHsTypeArg pass]
- type LTyFamInstEqn pass = XRec pass (TyFamInstEqn pass)
- type family XXConDeclGADTDetails p
- type family XRecConGADT p
- type family XPrefixConGADT p
- data HsConDeclGADTDetails pass
- = PrefixConGADT !(XPrefixConGADT pass) [HsScaled pass (LBangType pass)]
- | RecConGADT !(XRecConGADT pass) (XRec pass [LConDeclField pass])
- | XConDeclGADTDetails !(XXConDeclGADTDetails pass)
- type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass])
- data ConDecl pass
- = ConDeclGADT {
- con_g_ext :: XConDeclGADT pass
- con_names :: NonEmpty (LIdP pass)
- con_bndrs :: XRec pass (HsOuterSigTyVarBndrs pass)
- con_mb_cxt :: Maybe (LHsContext pass)
- con_g_args :: HsConDeclGADTDetails pass
- con_res_ty :: LHsType pass
- con_doc :: Maybe (LHsDoc pass)
- | ConDeclH98 {
- con_ext :: XConDeclH98 pass
- con_name :: LIdP pass
- con_forall :: Bool
- con_ex_tvs :: [LHsTyVarBndr Specificity pass]
- con_mb_cxt :: Maybe (LHsContext pass)
- con_args :: HsConDeclH98Details pass
- con_doc :: Maybe (LHsDoc pass)
- | XConDecl !(XXConDecl pass)
- = ConDeclGADT {
- type LConDecl pass = XRec pass (ConDecl pass)
- data DataDefnCons a
- = NewTypeCon a
- | DataTypeCons Bool [a]
- type LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass)
- data DerivClauseTys pass
- = DctSingle (XDctSingle pass) (LHsSigType pass)
- | DctMulti (XDctMulti pass) [LHsSigType pass]
- | XDerivClauseTys !(XXDerivClauseTys pass)
- type LDerivClauseTys pass = XRec pass (DerivClauseTys pass)
- data HsDerivingClause pass
- = HsDerivingClause {
- deriv_clause_ext :: XCHsDerivingClause pass
- deriv_clause_strategy :: Maybe (LDerivStrategy pass)
- deriv_clause_tys :: LDerivClauseTys pass
- | XHsDerivingClause !(XXHsDerivingClause pass)
- = HsDerivingClause {
- type LHsDerivingClause pass = XRec pass (HsDerivingClause pass)
- type HsDeriving pass = [LHsDerivingClause pass]
- data HsDataDefn pass
- = HsDataDefn {
- dd_ext :: XCHsDataDefn pass
- dd_ctxt :: Maybe (LHsContext pass)
- dd_cType :: Maybe (XRec pass CType)
- dd_kindSig :: Maybe (LHsKind pass)
- dd_cons :: DataDefnCons (LConDecl pass)
- dd_derivs :: HsDeriving pass
- | XHsDataDefn !(XXHsDataDefn pass)
- = HsDataDefn {
- data FamilyInfo pass
- = DataFamily
- | OpenTypeFamily
- | ClosedTypeFamily (Maybe [LTyFamInstEqn pass])
- type LInjectivityAnn pass = XRec pass (InjectivityAnn pass)
- data FamilyDecl pass
- = FamilyDecl {
- fdExt :: XCFamilyDecl pass
- fdInfo :: FamilyInfo pass
- fdTopLevel :: TopLevelFlag
- fdLName :: LIdP pass
- fdTyVars :: LHsQTyVars pass
- fdFixity :: LexicalFixity
- fdResultSig :: LFamilyResultSig pass
- fdInjectivityAnn :: Maybe (LInjectivityAnn pass)
- | XFamilyDecl !(XXFamilyDecl pass)
- = FamilyDecl {
- type LFamilyDecl pass = XRec pass (FamilyDecl pass)
- data FamilyResultSig pass
- = NoSig (XNoSig pass)
- | KindSig (XCKindSig pass) (LHsKind pass)
- | TyVarSig (XTyVarSig pass) (LHsTyVarBndr () pass)
- | XFamilyResultSig !(XXFamilyResultSig pass)
- type LFamilyResultSig pass = XRec pass (FamilyResultSig pass)
- data TyClGroup pass
- = TyClGroup {
- group_ext :: XCTyClGroup pass
- group_tyclds :: [LTyClDecl pass]
- group_roles :: [LRoleAnnotDecl pass]
- group_kisigs :: [LStandaloneKindSig pass]
- group_instds :: [LInstDecl pass]
- | XTyClGroup !(XXTyClGroup pass)
- = TyClGroup {
- type LHsFunDep pass = XRec pass (FunDep pass)
- pattern XFunDep :: !(XXFunDep pass) -> FunDep pass
- data TyClDecl pass
- = FamDecl {
- tcdFExt :: XFamDecl pass
- tcdFam :: FamilyDecl pass
- | SynDecl {
- tcdSExt :: XSynDecl pass
- tcdLName :: LIdP pass
- tcdTyVars :: LHsQTyVars pass
- tcdFixity :: LexicalFixity
- tcdRhs :: LHsType pass
- | DataDecl {
- tcdDExt :: XDataDecl pass
- tcdLName :: LIdP pass
- tcdTyVars :: LHsQTyVars pass
- tcdFixity :: LexicalFixity
- tcdDataDefn :: HsDataDefn pass
- | ClassDecl {
- tcdCExt :: XClassDecl pass
- tcdCtxt :: Maybe (LHsContext pass)
- tcdLName :: LIdP pass
- tcdTyVars :: LHsQTyVars pass
- tcdFixity :: LexicalFixity
- tcdFDs :: [LHsFunDep pass]
- tcdSigs :: [LSig pass]
- tcdMeths :: LHsBinds pass
- tcdATs :: [LFamilyDecl pass]
- tcdATDefs :: [LTyFamDefltDecl pass]
- tcdDocs :: [LDocDecl pass]
- | XTyClDecl !(XXTyClDecl pass)
- = FamDecl {
- type LTyClDecl pass = XRec pass (TyClDecl pass)
- data SpliceDecoration
- type LSpliceDecl pass = XRec pass (SpliceDecl pass)
- data HsGroup p
- = HsGroup {
- hs_ext :: XCHsGroup p
- hs_valds :: HsValBinds p
- hs_splcds :: [LSpliceDecl p]
- hs_tyclds :: [TyClGroup p]
- hs_derivds :: [LDerivDecl p]
- hs_fixds :: [LFixitySig p]
- hs_defds :: [LDefaultDecl p]
- hs_fords :: [LForeignDecl p]
- hs_warnds :: [LWarnDecls p]
- hs_annds :: [LAnnDecl p]
- hs_ruleds :: [LRuleDecls p]
- hs_docs :: [LDocDecl p]
- | XHsGroup !(XXHsGroup p)
- = HsGroup {
- data HsDecl p
- = TyClD (XTyClD p) (TyClDecl p)
- | InstD (XInstD p) (InstDecl p)
- | DerivD (XDerivD p) (DerivDecl p)
- | ValD (XValD p) (HsBind p)
- | SigD (XSigD p) (Sig p)
- | KindSigD (XKindSigD p) (StandaloneKindSig p)
- | DefD (XDefD p) (DefaultDecl p)
- | ForD (XForD p) (ForeignDecl p)
- | WarningD (XWarningD p) (WarnDecls p)
- | AnnD (XAnnD p) (AnnDecl p)
- | RuleD (XRuleD p) (RuleDecls p)
- | SpliceD (XSpliceD p) (SpliceDecl p)
- | DocD (XDocD p) (DocDecl p)
- | RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p)
- | XHsDecl !(XXHsDecl p)
- type LHsDecl p = XRec p (HsDecl p)
- hsGroupInstDecls :: HsGroup id -> [LInstDecl id]
- isDataDecl :: TyClDecl pass -> Bool
- isSynDecl :: TyClDecl pass -> Bool
- isClassDecl :: TyClDecl pass -> Bool
- isFamilyDecl :: TyClDecl pass -> Bool
- isTypeFamilyDecl :: TyClDecl pass -> Bool
- isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool
- isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool
- isDataFamilyDecl :: TyClDecl pass -> Bool
- tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass
- tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass]
- tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass]
- tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass]
- tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass]
- familyInfoTyConFlavour :: Maybe tc -> FamilyInfo pass -> TyConFlavour tc
- dataDefnConsNewOrData :: DataDefnCons a -> NewOrData
- isTypeDataDefnCons :: DataDefnCons a -> Bool
- firstDataDefnCon :: DataDefnCons a -> Maybe a
- collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass]
- docDeclDoc :: DocDecl pass -> LHsDoc pass
- annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p)
- data HsArrowMatchContext
- data HsStmtContext fn
- = HsDoStmt HsDoFlavour
- | PatGuard (HsMatchContext fn)
- | ParStmtCtxt (HsStmtContext fn)
- | TransStmtCtxt (HsStmtContext fn)
- | ArrowExpr
- data HsMatchContext fn
- = FunRhs {
- mc_fun :: fn
- mc_fixity :: LexicalFixity
- mc_strictness :: SrcStrictness
- | CaseAlt
- | LamAlt HsLamVariant
- | IfAlt
- | ArrowMatchCtxt HsArrowMatchContext
- | PatBindRhs
- | PatBindGuards
- | RecUpd
- | StmtCtxt (HsStmtContext fn)
- | ThPatSplice
- | ThPatQuote
- | PatSyn
- | LazyPatCtx
- = FunRhs {
- data ArithSeqInfo id
- data HsQuote p
- data ApplicativeArg idL
- = ApplicativeArgOne {
- xarg_app_arg_one :: XApplicativeArgOne idL
- app_arg_pattern :: LPat idL
- arg_expr :: LHsExpr idL
- is_body_stmt :: Bool
- | ApplicativeArgMany {
- xarg_app_arg_many :: XApplicativeArgMany idL
- app_stmts :: [ExprLStmt idL]
- final_expr :: HsExpr idL
- bv_pattern :: LPat idL
- stmt_context :: HsDoFlavour
- | XApplicativeArg !(XXApplicativeArg idL)
- = ApplicativeArgOne {
- type FailOperator id = Maybe (SyntaxExpr id)
- data TransForm
- data StmtLR idL idR body
- = LastStmt (XLastStmt idL idR body) body (Maybe Bool) (SyntaxExpr idR)
- | BindStmt (XBindStmt idL idR body) (LPat idL) body
- | ApplicativeStmt (XApplicativeStmt idL idR body) [(SyntaxExpr idR, ApplicativeArg idL)] (Maybe (SyntaxExpr idR))
- | BodyStmt (XBodyStmt idL idR body) body (SyntaxExpr idR) (SyntaxExpr idR)
- | LetStmt (XLetStmt idL idR body) (HsLocalBindsLR idL idR)
- | ParStmt (XParStmt idL idR body) [ParStmtBlock idL idR] (HsExpr idR) (SyntaxExpr idR)
- | TransStmt { }
- | RecStmt {
- recS_ext :: XRecStmt idL idR body
- recS_stmts :: XRec idR [LStmtLR idL idR body]
- recS_later_ids :: [IdP idR]
- recS_rec_ids :: [IdP idR]
- recS_bind_fn :: SyntaxExpr idR
- recS_ret_fn :: SyntaxExpr idR
- recS_mfix_fn :: SyntaxExpr idR
- | XStmtLR !(XXStmtLR idL idR body)
- type GhciStmt id = Stmt id (LHsExpr id)
- type GhciLStmt id = LStmt id (LHsExpr id)
- type GuardStmt id = Stmt id (LHsExpr id)
- type GuardLStmt id = LStmt id (LHsExpr id)
- type ExprStmt id = Stmt id (LHsExpr id)
- type ExprLStmt id = LStmt id (LHsExpr id)
- type CmdStmt id = Stmt id (LHsCmd id)
- type CmdLStmt id = LStmt id (LHsCmd id)
- type LStmtLR idL idR body = XRec idL (StmtLR idL idR body)
- type LStmt id body = XRec id (StmtLR id id body)
- data GRHS p body
- = GRHS (XCGRHS p body) [GuardLStmt p] body
- | XGRHS !(XXGRHS p body)
- type LGRHS id body = XRec id (GRHS id body)
- type LMatch id body = XRec id (Match id body)
- type HsRecordBinds p = HsRecFields p (LHsExpr p)
- type LHsCmdTop p = XRec p (HsCmdTop p)
- data HsArrAppType
- data HsCmd id
- = HsCmdArrApp (XCmdArrApp id) (LHsExpr id) (LHsExpr id) HsArrAppType Bool
- | HsCmdArrForm (XCmdArrForm id) (LHsExpr id) LexicalFixity (Maybe Fixity) [LHsCmdTop id]
- | HsCmdApp (XCmdApp id) (LHsCmd id) (LHsExpr id)
- | HsCmdLam (XCmdLamCase id) HsLamVariant (MatchGroup id (LHsCmd id))
- | HsCmdPar (XCmdPar id) (LHsCmd id)
- | HsCmdCase (XCmdCase id) (LHsExpr id) (MatchGroup id (LHsCmd id))
- | HsCmdIf (XCmdIf id) (SyntaxExpr id) (LHsExpr id) (LHsCmd id) (LHsCmd id)
- | HsCmdLet (XCmdLet id) (HsLocalBinds id) (LHsCmd id)
- | HsCmdDo (XCmdDo id) (XRec id [CmdLStmt id])
- | XCmd !(XXCmd id)
- type LHsCmd id = XRec id (HsCmd id)
- data HsLamVariant
- data HsTupArg id
- type LHsTupArg id = XRec id (HsTupArg id)
- data HsPragE p
- = HsPragSCC (XSCC p) StringLiteral
- | XHsPragE !(XXPragE p)
- data DotFieldOcc p
- = DotFieldOcc {
- dfoExt :: XCDotFieldOcc p
- dfoLabel :: XRec p FieldLabelString
- | XDotFieldOcc !(XXDotFieldOcc p)
- = DotFieldOcc {
- data LHsRecUpdFields p where
- RegularRecUpdFields :: forall p. {..} -> LHsRecUpdFields p
- OverloadedRecUpdFields :: forall p. {..} -> LHsRecUpdFields p
- type LHsRecUpdProj p = XRec p (RecUpdProj p)
- type RecUpdProj p = RecProj p (LHsExpr p)
- type LHsRecProj p arg = XRec p (RecProj p arg)
- type RecProj p arg = HsFieldBind (LFieldLabelStrings p) arg
- newtype FieldLabelStrings p = FieldLabelStrings [XRec p (DotFieldOcc p)]
- type LFieldLabelStrings p = XRec p (FieldLabelStrings p)
- isInfixMatch :: Match id body -> Bool
- qualifiedDoModuleName_maybe :: HsStmtContext fn -> Maybe ModuleName
- isPatSynCtxt :: HsMatchContext fn -> Bool
- isComprehensionContext :: HsStmtContext fn -> Bool
- isDoComprehensionContext :: HsDoFlavour -> Bool
- isMonadStmtContext :: HsStmtContext fn -> Bool
- isMonadDoStmtContext :: HsDoFlavour -> Bool
- isMonadCompContext :: HsStmtContext fn -> Bool
- isMonadDoCompContext :: HsDoFlavour -> Bool
- data HsModule p
- = HsModule {
- hsmodExt :: XCModule p
- hsmodName :: Maybe (XRec p ModuleName)
- hsmodExports :: Maybe (XRec p [LIE p])
- hsmodImports :: [LImportDecl p]
- hsmodDecls :: [LHsDecl p]
- | XModule !(XXModule p)
- = HsModule {
- module GHC.Rename.Names
- module GHC.Rename.Splice
- module GHC.Tc.Instance.Family
- module GHC.Tc.Module
- module GHC.Tc.Types
- data Role
- data LeftOrRight
- pickLR :: LeftOrRight -> (a, a) -> a
- data CoercionHole
- data QuoteWrapper = QuoteWrapper EvVar Type
- data HoleExprRef = HER (IORef EvTerm) TcType Unique
- data EvCallStack
- data EvTypeable
- data EvTerm
- type EvExpr = CoreExpr
- data EvBind = EvBind {}
- data EvBindInfo
- = EvBindGiven
- | EvBindWanted { }
- newtype EvBindMap = EvBindMap {}
- data EvBindsVar
- data TcEvBinds
- = TcEvBinds EvBindsVar
- | EvBinds (Bag EvBind)
- data HsWrapper
- type TcMCoercionR = MCoercionR
- type TcMCoercionN = MCoercionN
- type TcMCoercion = MCoercion
- type TcCoercionP = CoercionP
- type TcCoercionR = CoercionR
- type TcCoercionN = CoercionN
- type TcCoercion = Coercion
- maybeSymCo :: SwapFlag -> TcCoercion -> TcCoercion
- mkWpFun :: HsWrapper -> HsWrapper -> Scaled TcTypeFRR -> TcType -> HsWrapper
- mkWpEta :: [Id] -> HsWrapper -> HsWrapper
- mkWpCastR :: TcCoercionR -> HsWrapper
- mkWpCastN :: TcCoercionN -> HsWrapper
- mkWpTyApps :: [Type] -> HsWrapper
- mkWpEvApps :: [EvTerm] -> HsWrapper
- mkWpEvVarApps :: [EvVar] -> HsWrapper
- mkWpTyLams :: [TyVar] -> HsWrapper
- mkWpVisTyLam :: TyVar -> Type -> HsWrapper
- mkWpEvLams :: [Var] -> HsWrapper
- mkWpLet :: TcEvBinds -> HsWrapper
- idHsWrapper :: HsWrapper
- isIdHsWrapper :: HsWrapper -> Bool
- hsWrapDictBinders :: HsWrapper -> Bag DictId
- collectHsWrapBinders :: HsWrapper -> ([Var], HsWrapper)
- isCoEvBindsVar :: EvBindsVar -> Bool
- emptyEvBindMap :: EvBindMap
- extendEvBinds :: EvBindMap -> EvBind -> EvBindMap
- isEmptyEvBindMap :: EvBindMap -> Bool
- lookupEvBind :: EvBindMap -> EvVar -> Maybe EvBind
- evBindMapBinds :: EvBindMap -> Bag EvBind
- foldEvBindMap :: (EvBind -> a -> a) -> a -> EvBindMap -> a
- nonDetStrictFoldEvBindMap :: (EvBind -> a -> a) -> a -> EvBindMap -> a
- filterEvBindMap :: (EvBind -> Bool) -> EvBindMap -> EvBindMap
- evBindMapToVarSet :: EvBindMap -> VarSet
- varSetMinusEvBindMap :: VarSet -> EvBindMap -> VarSet
- evBindVar :: EvBind -> EvVar
- mkWantedEvBind :: EvVar -> Canonical -> EvTerm -> EvBind
- mkGivenEvBind :: EvVar -> EvTerm -> EvBind
- evId :: EvId -> EvExpr
- evCoercion :: TcCoercion -> EvTerm
- evCast :: EvExpr -> TcCoercion -> EvTerm
- evDFunApp :: DFunId -> [Type] -> [EvExpr] -> EvTerm
- evDataConApp :: DataCon -> [Type] -> [EvExpr] -> EvTerm
- evSelector :: Id -> [Type] -> [EvExpr] -> EvExpr
- evTypeable :: Type -> EvTypeable -> EvTerm
- mkEvCast :: EvExpr -> TcCoercion -> EvTerm
- mkEvScSelectors :: Class -> [TcType] -> [(TcPredType, EvExpr)]
- emptyTcEvBinds :: TcEvBinds
- isEmptyTcEvBinds :: TcEvBinds -> Bool
- evTermCoercion_maybe :: EvTerm -> Maybe TcCoercion
- evTermCoercion :: EvTerm -> TcCoercion
- findNeededEvVars :: EvBindMap -> VarSet -> VarSet
- evVarsOfTerm :: EvTerm -> VarSet
- pprHsWrapper :: HsWrapper -> (Bool -> SDoc) -> SDoc
- unwrapIP :: Type -> CoercionR
- wrapIP :: Type -> CoercionR
- quoteWrapperTyVarTy :: QuoteWrapper -> Type
- applyQuoteWrapper :: QuoteWrapper -> HsWrapper
- module GHC.Tc.Utils.Env
- newName :: OccName -> TcM Name
- foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b
- foldlM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
- getEnv :: IOEnv env env
- setEnv :: env' -> IOEnv env' a -> IOEnv env a
- newUnique :: TcRnIf gbl lcl Unique
- mapAndUnzipM :: Applicative m => (a -> m (b, c)) -> [a] -> m ([b], [c])
- data Env gbl lcl = Env {}
- newMutVar :: a -> IOEnv env (IORef a)
- readMutVar :: IORef a -> IOEnv env a
- writeMutVar :: IORef a -> a -> IOEnv env ()
- orM :: Monad m => m Bool -> m Bool -> m Bool
- partitionM :: Monad m => (a -> m Bool) -> [a] -> m ([a], [a])
- whenM :: Monad m => m Bool -> m () -> m ()
- unlessM :: Monad m => m Bool -> m () -> m ()
- data TcGblEnv = TcGblEnv {
- tcg_mod :: Module
- tcg_semantic_mod :: Module
- tcg_src :: HscSource
- tcg_rdr_env :: GlobalRdrEnv
- tcg_default :: Maybe [Type]
- tcg_fix_env :: FixityEnv
- tcg_type_env :: TypeEnv
- tcg_type_env_var :: KnotVars (IORef TypeEnv)
- tcg_inst_env :: !InstEnv
- tcg_fam_inst_env :: !FamInstEnv
- tcg_ann_env :: AnnEnv
- tcg_exports :: [AvailInfo]
- tcg_imports :: ImportAvails
- tcg_dus :: DefUses
- tcg_used_gres :: TcRef [GlobalRdrElt]
- tcg_keep :: TcRef NameSet
- tcg_th_used :: TcRef Bool
- tcg_th_splice_used :: TcRef Bool
- tcg_th_needed_deps :: TcRef ([Linkable], PkgsLoaded)
- tcg_dfun_n :: TcRef OccSet
- tcg_merged :: [(Module, Fingerprint)]
- tcg_rn_exports :: Maybe [(LIE GhcRn, Avails)]
- tcg_rn_imports :: [LImportDecl GhcRn]
- tcg_rn_decls :: Maybe (HsGroup GhcRn)
- tcg_dependent_files :: TcRef [FilePath]
- tcg_th_topdecls :: TcRef [LHsDecl GhcPs]
- tcg_th_foreign_files :: TcRef [(ForeignSrcLang, FilePath)]
- tcg_th_topnames :: TcRef NameSet
- tcg_th_modfinalizers :: TcRef [(TcLclEnv, ThModFinalizers)]
- tcg_th_coreplugins :: TcRef [String]
- tcg_th_state :: TcRef (Map TypeRep Dynamic)
- tcg_th_remote_state :: TcRef (Maybe (ForeignRef (IORef QState)))
- tcg_th_docs :: TcRef THDocs
- tcg_ev_binds :: Bag EvBind
- tcg_tr_module :: Maybe Id
- tcg_binds :: LHsBinds GhcTc
- tcg_sigs :: NameSet
- tcg_imp_specs :: [LTcSpecPrag]
- tcg_warns :: Warnings GhcRn
- tcg_anns :: [Annotation]
- tcg_tcs :: [TyCon]
- tcg_ksigs :: NameSet
- tcg_insts :: [ClsInst]
- tcg_fam_insts :: [FamInst]
- tcg_rules :: [LRuleDecl GhcTc]
- tcg_fords :: [LForeignDecl GhcTc]
- tcg_patsyns :: [PatSyn]
- tcg_hdr_info :: (Maybe (LHsDoc GhcRn), Maybe (XRec GhcRn ModuleName))
- tcg_hpc :: !AnyHpcUsage
- tcg_self_boot :: SelfBootInfo
- tcg_main :: Maybe Name
- tcg_safe_infer :: TcRef Bool
- tcg_safe_infer_reasons :: TcRef (Messages TcRnMessage)
- tcg_tc_plugin_solvers :: [TcPluginSolver]
- tcg_tc_plugin_rewriters :: UniqFM TyCon [TcPluginRewriter]
- tcg_defaulting_plugins :: [FillDefaulting]
- tcg_hf_plugins :: [HoleFitPlugin]
- tcg_top_loc :: RealSrcSpan
- tcg_static_wc :: TcRef WantedConstraints
- tcg_complete_matches :: !CompleteMatches
- tcg_cc_st :: TcRef CostCentreState
- tcg_next_wrapper_num :: TcRef (ModuleEnv Int)
- data ForeignSrcLang
- data TcLclEnv = TcLclEnv {}
- zipWith3M :: Monad m => (a -> b -> c -> m d) -> [a] -> [b] -> [c] -> m [d]
- zipWith3M_ :: Monad m => (a -> b -> c -> m d) -> [a] -> [b] -> [c] -> m ()
- zipWith4M :: Monad m => (a -> b -> c -> d -> m e) -> [a] -> [b] -> [c] -> [d] -> m [e]
- zipWithAndUnzipM :: Monad m => (a -> b -> m (c, d)) -> [a] -> [b] -> m ([c], [d])
- zipWith3MNE :: Monad m => (a -> b -> c -> m d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> m (NonEmpty d)
- mapAndUnzip3M :: Monad m => (a -> m (b, c, d)) -> [a] -> m ([b], [c], [d])
- mapAndUnzip4M :: Monad m => (a -> m (b, c, d, e)) -> [a] -> m ([b], [c], [d], [e])
- mapAndUnzip5M :: Monad m => (a -> m (b, c, d, e, f)) -> [a] -> m ([b], [c], [d], [e], [f])
- mapAccumLM :: (Monad m, Traversable t) => (acc -> x -> m (acc, y)) -> acc -> t x -> m (acc, t y)
- mapSndM :: (Applicative m, Traversable f) => (b -> m c) -> f (a, b) -> m (f (a, c))
- foldlM_ :: (Monad m, Foldable t) => (a -> b -> m a) -> a -> t b -> m ()
- filterOutM :: Applicative m => (a -> m Bool) -> [a] -> m [a]
- type TcRef a = IORef a
- newTcRef :: MonadIO m => a -> m (TcRef a)
- readTcRef :: MonadIO m => TcRef a -> m a
- writeTcRef :: MonadIO m => TcRef a -> a -> m ()
- updTcRef :: MonadIO m => TcRef a -> (a -> a) -> m ()
- updTcRefM :: MonadIO m => TcRef a -> (a -> m a) -> m ()
- data PromotionErr
- pprPECategory :: PromotionErr -> SDoc
- peCategory :: PromotionErr -> String
- data ImportAvails = ImportAvails {}
- type ClosedTypeId = Bool
- type RhsNames = NameSet
- data IsGroupClosed = IsGroupClosed (NameEnv RhsNames) ClosedTypeId
- data IdBindingInfo
- data TcTyThing
- = AGlobal TyThing
- | ATcId {
- tct_id :: Id
- tct_info :: IdBindingInfo
- | ATyVar Name TcTyVar
- | ATcTyCon TyCon
- | APromotionErr PromotionErr
- data TcIdSigInst = TISI {
- sig_inst_sig :: TcIdSig
- sig_inst_skols :: [(Name, InvisTVBinder)]
- sig_inst_theta :: TcThetaType
- sig_inst_tau :: TcSigmaType
- sig_inst_wcs :: [(Name, TcTyVar)]
- sig_inst_wcx :: Maybe TcType
- data TcPatSynSig = PatSig {}
- data TcSigInfo
- data TcPartialSig = PSig {}
- data TcIdSig
- data TcCompleteSig = CSig {}
- type TcSigFun = Name -> Maybe TcSigInfo
- data TcBinder
- type TcId = Id
- type TcBinderStack = [TcBinder]
- isPartialSig :: TcIdSigInst -> Bool
- hasCompleteSig :: TcSigFun -> Name -> Bool
- tcSigInfoName :: TcSigInfo -> Name
- tcIdSigLoc :: TcIdSig -> SrcSpan
- completeSigPolyId_maybe :: TcSigInfo -> Maybe TcId
- tcTyThingTyCon_maybe :: TcTyThing -> Maybe TyCon
- pprTcTyThingCategory :: TcTyThing -> SDoc
- tcTyThingCategory :: TcTyThing -> String
- type ErrCtxt = (Bool, TidyEnv -> ZonkM (TidyEnv, SDoc))
- type ThLevel = Int
- data PendingStuff
- data ThStage
- = Splice SpliceType
- | RunSplice (TcRef [ForeignRef (Q ())])
- | Comp
- | Brack ThStage PendingStuff
- data SpliceOrBracket
- data SpliceType
- topStage :: ThStage
- topAnnStage :: ThStage
- topSpliceStage :: ThStage
- impLevel :: ThLevel
- outerLevel :: ThLevel
- thLevel :: ThStage -> ThLevel
- data TcRnMessage
- data ArrowCtxt
- type ThBindEnv = NameEnv (TopLevelFlag, ThLevel)
- type TcTypeEnv = NameEnv TcTyThing
- data TcLclCtxt = TcLclCtxt {}
- setLclEnvTcLevel :: TcLevel -> TcLclEnv -> TcLclEnv
- getLclEnvTcLevel :: TcLclEnv -> TcLevel
- setLclEnvLoc :: RealSrcSpan -> TcLclEnv -> TcLclEnv
- getLclEnvLoc :: TcLclEnv -> RealSrcSpan
- lclEnvInGeneratedCode :: TcLclEnv -> Bool
- modifyLclCtxt :: (TcLclCtxt -> TcLclCtxt) -> TcLclEnv -> TcLclEnv
- type CompleteMatches = [CompleteMatch]
- data CompleteMatch
- getPlatform :: TcRnIf a b Platform
- addErr :: TcRnMessage -> TcRn ()
- data IOEnvFailure = IOEnvFailure
- data IOEnv env a
- failM :: IOEnv env a
- failWithM :: String -> IOEnv env a
- runIOEnv :: env -> IOEnv env a -> IO a
- fixM :: (a -> IOEnv env a) -> IOEnv env a
- tryM :: IOEnv env r -> IOEnv env (Either IOEnvFailure r)
- tryAllM :: IOEnv env r -> IOEnv env (Either SomeException r)
- tryMostM :: IOEnv env r -> IOEnv env (Either SomeException r)
- unsafeInterleaveM :: IOEnv env a -> IOEnv env a
- uninterruptibleMaskM_ :: IOEnv env a -> IOEnv env a
- updMutVar :: IORef a -> (a -> a) -> IOEnv env ()
- atomicUpdMutVar :: IORef a -> (a -> (a, b)) -> IOEnv env b
- atomicUpdMutVar' :: IORef a -> (a -> (a, b)) -> IOEnv env b
- updEnv :: (env -> env') -> IOEnv env' a -> IOEnv env a
- getNamePprCtx :: TcRn NamePprCtx
- getSrcSpanM :: TcRn SrcSpan
- type THDocs = Map DocLoc (HsDoc GhcRn)
- data DocLoc
- type RoleAnnotEnv = NameEnv (LRoleAnnotDecl GhcRn)
- data DefaultingPlugin = DefaultingPlugin {
- dePluginInit :: TcPluginM s
- dePluginRun :: s -> FillDefaulting
- dePluginStop :: s -> TcPluginM ()
- type FillDefaulting = WantedConstraints -> TcPluginM [DefaultingProposal]
- data DefaultingProposal = DefaultingProposal {
- deProposals :: [[(TcTyVar, Type)]]
- deProposalCts :: [Ct]
- data TcPluginRewriteResult
- data TcPluginSolveResult where
- TcPluginSolveResult {
- tcPluginInsolubleCts :: [Ct]
- tcPluginSolvedCts :: [(EvTerm, Ct)]
- tcPluginNewCts :: [Ct]
- pattern TcPluginOk :: [(EvTerm, Ct)] -> [Ct] -> TcPluginSolveResult
- pattern TcPluginContradiction :: [Ct] -> TcPluginSolveResult
- TcPluginSolveResult {
- data TcPlugin = TcPlugin {
- tcPluginInit :: TcPluginM s
- tcPluginSolve :: s -> TcPluginSolver
- tcPluginRewrite :: s -> UniqFM TyCon TcPluginRewriter
- tcPluginStop :: s -> TcPluginM ()
- data TcPluginM a
- type TcPluginRewriter = RewriteEnv -> [Ct] -> [TcType] -> TcPluginM TcPluginRewriteResult
- type TcPluginSolver = EvBindsVar -> [Ct] -> [Ct] -> TcPluginM TcPluginSolveResult
- data SelfBootInfo
- = NoSelfBoot
- | SelfBoot {
- sb_mds :: ModDetails
- data FrontendResult = FrontendTypecheck TcGblEnv
- data IfLclEnv = IfLclEnv {}
- data IfGblEnv = IfGblEnv {}
- data RewriteEnv = RE {
- re_loc :: !CtLoc
- re_flavour :: !CtFlavour
- re_eq_rel :: !EqRel
- re_rewriters :: !(TcRef RewriterSet)
- type TcM = TcRn
- type RnM = TcRn
- type IfL = IfM IfLclEnv
- type IfG = IfM ()
- type IfM lcl = TcRnIf IfGblEnv lcl
- type TcRn = TcRnIf TcGblEnv TcLclEnv
- type TcRnIf a b = IOEnv (Env a b)
- data NameShape = NameShape {
- ns_mod_name :: ModuleName
- ns_exports :: [AvailInfo]
- ns_map :: OccEnv Name
- tcVisibleOrphanMods :: TcGblEnv -> ModuleSet
- bootExports :: SelfBootInfo -> NameSet
- removeBindingShadowing :: HasOccName a => [a] -> [a]
- mkModDeps :: Set (UnitId, ModuleNameWithIsBoot) -> InstalledModuleEnv ModuleNameWithIsBoot
- emptyImportAvails :: ImportAvails
- plusImportAvails :: ImportAvails -> ImportAvails -> ImportAvails
- unsafeTcPluginTcM :: TcM a -> TcPluginM a
- mkRoleAnnotEnv :: [LRoleAnnotDecl GhcRn] -> RoleAnnotEnv
- emptyRoleAnnotEnv :: RoleAnnotEnv
- lookupRoleAnnot :: RoleAnnotEnv -> Name -> Maybe (LRoleAnnotDecl GhcRn)
- getRoleAnnots :: [Name] -> RoleAnnotEnv -> [LRoleAnnotDecl GhcRn]
- lintGblEnv :: Logger -> DynFlags -> TcGblEnv -> TcM ()
- data IsExtraConstraint
- initTc :: HscEnv -> HscSource -> Bool -> Module -> RealSrcSpan -> TcM r -> IO (Messages TcRnMessage, Maybe r)
- initTcWithGbl :: HscEnv -> TcGblEnv -> RealSrcSpan -> TcM r -> IO (Messages TcRnMessage, Maybe r)
- initTcInteractive :: HscEnv -> TcM a -> IO (Messages TcRnMessage, Maybe a)
- initTcRnIf :: Char -> HscEnv -> gbl -> lcl -> TcRnIf gbl lcl a -> IO a
- discardResult :: TcM a -> TcM ()
- getTopEnv :: TcRnIf gbl lcl HscEnv
- updTopEnv :: (HscEnv -> HscEnv) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- getGblEnv :: TcRnIf gbl lcl gbl
- updGblEnv :: (gbl -> gbl) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- setGblEnv :: gbl' -> TcRnIf gbl' lcl a -> TcRnIf gbl lcl a
- getLclEnv :: TcRnIf gbl lcl lcl
- updLclEnv :: (lcl -> lcl) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- updLclCtxt :: (TcLclCtxt -> TcLclCtxt) -> TcRnIf gbl TcLclEnv a -> TcRnIf gbl TcLclEnv a
- setLclEnv :: lcl' -> TcRnIf gbl lcl' a -> TcRnIf gbl lcl a
- restoreLclEnv :: TcLclEnv -> TcRnIf gbl TcLclEnv a -> TcRnIf gbl TcLclEnv a
- getEnvs :: TcRnIf gbl lcl (gbl, lcl)
- setEnvs :: (gbl', lcl') -> TcRnIf gbl' lcl' a -> TcRnIf gbl lcl a
- updEnvs :: ((gbl, lcl) -> (gbl, lcl)) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- restoreEnvs :: (TcGblEnv, TcLclEnv) -> TcRn a -> TcRn a
- xoptM :: Extension -> TcRnIf gbl lcl Bool
- doptM :: DumpFlag -> TcRnIf gbl lcl Bool
- goptM :: GeneralFlag -> TcRnIf gbl lcl Bool
- woptM :: WarningFlag -> TcRnIf gbl lcl Bool
- setXOptM :: Extension -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- unsetXOptM :: Extension -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- unsetGOptM :: GeneralFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- unsetWOptM :: WarningFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- whenDOptM :: DumpFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- whenGOptM :: GeneralFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- whenWOptM :: WarningFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- whenXOptM :: Extension -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- unlessXOptM :: Extension -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- getGhcMode :: TcRnIf gbl lcl GhcMode
- withoutDynamicNow :: TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- updTopFlags :: (DynFlags -> DynFlags) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- getEpsVar :: TcRnIf gbl lcl (TcRef ExternalPackageState)
- getEps :: TcRnIf gbl lcl ExternalPackageState
- updateEps :: (ExternalPackageState -> (ExternalPackageState, a)) -> TcRnIf gbl lcl a
- updateEps_ :: (ExternalPackageState -> ExternalPackageState) -> TcRnIf gbl lcl ()
- getHpt :: TcRnIf gbl lcl HomePackageTable
- getEpsAndHug :: TcRnIf gbl lcl (ExternalPackageState, HomeUnitGraph)
- withException :: MonadIO m => SDocContext -> m (MaybeErr SDoc a) -> m a
- withIfaceErr :: MonadIO m => SDocContext -> m (MaybeErr MissingInterfaceError a) -> m a
- newArrowScope :: TcM a -> TcM a
- escapeArrowScope :: TcM a -> TcM a
- newUniqueSupply :: TcRnIf gbl lcl UniqSupply
- cloneLocalName :: Name -> TcM Name
- newNameAt :: OccName -> SrcSpan -> TcM Name
- newSysName :: OccName -> TcRnIf gbl lcl Name
- newSysLocalId :: FastString -> Mult -> TcType -> TcRnIf gbl lcl TcId
- newSysLocalIds :: FastString -> [Scaled TcType] -> TcRnIf gbl lcl [TcId]
- traceTc :: String -> SDoc -> TcRn ()
- traceRn :: String -> SDoc -> TcRn ()
- traceOptTcRn :: DumpFlag -> SDoc -> TcRn ()
- dumpOptTcRn :: DumpFlag -> String -> DumpFormat -> SDoc -> TcRn ()
- dumpTcRn :: Bool -> DumpFlag -> String -> DumpFormat -> SDoc -> TcRn ()
- printForUserTcRn :: SDoc -> TcRn ()
- traceIf :: SDoc -> TcRnIf m n ()
- traceOptIf :: DumpFlag -> SDoc -> TcRnIf m n ()
- getIsGHCi :: TcRn Bool
- getGHCiMonad :: TcRn Name
- getInteractivePrintName :: TcRn Name
- tcIsHsBootOrSig :: TcRn Bool
- tcHscSource :: TcRn HscSource
- tcIsHsig :: TcRn Bool
- tcSelfBootInfo :: TcRn SelfBootInfo
- getGlobalRdrEnv :: TcRn GlobalRdrEnv
- getRdrEnvs :: TcRn (GlobalRdrEnv, LocalRdrEnv)
- getImports :: TcRn ImportAvails
- getFixityEnv :: TcRn FixityEnv
- extendFixityEnv :: [(Name, FixItem)] -> RnM a -> RnM a
- getDeclaredDefaultTys :: TcRn (Maybe [Type])
- addDependentFiles :: [FilePath] -> TcRn ()
- inGeneratedCode :: TcRn Bool
- setSrcSpan :: SrcSpan -> TcRn a -> TcRn a
- setInGeneratedCode :: TcRn a -> TcRn a
- setSrcSpanA :: EpAnn ann -> TcRn a -> TcRn a
- addLocM :: HasLoc t => (a -> TcM b) -> GenLocated t a -> TcM b
- wrapLocM :: HasLoc t => (a -> TcM b) -> GenLocated t a -> TcM (Located b)
- wrapLocMA :: (a -> TcM b) -> GenLocated (EpAnn ann) a -> TcRn (GenLocated (EpAnn ann) b)
- wrapLocFstM :: (a -> TcM (b, c)) -> Located a -> TcM (Located b, c)
- wrapLocFstMA :: (a -> TcM (b, c)) -> GenLocated (EpAnn ann) a -> TcM (GenLocated (EpAnn ann) b, c)
- wrapLocSndM :: (a -> TcM (b, c)) -> Located a -> TcM (b, Located c)
- wrapLocSndMA :: (a -> TcM (b, c)) -> GenLocated (EpAnn ann) a -> TcM (b, GenLocated (EpAnn ann) c)
- wrapLocM_ :: (a -> TcM ()) -> Located a -> TcM ()
- wrapLocMA_ :: (a -> TcM ()) -> LocatedA a -> TcM ()
- getErrsVar :: TcRn (TcRef (Messages TcRnMessage))
- setErrsVar :: TcRef (Messages TcRnMessage) -> TcRn a -> TcRn a
- failWith :: TcRnMessage -> TcRn a
- failAt :: SrcSpan -> TcRnMessage -> TcRn a
- addErrAt :: SrcSpan -> TcRnMessage -> TcRn ()
- mkDetailedMessage :: ErrInfo -> TcRnMessage -> TcRnMessageDetailed
- addErrs :: [(SrcSpan, TcRnMessage)] -> TcRn ()
- checkErr :: Bool -> TcRnMessage -> TcRn ()
- checkErrAt :: SrcSpan -> Bool -> TcRnMessage -> TcRn ()
- addMessages :: Messages TcRnMessage -> TcRn ()
- discardWarnings :: TcRn a -> TcRn a
- mkTcRnMessage :: SrcSpan -> TcRnMessage -> TcRn (MsgEnvelope TcRnMessage)
- reportDiagnostics :: [MsgEnvelope TcRnMessage] -> TcM ()
- reportDiagnostic :: MsgEnvelope TcRnMessage -> TcRn ()
- checkNoErrs :: TcM r -> TcM r
- whenNoErrs :: TcM () -> TcM ()
- ifErrsM :: TcRn r -> TcRn r -> TcRn r
- failIfErrsM :: TcRn ()
- getErrCtxt :: TcM [ErrCtxt]
- setErrCtxt :: [ErrCtxt] -> TcM a -> TcM a
- addErrCtxt :: SDoc -> TcM a -> TcM a
- addErrCtxtM :: (TidyEnv -> ZonkM (TidyEnv, SDoc)) -> TcM a -> TcM a
- addLandmarkErrCtxt :: SDoc -> TcM a -> TcM a
- addLandmarkErrCtxtM :: (TidyEnv -> ZonkM (TidyEnv, SDoc)) -> TcM a -> TcM a
- popErrCtxt :: TcM a -> TcM a
- getCtLocM :: CtOrigin -> Maybe TypeOrKind -> TcM CtLoc
- mkCtLocEnv :: TcLclEnv -> CtLocEnv
- setCtLocM :: CtLoc -> TcM a -> TcM a
- askNoErrs :: TcRn a -> TcRn (a, Bool)
- tryCaptureConstraints :: TcM a -> TcM (Maybe a, WantedConstraints)
- captureConstraints :: TcM a -> TcM (a, WantedConstraints)
- tcCollectingUsage :: TcM a -> TcM (UsageEnv, a)
- tcScalingUsage :: Mult -> TcM a -> TcM a
- tcEmitBindingUsage :: UsageEnv -> TcM ()
- attemptM :: TcRn r -> TcRn (Maybe r)
- recoverM :: TcRn r -> TcRn r -> TcRn r
- mapAndRecoverM :: (a -> TcRn b) -> [a] -> TcRn [b]
- mapAndReportM :: (a -> TcRn b) -> [a] -> TcRn [b]
- foldAndRecoverM :: (b -> a -> TcRn b) -> b -> [a] -> TcRn b
- tryTc :: TcRn a -> TcRn (Maybe a, Messages TcRnMessage)
- discardErrs :: TcRn a -> TcRn a
- tryTcDiscardingErrs :: TcM r -> TcM r -> TcM r
- addErrTc :: TcRnMessage -> TcM ()
- addErrTcM :: (TidyEnv, TcRnMessage) -> TcM ()
- failWithTc :: TcRnMessage -> TcM a
- failWithTcM :: (TidyEnv, TcRnMessage) -> TcM a
- checkTc :: Bool -> TcRnMessage -> TcM ()
- checkTcM :: Bool -> (TidyEnv, TcRnMessage) -> TcM ()
- failIfTc :: Bool -> TcRnMessage -> TcM ()
- failIfTcM :: Bool -> (TidyEnv, TcRnMessage) -> TcM ()
- warnIf :: Bool -> TcRnMessage -> TcRn ()
- diagnosticTc :: Bool -> TcRnMessage -> TcM ()
- diagnosticTcM :: Bool -> (TidyEnv, TcRnMessage) -> TcM ()
- addDiagnosticTc :: TcRnMessage -> TcM ()
- addDiagnosticTcM :: (TidyEnv, TcRnMessage) -> TcM ()
- addDetailedDiagnostic :: (ErrInfo -> TcRnMessage) -> TcM ()
- addTcRnDiagnostic :: TcRnMessage -> TcM ()
- addDiagnostic :: TcRnMessage -> TcRn ()
- addDiagnosticAt :: SrcSpan -> TcRnMessage -> TcRn ()
- mkErrInfo :: TidyEnv -> [ErrCtxt] -> TcM SDoc
- debugTc :: TcM () -> TcM ()
- addTopEvBinds :: Bag EvBind -> TcM a -> TcM a
- newTcEvBinds :: TcM EvBindsVar
- newNoTcEvBinds :: TcM EvBindsVar
- cloneEvBindsVar :: EvBindsVar -> TcM EvBindsVar
- getTcEvTyCoVars :: EvBindsVar -> TcM TyCoVarSet
- getTcEvBindsMap :: EvBindsVar -> TcM EvBindMap
- setTcEvBindsMap :: EvBindsVar -> EvBindMap -> TcM ()
- addTcEvBind :: EvBindsVar -> EvBind -> TcM ()
- chooseUniqueOccTc :: (OccSet -> OccName) -> TcM OccName
- getConstraintVar :: TcM (TcRef WantedConstraints)
- setConstraintVar :: TcRef WantedConstraints -> TcM a -> TcM a
- emitStaticConstraints :: WantedConstraints -> TcM ()
- emitConstraints :: WantedConstraints -> TcM ()
- emitSimple :: Ct -> TcM ()
- emitSimples :: Cts -> TcM ()
- emitImplication :: Implication -> TcM ()
- emitImplications :: Bag Implication -> TcM ()
- emitDelayedErrors :: Bag DelayedError -> TcM ()
- emitHole :: Hole -> TcM ()
- emitHoles :: Bag Hole -> TcM ()
- emitNotConcreteError :: NotConcreteError -> TcM ()
- discardConstraints :: TcM a -> TcM a
- pushLevelAndCaptureConstraints :: TcM a -> TcM (TcLevel, WantedConstraints, a)
- pushTcLevelM_ :: TcM a -> TcM a
- pushTcLevelM :: TcM a -> TcM (TcLevel, a)
- getTcLevel :: TcM TcLevel
- setTcLevel :: TcLevel -> TcM a -> TcM a
- isTouchableTcM :: TcTyVar -> TcM Bool
- getLclTypeEnv :: TcM TcTypeEnv
- setLclTypeEnv :: TcLclEnv -> TcM a -> TcM a
- traceTcConstraints :: String -> TcM ()
- emitAnonTypeHole :: IsExtraConstraint -> TcTyVar -> TcM ()
- emitNamedTypeHole :: (Name, TcTyVar) -> TcM ()
- recordThUse :: TcM ()
- recordThSpliceUse :: TcM ()
- recordThNeededRuntimeDeps :: [Linkable] -> PkgsLoaded -> TcM ()
- keepAlive :: Name -> TcRn ()
- getStage :: TcM ThStage
- getStageAndBindLevel :: Name -> TcRn (Maybe (TopLevelFlag, ThLevel, ThStage))
- setStage :: ThStage -> TcM a -> TcRn a
- addModFinalizersWithLclEnv :: ThModFinalizers -> TcM ()
- recordUnsafeInfer :: Messages TcRnMessage -> TcM ()
- finalSafeMode :: DynFlags -> TcGblEnv -> IO SafeHaskellMode
- fixSafeInstances :: SafeHaskellMode -> [ClsInst] -> [ClsInst]
- getLocalRdrEnv :: RnM LocalRdrEnv
- setLocalRdrEnv :: LocalRdrEnv -> RnM a -> RnM a
- mkIfLclEnv :: Module -> SDoc -> IsBootInterface -> IfLclEnv
- initIfaceTcRn :: IfG a -> TcRn a
- initIfaceLoad :: HscEnv -> IfG a -> IO a
- initIfaceLoadModule :: HscEnv -> Module -> IfG a -> IO a
- initIfaceCheck :: SDoc -> HscEnv -> IfG a -> IO a
- initIfaceLcl :: Module -> SDoc -> IsBootInterface -> IfL a -> IfM lcl a
- initIfaceLclWithSubst :: Module -> SDoc -> IsBootInterface -> NameShape -> IfL a -> IfM lcl a
- getIfModule :: IfL Module
- failIfM :: SDoc -> IfL a
- forkM :: SDoc -> IfL a -> IfL a
- setImplicitEnvM :: TypeEnv -> IfL a -> IfL a
- getCCIndexM :: (gbl -> TcRef CostCentreState) -> FastString -> TcRnIf gbl lcl CostCentreIndex
- getCCIndexTcM :: FastString -> TcM CostCentreIndex
- liftZonkM :: ZonkM a -> TcM a
- module GHC.Types.Basic
- module GHC.Types.Id
- data Name
- class HasOccName name where
- data OccName
- mkVarOccFS :: FastString -> OccName
- class NamedThing a where
- getOccName :: a -> OccName
- getName :: a -> Name
- isFieldName :: Name -> Bool
- tidyNameOcc :: Name -> OccName -> Name
- nameOccName :: Name -> OccName
- setNameUnique :: Name -> Unique -> Name
- nameUnique :: Name -> Unique
- type FastStringEnv a = UniqFM FastString a
- emptyFsEnv :: FastStringEnv a
- extendFsEnv :: FastStringEnv a -> FastString -> a -> FastStringEnv a
- lookupFsEnv :: FastStringEnv a -> FastString -> Maybe a
- mkFsEnv :: [(FastString, a)] -> FastStringEnv a
- type TidyOccEnv = UniqFM FastString Int
- data OccSet
- data OccEnv a
- data NameSpace
- tcName :: NameSpace
- clsName :: NameSpace
- tcClsName :: NameSpace
- dataName :: NameSpace
- srcDataName :: NameSpace
- tvName :: NameSpace
- fieldName :: FastString -> NameSpace
- isDataConNameSpace :: NameSpace -> Bool
- isTcClsNameSpace :: NameSpace -> Bool
- isTvNameSpace :: NameSpace -> Bool
- isVarNameSpace :: NameSpace -> Bool
- isTermVarOrFieldNameSpace :: NameSpace -> Bool
- isValNameSpace :: NameSpace -> Bool
- isFieldNameSpace :: NameSpace -> Bool
- pprNameSpace :: NameSpace -> SDoc
- pprNonVarNameSpace :: NameSpace -> SDoc
- pprNameSpaceBrief :: NameSpace -> SDoc
- pprOccName :: IsLine doc => OccName -> doc
- occNameMangledFS :: OccName -> FastString
- mkOccName :: NameSpace -> String -> OccName
- mkOccNameFS :: NameSpace -> FastString -> OccName
- mkVarOcc :: String -> OccName
- mkRecFieldOcc :: FastString -> String -> OccName
- mkRecFieldOccFS :: FastString -> FastString -> OccName
- varToRecFieldOcc :: HasDebugCallStack => FastString -> OccName -> OccName
- recFieldToVarOcc :: HasDebugCallStack => OccName -> OccName
- mkDataOcc :: String -> OccName
- mkDataOccFS :: FastString -> OccName
- mkTyVarOcc :: String -> OccName
- mkTyVarOccFS :: FastString -> OccName
- mkTcOcc :: String -> OccName
- mkTcOccFS :: FastString -> OccName
- mkClsOcc :: String -> OccName
- mkClsOccFS :: FastString -> OccName
- demoteOccName :: OccName -> Maybe OccName
- demoteOccTvName :: OccName -> Maybe OccName
- promoteOccName :: OccName -> Maybe OccName
- emptyOccEnv :: OccEnv a
- unitOccEnv :: OccName -> a -> OccEnv a
- extendOccEnv :: OccEnv a -> OccName -> a -> OccEnv a
- extendOccEnvList :: OccEnv a -> [(OccName, a)] -> OccEnv a
- lookupOccEnv :: OccEnv a -> OccName -> Maybe a
- lookupOccEnv_AllNameSpaces :: OccEnv a -> OccName -> [a]
- lookupOccEnv_WithFields :: OccEnv a -> OccName -> [a]
- lookupFieldsOccEnv :: OccEnv a -> FastString -> [a]
- mkOccEnv :: [(OccName, a)] -> OccEnv a
- mkOccEnv_C :: (a -> a -> a) -> [(OccName, a)] -> OccEnv a
- elemOccEnv :: OccName -> OccEnv a -> Bool
- nonDetFoldOccEnv :: (a -> b -> b) -> b -> OccEnv a -> b
- nonDetOccEnvElts :: OccEnv a -> [a]
- plusOccEnv :: OccEnv a -> OccEnv a -> OccEnv a
- plusOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccEnv a -> OccEnv a
- mapOccEnv :: (a -> b) -> OccEnv a -> OccEnv b
- mapMaybeOccEnv :: (a -> Maybe b) -> OccEnv a -> OccEnv b
- extendOccEnv_Acc :: (a -> b -> b) -> (a -> b) -> OccEnv b -> OccName -> a -> OccEnv b
- delFromOccEnv :: OccEnv a -> OccName -> OccEnv a
- delListFromOccEnv :: OccEnv a -> [OccName] -> OccEnv a
- filterOccEnv :: (a -> Bool) -> OccEnv a -> OccEnv a
- alterOccEnv :: (Maybe a -> Maybe a) -> OccEnv a -> OccName -> OccEnv a
- intersectOccEnv_C :: (a -> b -> c) -> OccEnv a -> OccEnv b -> OccEnv c
- minusOccEnv :: OccEnv a -> OccEnv b -> OccEnv a
- minusOccEnv_C :: (a -> b -> Maybe a) -> OccEnv a -> OccEnv b -> OccEnv a
- minusOccEnv_C_Ns :: (UniqFM NameSpace a -> UniqFM NameSpace b -> UniqFM NameSpace a) -> OccEnv a -> OccEnv b -> OccEnv a
- pprOccEnv :: (a -> SDoc) -> OccEnv a -> SDoc
- strictMapOccEnv :: (a -> b) -> OccEnv a -> OccEnv b
- forceOccEnv :: (a -> ()) -> OccEnv a -> ()
- emptyOccSet :: OccSet
- unitOccSet :: OccName -> OccSet
- mkOccSet :: [OccName] -> OccSet
- extendOccSet :: OccSet -> OccName -> OccSet
- extendOccSetList :: OccSet -> [OccName] -> OccSet
- unionOccSets :: OccSet -> OccSet -> OccSet
- unionManyOccSets :: [OccSet] -> OccSet
- elemOccSet :: OccName -> OccSet -> Bool
- isEmptyOccSet :: OccSet -> Bool
- occNameString :: OccName -> String
- setOccNameSpace :: NameSpace -> OccName -> OccName
- isVarOcc :: OccName -> Bool
- isTvOcc :: OccName -> Bool
- isTcOcc :: OccName -> Bool
- isFieldOcc :: OccName -> Bool
- fieldOcc_maybe :: OccName -> Maybe FastString
- isValOcc :: OccName -> Bool
- isDataOcc :: OccName -> Bool
- isDataSymOcc :: OccName -> Bool
- isSymOcc :: OccName -> Bool
- parenSymOcc :: OccName -> SDoc -> SDoc
- startsWithUnderscore :: OccName -> Bool
- isUnderscore :: OccName -> Bool
- isDerivedOccName :: OccName -> Bool
- isDefaultMethodOcc :: OccName -> Bool
- isTypeableBindOcc :: OccName -> Bool
- mkDataConWrapperOcc :: OccName -> OccName
- mkWorkerOcc :: OccName -> OccName
- mkMatcherOcc :: OccName -> OccName
- mkBuilderOcc :: OccName -> OccName
- mkDefaultMethodOcc :: OccName -> OccName
- mkClassOpAuxOcc :: OccName -> OccName
- mkDictOcc :: OccName -> OccName
- mkIPOcc :: OccName -> OccName
- mkSpecOcc :: OccName -> OccName
- mkForeignExportOcc :: OccName -> OccName
- mkRepEqOcc :: OccName -> OccName
- mkClassDataConOcc :: OccName -> OccName
- mkNewTyCoOcc :: OccName -> OccName
- mkInstTyCoOcc :: OccName -> OccName
- mkEqPredCoOcc :: OccName -> OccName
- mkCon2TagOcc :: OccName -> OccName
- mkTag2ConOcc :: OccName -> OccName
- mkMaxTagOcc :: OccName -> OccName
- mkDataTOcc :: OccName -> OccName
- mkDataCOcc :: OccName -> OccName
- mkTyConRepOcc :: OccName -> OccName
- mkGenR :: OccName -> OccName
- mkGen1R :: OccName -> OccName
- mkDataConWorkerOcc :: OccName -> OccName
- mkSuperDictAuxOcc :: Int -> OccName -> OccName
- mkSuperDictSelOcc :: Int -> OccName -> OccName
- mkLocalOcc :: Unique -> OccName -> OccName
- mkInstTyTcOcc :: String -> OccSet -> OccName
- mkDFunOcc :: String -> Bool -> OccSet -> OccName
- mkMethodOcc :: OccName -> OccName
- emptyTidyOccEnv :: TidyOccEnv
- initTidyOccEnv :: [OccName] -> TidyOccEnv
- delTidyOccEnvList :: TidyOccEnv -> [FastString] -> TidyOccEnv
- avoidClashesOccEnv :: TidyOccEnv -> [OccName] -> TidyOccEnv
- tidyOccName :: TidyOccEnv -> OccName -> (TidyOccEnv, OccName)
- mainOcc :: OccName
- ppMainFn :: OccName -> SDoc
- data BuiltInSyntax
- nameNameSpace :: Name -> NameSpace
- nameSrcLoc :: Name -> SrcLoc
- nameSrcSpan :: Name -> SrcSpan
- isWiredInName :: Name -> Bool
- isWiredIn :: NamedThing thing => thing -> Bool
- wiredInNameTyThing_maybe :: Name -> Maybe TyThing
- isBuiltInSyntax :: Name -> Bool
- isTupleTyConName :: Name -> Bool
- isSumTyConName :: Name -> Bool
- isUnboxedTupleDataConLikeName :: Name -> Bool
- isExternalName :: Name -> Bool
- isInternalName :: Name -> Bool
- isHoleName :: Name -> Bool
- isDynLinkName :: Platform -> Module -> Name -> Bool
- nameModule :: HasDebugCallStack => Name -> Module
- nameModule_maybe :: Name -> Maybe Module
- namePun_maybe :: Name -> Maybe FastString
- nameIsLocalOrFrom :: Module -> Name -> Bool
- nameIsExternalOrFrom :: Module -> Name -> Bool
- nameIsHomePackage :: Module -> Name -> Bool
- nameIsHomePackageImport :: Module -> Name -> Bool
- nameIsFromExternalPackage :: HomeUnit -> Name -> Bool
- isTyVarName :: Name -> Bool
- isTyConName :: Name -> Bool
- isDataConName :: Name -> Bool
- isValName :: Name -> Bool
- isVarName :: Name -> Bool
- isSystemName :: Name -> Bool
- mkInternalName :: Unique -> OccName -> SrcSpan -> Name
- mkClonedInternalName :: Unique -> Name -> Name
- mkDerivedInternalName :: (OccName -> OccName) -> Unique -> Name -> Name
- mkExternalName :: Unique -> Module -> OccName -> SrcSpan -> Name
- mkWiredInName :: Module -> OccName -> Unique -> TyThing -> BuiltInSyntax -> Name
- mkSystemName :: Unique -> OccName -> Name
- mkSystemNameAt :: Unique -> OccName -> SrcSpan -> Name
- mkSystemVarName :: Unique -> FastString -> Name
- mkSysTvName :: Unique -> FastString -> Name
- mkFCallName :: Unique -> FastString -> Name
- setNameLoc :: Name -> SrcSpan -> Name
- localiseName :: Name -> Name
- stableNameCmp :: Name -> Name -> Ordering
- pprName :: IsLine doc => Name -> doc
- pprFullName :: Module -> Name -> SDoc
- pprTickyName :: Module -> Name -> SDoc
- pprNameUnqualified :: Name -> SDoc
- pprModulePrefix :: PprStyle -> Module -> OccName -> SDoc
- pprDefinedAt :: Name -> SDoc
- pprNameDefnLoc :: Name -> SDoc
- nameStableString :: Name -> String
- getSrcLoc :: NamedThing a => a -> SrcLoc
- getSrcSpan :: NamedThing a => a -> SrcSpan
- getOccString :: NamedThing a => a -> String
- getOccFS :: NamedThing a => a -> FastString
- pprInfixName :: (Outputable a, NamedThing a) => a -> SDoc
- pprPrefixName :: NamedThing a => a -> SDoc
- module GHC.Types.Name.Set
- module GHC.Types.Name.Cache
- module GHC.Types.Name.Env
- data RdrName
- data RecFieldInfo = RecFieldInfo {}
- data ConLikeName
- = DataConName {
- conLikeName_Name :: !Name
- | PatSynName {
- conLikeName_Name :: !Name
- = DataConName {
- data GREInfo
- plusGREInfo :: GREInfo -> GREInfo -> GREInfo
- data ImpItemSpec
- data ImpDeclSpec = ImpDeclSpec {}
- data ImportSpec = ImpSpec {
- is_decl :: !ImpDeclSpec
- is_item :: !ImpItemSpec
- data LookupChild = LookupChild {}
- data WhichGREs info where
- SameNameSpace :: forall info. WhichGREs info
- RelevantGREs :: {..} -> WhichGREs GREInfo
- pattern RelevantGREsFOS :: FieldsOrSelectors -> WhichGREs GREInfo
- pattern AllRelevantGREs :: WhichGREs GREInfo
- data LookupGRE info where
- LookupOccName :: forall info. OccName -> WhichGREs info -> LookupGRE info
- LookupRdrName :: forall info. RdrName -> WhichGREs info -> LookupGRE info
- LookupExactName :: forall info. {..} -> LookupGRE info
- LookupChildren :: forall info. OccName -> LookupChild -> LookupGRE info
- data FieldsOrSelectors
- data Parent
- type FieldGlobalRdrElt = GlobalRdrElt
- data GlobalRdrEltX info
- type IfGlobalRdrElt = GlobalRdrEltX ()
- type GlobalRdrElt = GlobalRdrEltX GREInfo
- type GlobalRdrEnvX info = OccEnv [GlobalRdrEltX info]
- type IfGlobalRdrEnv = GlobalRdrEnvX ()
- type GlobalRdrEnv = GlobalRdrEnvX GREInfo
- data LocalRdrEnv
- rdrNameOcc :: RdrName -> OccName
- rdrNameSpace :: RdrName -> NameSpace
- demoteRdrName :: RdrName -> Maybe RdrName
- demoteRdrNameTv :: RdrName -> Maybe RdrName
- promoteRdrName :: RdrName -> Maybe RdrName
- mkRdrUnqual :: OccName -> RdrName
- mkRdrQual :: ModuleName -> OccName -> RdrName
- mkOrig :: Module -> OccName -> RdrName
- mkUnqual :: NameSpace -> FastString -> RdrName
- mkVarUnqual :: FastString -> RdrName
- mkQual :: NameSpace -> (FastString, FastString) -> RdrName
- getRdrName :: NamedThing thing => thing -> RdrName
- nameRdrName :: Name -> RdrName
- isRdrDataCon :: RdrName -> Bool
- isRdrTyVar :: RdrName -> Bool
- isRdrTc :: RdrName -> Bool
- isSrcRdrName :: RdrName -> Bool
- isUnqual :: RdrName -> Bool
- isQual :: RdrName -> Bool
- isQual_maybe :: RdrName -> Maybe (ModuleName, OccName)
- isOrig :: RdrName -> Bool
- isOrig_maybe :: RdrName -> Maybe (Module, OccName)
- isExact :: RdrName -> Bool
- isExact_maybe :: RdrName -> Maybe Name
- emptyLocalRdrEnv :: LocalRdrEnv
- extendLocalRdrEnv :: LocalRdrEnv -> Name -> LocalRdrEnv
- extendLocalRdrEnvList :: LocalRdrEnv -> [Name] -> LocalRdrEnv
- lookupLocalRdrEnv :: LocalRdrEnv -> RdrName -> Maybe Name
- lookupLocalRdrOcc :: LocalRdrEnv -> OccName -> Maybe Name
- elemLocalRdrEnv :: RdrName -> LocalRdrEnv -> Bool
- localRdrEnvElts :: LocalRdrEnv -> [Name]
- inLocalRdrEnvScope :: Name -> LocalRdrEnv -> Bool
- minusLocalRdrEnv :: LocalRdrEnv -> OccEnv a -> LocalRdrEnv
- minusLocalRdrEnvList :: LocalRdrEnv -> [OccName] -> LocalRdrEnv
- greName :: GlobalRdrEltX info -> Name
- greNameSpace :: GlobalRdrEltX info -> NameSpace
- greParent :: GlobalRdrEltX info -> Parent
- greInfo :: GlobalRdrElt -> GREInfo
- mkGRE :: (Name -> Maybe ImportSpec) -> GREInfo -> Parent -> Name -> GlobalRdrElt
- mkExactGRE :: Name -> GREInfo -> GlobalRdrElt
- mkLocalGRE :: GREInfo -> Parent -> Name -> GlobalRdrElt
- mkLocalVanillaGRE :: Parent -> Name -> GlobalRdrElt
- mkLocalTyConGRE :: TyConFlavour Name -> Name -> GlobalRdrElt
- mkLocalConLikeGRE :: Parent -> (ConLikeName, ConInfo) -> GlobalRdrElt
- mkLocalFieldGREs :: Parent -> [(ConLikeName, ConInfo)] -> [GlobalRdrElt]
- greOccName :: GlobalRdrEltX info -> OccName
- greDefinitionSrcSpan :: GlobalRdrEltX info -> SrcSpan
- greDefinitionModule :: GlobalRdrEltX info -> Maybe Module
- greQualModName :: Outputable info => GlobalRdrEltX info -> ModuleName
- greRdrNames :: GlobalRdrEltX info -> [RdrName]
- greSrcSpan :: Outputable info => GlobalRdrEltX info -> SrcSpan
- mkParent :: Name -> AvailInfo -> Parent
- availParent :: AvailInfo -> Parent
- greParent_maybe :: GlobalRdrEltX info -> Maybe Name
- gresToNameSet :: [GlobalRdrEltX info] -> NameSet
- gresToAvailInfo :: [GlobalRdrEltX info] -> [AvailInfo]
- availFromGRE :: GlobalRdrEltX info -> AvailInfo
- emptyGlobalRdrEnv :: GlobalRdrEnvX info
- globalRdrEnvElts :: GlobalRdrEnvX info -> [GlobalRdrEltX info]
- forceGlobalRdrEnv :: GlobalRdrEnvX info -> IfGlobalRdrEnv
- hydrateGlobalRdrEnv :: (Name -> IO info) -> GlobalRdrEnvX noInfo -> GlobalRdrEnvX info
- pprGlobalRdrEnv :: Bool -> GlobalRdrEnv -> SDoc
- fieldGRE_maybe :: GlobalRdrElt -> Maybe FieldGlobalRdrElt
- fieldGRELabel :: HasDebugCallStack => FieldGlobalRdrElt -> FieldLabel
- fieldGREInfo :: HasDebugCallStack => FieldGlobalRdrElt -> RecFieldInfo
- recFieldConLike_maybe :: HasDebugCallStack => GlobalRdrElt -> Maybe ConInfo
- recFieldInfo_maybe :: HasDebugCallStack => GlobalRdrElt -> Maybe RecFieldInfo
- filterFieldGREs :: FieldsOrSelectors -> [GlobalRdrElt] -> [GlobalRdrElt]
- allowGRE :: FieldsOrSelectors -> GlobalRdrElt -> Bool
- greIsRelevant :: WhichGREs GREInfo -> NameSpace -> GlobalRdrElt -> Bool
- lookupGRE :: GlobalRdrEnvX info -> LookupGRE info -> [GlobalRdrEltX info]
- lookupGRE_Name :: Outputable info => GlobalRdrEnvX info -> Name -> Maybe (GlobalRdrEltX info)
- lookupGRE_FieldLabel :: GlobalRdrEnv -> FieldLabel -> Maybe FieldGlobalRdrElt
- getGRE_NameQualifier_maybes :: GlobalRdrEnv -> Name -> [Maybe [ModuleName]]
- isLocalGRE :: GlobalRdrEltX info -> Bool
- isImportedGRE :: GlobalRdrEltX info -> Bool
- isRecFldGRE :: GlobalRdrEltX info -> Bool
- isDuplicateRecFldGRE :: GlobalRdrElt -> Bool
- isNoFieldSelectorGRE :: GlobalRdrElt -> Bool
- isFieldSelectorGRE :: GlobalRdrElt -> Bool
- greFieldLabel_maybe :: GlobalRdrElt -> Maybe FieldLabel
- unQualOK :: GlobalRdrEltX info -> Bool
- pickGREs :: RdrName -> [GlobalRdrEltX info] -> [GlobalRdrEltX info]
- pickGREsModExp :: ModuleName -> [GlobalRdrEltX info] -> [(GlobalRdrEltX info, GlobalRdrEltX info)]
- plusGlobalRdrEnv :: GlobalRdrEnv -> GlobalRdrEnv -> GlobalRdrEnv
- mkGlobalRdrEnv :: [GlobalRdrElt] -> GlobalRdrEnv
- insertGRE :: GlobalRdrElt -> [GlobalRdrElt] -> [GlobalRdrElt]
- plusGRE :: GlobalRdrElt -> GlobalRdrElt -> GlobalRdrElt
- transformGREs :: (GlobalRdrElt -> GlobalRdrElt) -> [OccName] -> GlobalRdrEnv -> GlobalRdrEnv
- extendGlobalRdrEnv :: GlobalRdrEnv -> GlobalRdrElt -> GlobalRdrEnv
- shadowNames :: Bool -> GlobalRdrEnv -> GlobalRdrEnv -> GlobalRdrEnv
- greClashesWith :: GlobalRdrElt -> GlobalRdrElt -> Bool
- bestImport :: NonEmpty ImportSpec -> ImportSpec
- unQualSpecOK :: ImportSpec -> Bool
- qualSpecOK :: ModuleName -> ImportSpec -> Bool
- importSpecLoc :: ImportSpec -> SrcSpan
- importSpecModule :: ImportSpec -> ModuleName
- isExplicitItem :: ImpItemSpec -> Bool
- pprNameProvenance :: GlobalRdrEltX info -> SDoc
- opIsAt :: RdrName -> Bool
- data Severity
- emptyMessages :: Messages e
- mkPlainErrorMsgEnvelope :: Diagnostic e => SrcSpan -> e -> MsgEnvelope e
- data HscSource where
- HsSrcFile
- HsBootOrSig !HsBootOrSig
- pattern HsigFile :: HscSource
- pattern HsBootFile :: HscSource
- module GHC.Types.SourceText
- module GHC.Types.TyThing
- module GHC.Types.TyThing.Ppr
- module GHC.Types.Unique.Supply
- data Var
- setVarUnique :: Var -> Unique -> Var
- setTyVarUnique :: TyVar -> Unique -> TyVar
- type Unit = GenUnit UnitId
- type Module = GenModule Unit
- data GenModule unit = Module !unit !ModuleName
- newtype ModuleName = ModuleName FastString
- stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering
- moduleNameFS :: ModuleName -> FastString
- moduleNameString :: ModuleName -> String
- mkModuleName :: String -> ModuleName
- mkModuleNameFS :: FastString -> ModuleName
- moduleNameSlashes :: ModuleName -> String
- moduleNameColons :: ModuleName -> String
- parseModuleName :: ReadP ModuleName
- data IsBootInterface
- data GenUnit uid
- = RealUnit !(Definite uid)
- | VirtUnit !(GenInstantiatedUnit uid)
- | HoleUnit
- type ModuleWithIsBoot = GenWithIsBoot Module
- type ModuleNameWithIsBoot = GenWithIsBoot ModuleName
- data GenWithIsBoot mod = GWIB {
- gwib_mod :: mod
- gwib_isBoot :: IsBootInterface
- newtype Definite unit = Definite {
- unDefinite :: unit
- type DefUnitId = Definite UnitId
- unitIdFS :: UnitId -> FastString
- type Instantiations = GenInstantiations UnitId
- type GenInstantiations unit = [(ModuleName, GenModule (GenUnit unit))]
- type InstantiatedUnit = GenInstantiatedUnit UnitId
- data GenInstantiatedUnit unit = InstantiatedUnit {
- instUnitFS :: !FastString
- instUnitKey :: !Unique
- instUnitInstanceOf :: !unit
- instUnitInsts :: !(GenInstantiations unit)
- instUnitHoles :: UniqDSet ModuleName
- newtype UnitKey = UnitKey FastString
- class IsUnitId u where
- unitFS :: u -> FastString
- type InstantiatedModule = GenModule InstantiatedUnit
- type HomeUnitModule = GenModule UnitId
- type InstalledModule = GenModule UnitId
- moduleUnitId :: Module -> UnitId
- mkModule :: u -> ModuleName -> GenModule u
- pprModule :: IsLine doc => Module -> doc
- pprInstantiatedModule :: InstantiatedModule -> SDoc
- isHoleUnit :: GenUnit u -> Bool
- stableUnitCmp :: Unit -> Unit -> Ordering
- pprUnit :: Unit -> SDoc
- unitFreeModuleHoles :: GenUnit u -> UniqDSet ModuleName
- moduleFreeHoles :: GenModule (GenUnit u) -> UniqDSet ModuleName
- mkInstantiatedUnit :: IsUnitId u => u -> GenInstantiations u -> GenInstantiatedUnit u
- mkVirtUnit :: IsUnitId u => u -> [(ModuleName, GenModule (GenUnit u))] -> GenUnit u
- mkInstantiatedUnitHash :: IsUnitId u => u -> [(ModuleName, GenModule (GenUnit u))] -> FastString
- fsToUnit :: FastString -> Unit
- unitString :: IsUnitId u => u -> String
- stringToUnit :: String -> Unit
- mapGenUnit :: IsUnitId v => (u -> v) -> GenUnit u -> GenUnit v
- mapInstantiations :: IsUnitId v => (u -> v) -> GenInstantiations u -> GenInstantiations v
- virtualUnitId :: InstantiatedUnit -> UnitId
- unitIsDefinite :: Unit -> Bool
- unitIdString :: UnitId -> String
- stringToUnitId :: String -> UnitId
- primUnitId :: UnitId
- bignumUnitId :: UnitId
- ghcInternalUnitId :: UnitId
- baseUnitId :: UnitId
- rtsUnitId :: UnitId
- thisGhcUnitId :: UnitId
- interactiveUnitId :: UnitId
- thUnitId :: UnitId
- thUnit :: Unit
- primUnit :: Unit
- bignumUnit :: Unit
- ghcInternalUnit :: Unit
- baseUnit :: Unit
- rtsUnit :: Unit
- thisGhcUnit :: Unit
- interactiveUnit :: Unit
- experimentalUnit :: Unit
- mainUnitId :: UnitId
- mainUnit :: Unit
- isInteractiveModule :: Module -> Bool
- wiredInUnitIds :: [UnitId]
- addBootSuffix :: FilePath -> FilePath
- removeBootSuffix :: FilePath -> FilePath
- addBootSuffix_maybe :: IsBootInterface -> FilePath -> FilePath
- addBootSuffixLocn_maybe :: IsBootInterface -> ModLocation -> ModLocation
- addBootSuffixLocn :: ModLocation -> ModLocation
- addBootSuffixLocnOut :: ModLocation -> ModLocation
- data InstalledModuleEnv elt
- type DModuleNameEnv elt = UniqDFM ModuleName elt
- type ModuleNameEnv elt = UniqFM ModuleName elt
- type ModuleSet = Set NDModule
- data ModuleEnv elt
- filterModuleEnv :: (Module -> a -> Bool) -> ModuleEnv a -> ModuleEnv a
- mapMaybeModuleEnv :: (Module -> a -> Maybe b) -> ModuleEnv a -> ModuleEnv b
- elemModuleEnv :: Module -> ModuleEnv a -> Bool
- extendModuleEnv :: ModuleEnv a -> Module -> a -> ModuleEnv a
- extendModuleEnvWith :: (a -> a -> a) -> ModuleEnv a -> Module -> a -> ModuleEnv a
- extendModuleEnvList :: ModuleEnv a -> [(Module, a)] -> ModuleEnv a
- extendModuleEnvList_C :: (a -> a -> a) -> ModuleEnv a -> [(Module, a)] -> ModuleEnv a
- plusModuleEnv_C :: (a -> a -> a) -> ModuleEnv a -> ModuleEnv a -> ModuleEnv a
- delModuleEnvList :: ModuleEnv a -> [Module] -> ModuleEnv a
- delModuleEnv :: ModuleEnv a -> Module -> ModuleEnv a
- plusModuleEnv :: ModuleEnv a -> ModuleEnv a -> ModuleEnv a
- lookupModuleEnv :: ModuleEnv a -> Module -> Maybe a
- lookupWithDefaultModuleEnv :: ModuleEnv a -> a -> Module -> a
- mapModuleEnv :: (a -> b) -> ModuleEnv a -> ModuleEnv b
- partitionModuleEnv :: (a -> Bool) -> ModuleEnv a -> (ModuleEnv a, ModuleEnv a)
- alterModuleEnv :: (Maybe a -> Maybe a) -> Module -> ModuleEnv a -> ModuleEnv a
- mkModuleEnv :: [(Module, a)] -> ModuleEnv a
- emptyModuleEnv :: ModuleEnv a
- moduleEnvKeys :: ModuleEnv a -> [Module]
- moduleEnvElts :: ModuleEnv a -> [a]
- moduleEnvToList :: ModuleEnv a -> [(Module, a)]
- unitModuleEnv :: Module -> a -> ModuleEnv a
- isEmptyModuleEnv :: ModuleEnv a -> Bool
- mkModuleSet :: [Module] -> ModuleSet
- extendModuleSet :: ModuleSet -> Module -> ModuleSet
- extendModuleSetList :: ModuleSet -> [Module] -> ModuleSet
- emptyModuleSet :: ModuleSet
- isEmptyModuleSet :: ModuleSet -> Bool
- moduleSetElts :: ModuleSet -> [Module]
- elemModuleSet :: Module -> ModuleSet -> Bool
- intersectModuleSet :: ModuleSet -> ModuleSet -> ModuleSet
- minusModuleSet :: ModuleSet -> ModuleSet -> ModuleSet
- delModuleSet :: ModuleSet -> Module -> ModuleSet
- unionModuleSet :: ModuleSet -> ModuleSet -> ModuleSet
- unionManyModuleSets :: [ModuleSet] -> ModuleSet
- unitModuleSet :: Module -> ModuleSet
- emptyInstalledModuleEnv :: InstalledModuleEnv a
- lookupInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> Maybe a
- extendInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> a -> InstalledModuleEnv a
- filterInstalledModuleEnv :: (InstalledModule -> a -> Bool) -> InstalledModuleEnv a -> InstalledModuleEnv a
- delInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> InstalledModuleEnv a
- installedModuleEnvElts :: InstalledModuleEnv a -> [(InstalledModule, a)]
- mergeInstalledModuleEnv :: (elta -> eltb -> Maybe eltc) -> (InstalledModuleEnv elta -> InstalledModuleEnv eltc) -> (InstalledModuleEnv eltb -> InstalledModuleEnv eltc) -> InstalledModuleEnv elta -> InstalledModuleEnv eltb -> InstalledModuleEnv eltc
- plusInstalledModuleEnv :: (elt -> elt -> elt) -> InstalledModuleEnv elt -> InstalledModuleEnv elt -> InstalledModuleEnv elt
- class HasModule (m :: Type -> Type) where
- class ContainsModule t where
- extractModule :: t -> Module
- moduleIsDefinite :: Module -> Bool
- moduleStableString :: Module -> String
- stableModuleCmp :: Module -> Module -> Ordering
- installedModuleEq :: InstalledModule -> Module -> Bool
- getModuleInstantiation :: Module -> (InstalledModule, Maybe InstantiatedModule)
- getUnitInstantiations :: Unit -> (UnitId, Maybe InstantiatedUnit)
- uninstantiateInstantiatedUnit :: InstantiatedUnit -> InstantiatedUnit
- uninstantiateInstantiatedModule :: InstantiatedModule -> InstantiatedModule
- isHoleModule :: GenModule (GenUnit u) -> Bool
- mkHoleModule :: ModuleName -> GenModule (GenUnit u)
- module GHC.Unit.Module.Graph
- data HsModule p
- = HsModule {
- hsmodExt :: XCModule p
- hsmodName :: Maybe (XRec p ModuleName)
- hsmodExports :: Maybe (XRec p [LIE p])
- hsmodImports :: [LImportDecl p]
- hsmodDecls :: [LHsDecl p]
- | XModule !(XXModule p)
- = HsModule {
- module GHC.Hs.Binds
- module GHC.Parser
- mkPrelImports :: ModuleName -> SrcSpan -> Bool -> [LImportDecl GhcPs] -> [LImportDecl GhcPs]
- getOptionsFromFile :: ParserOpts -> FilePath -> IO (Messages PsMessage, [Located String])
- getOptions :: ParserOpts -> StringBuffer -> FilePath -> (Messages PsMessage, [Located String])
- toArgs :: RealSrcLoc -> String -> Either String [Located String]
- checkProcessArgsResult :: MonadIO m => [Located String] -> m ()
- data Token
- = ITas
- | ITcase
- | ITclass
- | ITdata
- | ITdefault
- | ITderiving
- | ITdo (Maybe FastString)
- | ITelse
- | IThiding
- | ITforeign
- | ITif
- | ITimport
- | ITin
- | ITinfix
- | ITinfixl
- | ITinfixr
- | ITinstance
- | ITlet
- | ITmodule
- | ITnewtype
- | ITof
- | ITqualified
- | ITthen
- | ITtype
- | ITwhere
- | ITforall IsUnicodeSyntax
- | ITexport
- | ITlabel
- | ITdynamic
- | ITsafe
- | ITinterruptible
- | ITunsafe
- | ITstdcallconv
- | ITccallconv
- | ITcapiconv
- | ITprimcallconv
- | ITjavascriptcallconv
- | ITmdo (Maybe FastString)
- | ITfamily
- | ITrole
- | ITgroup
- | ITby
- | ITusing
- | ITpattern
- | ITstatic
- | ITstock
- | ITanyclass
- | ITvia
- | ITunit
- | ITsignature
- | ITdependency
- | ITrequires
- | ITinline_prag SourceText InlineSpec RuleMatchInfo
- | ITopaque_prag SourceText
- | ITspec_prag SourceText
- | ITspec_inline_prag SourceText Bool
- | ITsource_prag SourceText
- | ITrules_prag SourceText
- | ITwarning_prag SourceText
- | ITdeprecated_prag SourceText
- | ITline_prag SourceText
- | ITcolumn_prag SourceText
- | ITscc_prag SourceText
- | ITunpack_prag SourceText
- | ITnounpack_prag SourceText
- | ITann_prag SourceText
- | ITcomplete_prag SourceText
- | ITclose_prag
- | IToptions_prag String
- | ITinclude_prag String
- | ITlanguage_prag
- | ITminimal_prag SourceText
- | IToverlappable_prag SourceText
- | IToverlapping_prag SourceText
- | IToverlaps_prag SourceText
- | ITincoherent_prag SourceText
- | ITctype SourceText
- | ITcomment_line_prag
- | ITdotdot
- | ITcolon
- | ITdcolon IsUnicodeSyntax
- | ITequal
- | ITlam
- | ITlcase
- | ITlcases
- | ITvbar
- | ITlarrow IsUnicodeSyntax
- | ITrarrow IsUnicodeSyntax
- | ITdarrow IsUnicodeSyntax
- | ITlolly
- | ITminus
- | ITprefixminus
- | ITbang
- | ITtilde
- | ITat
- | ITtypeApp
- | ITpercent
- | ITstar IsUnicodeSyntax
- | ITdot
- | ITproj Bool
- | ITbiglam
- | ITocurly
- | ITccurly
- | ITvocurly
- | ITvccurly
- | ITobrack
- | ITopabrack
- | ITcpabrack
- | ITcbrack
- | IToparen
- | ITcparen
- | IToubxparen
- | ITcubxparen
- | ITsemi
- | ITcomma
- | ITunderscore
- | ITbackquote
- | ITsimpleQuote
- | ITvarid FastString
- | ITconid FastString
- | ITvarsym FastString
- | ITconsym FastString
- | ITqvarid (FastString, FastString)
- | ITqconid (FastString, FastString)
- | ITqvarsym (FastString, FastString)
- | ITqconsym (FastString, FastString)
- | ITdupipvarid FastString
- | ITlabelvarid SourceText FastString
- | ITchar SourceText Char
- | ITstring SourceText FastString
- | ITinteger IntegralLit
- | ITrational FractionalLit
- | ITprimchar SourceText Char
- | ITprimstring SourceText ByteString
- | ITprimint SourceText Integer
- | ITprimword SourceText Integer
- | ITprimint8 SourceText Integer
- | ITprimint16 SourceText Integer
- | ITprimint32 SourceText Integer
- | ITprimint64 SourceText Integer
- | ITprimword8 SourceText Integer
- | ITprimword16 SourceText Integer
- | ITprimword32 SourceText Integer
- | ITprimword64 SourceText Integer
- | ITprimfloat FractionalLit
- | ITprimdouble FractionalLit
- | ITopenExpQuote HasE IsUnicodeSyntax
- | ITopenPatQuote
- | ITopenDecQuote
- | ITopenTypQuote
- | ITcloseQuote IsUnicodeSyntax
- | ITopenTExpQuote HasE
- | ITcloseTExpQuote
- | ITdollar
- | ITdollardollar
- | ITtyQuote
- | ITquasiQuote (FastString, FastString, PsSpan)
- | ITqQuasiQuote (FastString, FastString, FastString, PsSpan)
- | ITproc
- | ITrec
- | IToparenbar IsUnicodeSyntax
- | ITcparenbar IsUnicodeSyntax
- | ITlarrowtail IsUnicodeSyntax
- | ITrarrowtail IsUnicodeSyntax
- | ITLarrowtail IsUnicodeSyntax
- | ITRarrowtail IsUnicodeSyntax
- | ITunknown String
- | ITeof
- | ITdocComment HsDocString PsSpan
- | ITdocOptions String PsSpan
- | ITlineComment String PsSpan
- | ITblockComment String PsSpan
- data PState = PState {
- buffer :: StringBuffer
- options :: ParserOpts
- warnings :: Messages PsMessage
- errors :: Messages PsMessage
- tab_first :: Maybe RealSrcSpan
- tab_count :: !Word
- last_tk :: Maybe (PsLocated Token)
- prev_loc :: PsSpan
- last_loc :: PsSpan
- last_len :: !Int
- loc :: PsLoc
- context :: [LayoutContext]
- lex_state :: [Int]
- srcfiles :: [FastString]
- alr_pending_implicit_tokens :: [PsLocated Token]
- alr_next_token :: Maybe (PsLocated Token)
- alr_last_loc :: PsSpan
- alr_context :: [ALRContext]
- alr_expecting_ocurly :: Maybe ALRLayout
- alr_justClosedExplicitLetBlock :: Bool
- eof_pos :: Maybe (Pair RealSrcSpan RealSrcSpan)
- header_comments :: Maybe [LEpaComment]
- comment_q :: [LEpaComment]
- hdk_comments :: OrdList (PsLocated HdkComment)
- newtype P a = P {
- unP :: PState -> ParseResult a
- class Monad m => MonadP (m :: Type -> Type) where
- addError :: MsgEnvelope PsMessage -> m ()
- addWarning :: MsgEnvelope PsMessage -> m ()
- addFatalError :: MsgEnvelope PsMessage -> m a
- getBit :: ExtBits -> m Bool
- allocateCommentsP :: RealSrcSpan -> m EpAnnComments
- allocatePriorCommentsP :: RealSrcSpan -> m EpAnnComments
- allocateFinalCommentsP :: RealSrcSpan -> m EpAnnComments
- data ExtBits
- = FfiBit
- | InterruptibleFfiBit
- | CApiFfiBit
- | ArrowsBit
- | ThBit
- | ThQuotesBit
- | IpBit
- | OverloadedLabelsBit
- | ExplicitForallBit
- | BangPatBit
- | PatternSynonymsBit
- | HaddockBit
- | MagicHashBit
- | RecursiveDoBit
- | QualifiedDoBit
- | UnicodeSyntaxBit
- | UnboxedParensBit
- | DatatypeContextsBit
- | MonadComprehensionsBit
- | TransformComprehensionsBit
- | QqBit
- | RawTokenStreamBit
- | AlternativeLayoutRuleBit
- | ALRTransitionalBit
- | RelaxedLayoutBit
- | NondecreasingIndentationBit
- | SafeHaskellBit
- | TraditionalRecordSyntaxBit
- | ExplicitNamespacesBit
- | LambdaCaseBit
- | BinaryLiteralsBit
- | NegativeLiteralsBit
- | HexFloatLiteralsBit
- | StaticPointersBit
- | NumericUnderscoresBit
- | StarIsTypeBit
- | BlockArgumentsBit
- | NPlusKPatternsBit
- | DoAndIfThenElseBit
- | MultiWayIfBit
- | GadtSyntaxBit
- | ImportQualifiedPostBit
- | LinearTypesBit
- | NoLexicalNegationBit
- | OverloadedRecordDotBit
- | OverloadedRecordUpdateBit
- | ExtendedLiteralsBit
- | ListTuplePunsBit
- | InRulePragBit
- | InNestedCommentBit
- | UsePosPragsBit
- data HdkComment
- data ParserOpts = ParserOpts {
- pExtsBitmap :: !ExtsBitmap
- pDiagOpts :: !DiagOpts
- pSupportedExts :: [String]
- data ParseResult a :: TYPE ('SumRep '['TupleRep '[LiftedRep, LiftedRep], LiftedRep]) where
- pattern PFailed :: PState -> ParseResult a
- pattern POk :: PState -> a -> ParseResult a
- warnopt :: WarningFlag -> ParserOpts -> Bool
- failMsgP :: (SrcSpan -> MsgEnvelope PsMessage) -> P a
- failLocMsgP :: RealSrcLoc -> RealSrcLoc -> (SrcSpan -> MsgEnvelope PsMessage) -> P a
- getPState :: P PState
- setSrcLoc :: RealSrcLoc -> P ()
- getRealSrcLoc :: P RealSrcLoc
- setLastToken :: PsSpan -> Int -> P ()
- adjustChar :: Char -> Word8
- nextIsEOF :: P Bool
- pushLexState :: Int -> P ()
- popLexState :: P Int
- getLexState :: P Int
- activeContext :: P Bool
- xtest :: ExtBits -> ExtsBitmap -> Bool
- xset :: ExtBits -> ExtsBitmap -> ExtsBitmap
- xunset :: ExtBits -> ExtsBitmap -> ExtsBitmap
- mkParserOpts :: EnumSet Extension -> DiagOpts -> [String] -> Bool -> Bool -> Bool -> Bool -> ParserOpts
- disableHaddock :: ParserOpts -> ParserOpts
- initPragState :: ParserOpts -> StringBuffer -> RealSrcLoc -> PState
- getCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments
- getPriorCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments
- getFinalCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments
- getEofPos :: P (Maybe (Pair RealSrcSpan RealSrcSpan))
- addPsMessage :: SrcSpan -> PsMessage -> P ()
- getPsErrorMessages :: PState -> Messages PsMessage
- popContext :: P ()
- pushModuleContext :: P ()
- srcParseFail :: P a
- lexer :: Bool -> (Located Token -> P a) -> P a
- lexerDbg :: Bool -> (Located Token -> P a) -> P a
- lexTokenStream :: ParserOpts -> StringBuffer -> RealSrcLoc -> ParseResult [Located Token]
- mkParensEpAnn :: RealSrcSpan -> (AddEpAnn, AddEpAnn)
- allocateComments :: RealSrcSpan -> [LEpaComment] -> ([LEpaComment], [LEpaComment])
- allocatePriorComments :: RealSrcSpan -> [LEpaComment] -> Maybe [LEpaComment] -> (Maybe [LEpaComment], [LEpaComment], [LEpaComment])
- allocateFinalComments :: RealSrcSpan -> [LEpaComment] -> Maybe [LEpaComment] -> (Maybe [LEpaComment], [LEpaComment], [LEpaComment])
- commentToAnnotation :: RealLocated Token -> LEpaComment
- module GHC.Utils.Panic
- data CompileReason
- hsc_type_env_vars :: HscEnv -> KnotVars (IORef TypeEnv)
- hscUpdateHUG :: (HomeUnitGraph -> HomeUnitGraph) -> HscEnv -> HscEnv
- hsc_HUG :: HscEnv -> HomeUnitGraph
- data GhcMessage where
- getKey :: Unique -> Word64
- module GHC.Driver.Env.KnotVars
- module GHC.Linker.Types
- module GHC.Types.Unique.Map
- module GHC.Utils.TmpFs
- module GHC.Unit.Finder.Types
- module GHC.Unit.Env
- module GHC.Driver.Phases
- data Extension
- = OverlappingInstances
- | UndecidableInstances
- | IncoherentInstances
- | UndecidableSuperClasses
- | MonomorphismRestriction
- | MonoLocalBinds
- | DeepSubsumption
- | RelaxedPolyRec
- | ExtendedDefaultRules
- | ForeignFunctionInterface
- | UnliftedFFITypes
- | InterruptibleFFI
- | CApiFFI
- | GHCForeignImportPrim
- | JavaScriptFFI
- | ParallelArrays
- | Arrows
- | TemplateHaskell
- | TemplateHaskellQuotes
- | QualifiedDo
- | QuasiQuotes
- | ImplicitParams
- | ImplicitPrelude
- | ScopedTypeVariables
- | AllowAmbiguousTypes
- | UnboxedTuples
- | UnboxedSums
- | UnliftedNewtypes
- | UnliftedDatatypes
- | BangPatterns
- | TypeFamilies
- | TypeFamilyDependencies
- | TypeInType
- | OverloadedStrings
- | OverloadedLists
- | NumDecimals
- | DisambiguateRecordFields
- | RecordWildCards
- | NamedFieldPuns
- | ViewPatterns
- | GADTs
- | GADTSyntax
- | NPlusKPatterns
- | DoAndIfThenElse
- | BlockArguments
- | RebindableSyntax
- | ConstraintKinds
- | PolyKinds
- | DataKinds
- | TypeData
- | InstanceSigs
- | ApplicativeDo
- | LinearTypes
- | RequiredTypeArguments
- | StandaloneDeriving
- | DeriveDataTypeable
- | AutoDeriveTypeable
- | DeriveFunctor
- | DeriveTraversable
- | DeriveFoldable
- | DeriveGeneric
- | DefaultSignatures
- | DeriveAnyClass
- | DeriveLift
- | DerivingStrategies
- | DerivingVia
- | TypeSynonymInstances
- | FlexibleContexts
- | FlexibleInstances
- | ConstrainedClassMethods
- | MultiParamTypeClasses
- | NullaryTypeClasses
- | FunctionalDependencies
- | UnicodeSyntax
- | ExistentialQuantification
- | MagicHash
- | EmptyDataDecls
- | KindSignatures
- | RoleAnnotations
- | ParallelListComp
- | TransformListComp
- | MonadComprehensions
- | GeneralizedNewtypeDeriving
- | RecursiveDo
- | PostfixOperators
- | TupleSections
- | PatternGuards
- | LiberalTypeSynonyms
- | RankNTypes
- | ImpredicativeTypes
- | TypeOperators
- | ExplicitNamespaces
- | PackageImports
- | ExplicitForAll
- | AlternativeLayoutRule
- | AlternativeLayoutRuleTransitional
- | DatatypeContexts
- | NondecreasingIndentation
- | RelaxedLayout
- | TraditionalRecordSyntax
- | LambdaCase
- | MultiWayIf
- | BinaryLiterals
- | NegativeLiterals
- | HexFloatLiterals
- | DuplicateRecordFields
- | OverloadedLabels
- | EmptyCase
- | PatternSynonyms
- | PartialTypeSignatures
- | NamedWildCards
- | StaticPointers
- | TypeApplications
- | Strict
- | StrictData
- | EmptyDataDeriving
- | NumericUnderscores
- | QuantifiedConstraints
- | StarIsType
- | ImportQualifiedPost
- | CUSKs
- | StandaloneKindSignatures
- | LexicalNegation
- | FieldSelectors
- | OverloadedRecordDot
- | OverloadedRecordUpdate
- | TypeAbstractions
- | ExtendedLiterals
- | ListTuplePuns
- mkCgInteractiveGuts :: CgGuts -> CgInteractiveGuts
- justBytecode :: Linkable -> HomeModLinkable
- justObjects :: Linkable -> HomeModLinkable
- emptyHomeModInfoLinkable :: HomeModLinkable
- homeModInfoByteCode :: HomeModInfo -> Maybe Linkable
- homeModInfoObject :: HomeModInfo -> Maybe Linkable
- groupOrigin :: MatchGroup GhcRn body -> Origin
- isVisibleFunArg :: FunTyFlag -> Bool
- lookupGlobalRdrEnv :: GlobalRdrEnvX GREInfo -> OccName -> [GlobalRdrEltX GREInfo]
Session
Contains not only a collection of GeneralFlags but also a plethora of
information relating to the compilation of a single file or GHC session
extensions :: DynFlags -> [OnOff Extension] #
extensionFlags :: DynFlags -> EnumSet Extension #
targetPlatform :: DynFlags -> Platform #
packageFlags :: DynFlags -> [PackageFlag] #
The -package and -hide-package flags from the command-line.
In *reverse* order that they're specified on the command line.
generalFlags :: DynFlags -> EnumSet GeneralFlag #
warningFlags :: DynFlags -> EnumSet WarningFlag #
importPaths :: DynFlags -> [FilePath] #
useColor :: DynFlags -> OverridingBool #
canUseColor :: DynFlags -> Bool #
useUnicode :: DynFlags -> Bool #
flagsForCompletion :: Bool -> [String] #
Make a list of flags for shell completion. Filter all available flags into two groups, for interactive GHC vs all other.
setImportPaths :: [FilePath] -> DynFlags -> DynFlags #
outputFile :: DynFlags -> Maybe String #
pluginModNames :: DynFlags -> [ModuleName] #
the -fplugin flags given on the command line, in *reverse*
order that they're specified on the command line.
refLevelHoleFits :: DynFlags -> Maybe Int #
Maximum level of refinement for refinement hole fits in typed hole error messages
maxRefHoleFits :: DynFlags -> Maybe Int #
Maximum number of refinement hole fits to show in typed hole error messages
maxValidHoleFits :: DynFlags -> Maybe Int #
Maximum number of hole fits to show in typed hole error messages
lookupType :: HscEnv -> Name -> IO (Maybe TyThing) #
Find the TyThing for the given Name by using all the resources
at our disposal: the compiled modules in the HomePackageTable and the
compiled modules in other packages that live in PackageTypeEnv. Note
that this does NOT look up the TyThing in the module being compiled: you
have to do that yourself, if desired
needWiredInHomeIface :: TyThing -> Bool #
loadWiredInHomeIface :: Name -> IfM lcl () #
An IfM function to load the home interface for a wired-in thing,
so that we're sure that we see its instance declarations and rules
See Note [Loading instances for wired-in things]
readIface :: DynFlags -> NameCache -> Module -> FilePath -> IO (MaybeErr ReadInterfaceError ModIface) #
loadSysInterface :: SDoc -> Module -> IfM lcl ModIface #
Loads a system interface and throws an exception if it fails
importDecl :: Name -> IfM lcl (MaybeErr IfaceMessage TyThing) #
type CommandLineOption = String #
Command line options gathered from the -PModule.Name:stuff syntax are given to you as this type
gopt :: GeneralFlag -> DynFlags -> Bool #
Test whether a GeneralFlag is set
Note that dynamicNow (i.e., dynamic objects built with `-dynamic-too`)
always implicitly enables Opt_PIC, Opt_ExternalDynamicRefs, and disables
Opt_SplitSections.
gopt_set :: DynFlags -> GeneralFlag -> DynFlags #
Set a GeneralFlag
gopt_unset :: DynFlags -> GeneralFlag -> DynFlags #
Unset a GeneralFlag
wopt :: WarningFlag -> DynFlags -> Bool #
Test whether a WarningFlag is set
wopt_set :: DynFlags -> WarningFlag -> DynFlags #
Set a WarningFlag
Constructors
| FlagSpec | |
Fields
| |
data WarningFlag #
Constructors
Instances
data GeneralFlag #
Enumerates the simple on-or-off dynamic flags
Constructors
Instances
| Enum GeneralFlag | |
Defined in GHC.Driver.Flags Methods succ :: GeneralFlag -> GeneralFlag # pred :: GeneralFlag -> GeneralFlag # toEnum :: Int -> GeneralFlag # fromEnum :: GeneralFlag -> Int # enumFrom :: GeneralFlag -> [GeneralFlag] # enumFromThen :: GeneralFlag -> GeneralFlag -> [GeneralFlag] # enumFromTo :: GeneralFlag -> GeneralFlag -> [GeneralFlag] # enumFromThenTo :: GeneralFlag -> GeneralFlag -> GeneralFlag -> [GeneralFlag] # | |
| Show GeneralFlag | |
Defined in GHC.Driver.Flags Methods showsPrec :: Int -> GeneralFlag -> ShowS # show :: GeneralFlag -> String # showList :: [GeneralFlag] -> ShowS # | |
| Eq GeneralFlag | |
Defined in GHC.Driver.Flags | |
data PackageFlag #
Flags for manipulating packages visibility.
Instances
| Outputable PackageFlag | |
Defined in GHC.Driver.DynFlags Methods ppr :: PackageFlag -> SDoc # | |
| Show PackageFlag # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> PackageFlag -> ShowS # show :: PackageFlag -> String # showList :: [PackageFlag] -> ShowS # | |
| Eq PackageFlag | |
Defined in GHC.Driver.DynFlags | |
data PackageArg #
We accept flags which make packages visible, but how they select the package varies; this data type reflects what selection criterion is used.
Constructors
| PackageArg String |
|
| UnitIdArg Unit |
|
Instances
| Outputable PackageArg | |
Defined in GHC.Driver.DynFlags Methods ppr :: PackageArg -> SDoc # | |
| Show PackageArg | |
Defined in GHC.Driver.DynFlags Methods showsPrec :: Int -> PackageArg -> ShowS # show :: PackageArg -> String # showList :: [PackageArg] -> ShowS # | |
| Eq PackageArg | |
Defined in GHC.Driver.DynFlags | |
data ModRenaming #
Represents the renaming that may be associated with an exposed
package, e.g. the rns part of -package "foo (rns)".
Here are some example parsings of the package flags (where
a string literal is punned to be a ModuleName:
Constructors
| ModRenaming | |
Fields
| |
Instances
| Outputable ModRenaming | |
Defined in GHC.Driver.DynFlags Methods ppr :: ModRenaming -> SDoc # | |
| Eq ModRenaming | |
Defined in GHC.Driver.DynFlags | |
pattern ExposePackage :: String -> PackageArg -> ModRenaming -> PackageFlag #
Arguments
| :: MonadIO m | |
| => DynFlags | |
| -> [Located String] | |
| -> m (DynFlags, [Located String], Messages DriverMessage) | Updated |
Parse dynamic flags from a list of command line arguments. Returns
the parsed DynFlags, the left-over arguments, and a list of warnings.
Throws a UsageError if errors occurred during parsing (such as unknown
flags or missing arguments).
Arguments
| :: MonadIO m | |
| => DynFlags | |
| -> [Located String] | |
| -> m (DynFlags, [Located String], Messages DriverMessage) | Updated |
Like parseDynamicFlagsCmdLine but does not allow the package flags
(-package, -hide-package, -ignore-package, -hide-all-packages, -package-db).
Used to parse flags set in a modules pragma.
wWarningFlags :: [FlagSpec WarningFlag] #
These -W<blah> flags can all be reversed with -Wno-<blah>
updOptLevel :: Int -> DynFlags -> DynFlags #
Sets the DynFlags to be appropriate to the optimisation level
setUnsafeGlobalDynFlags :: DynFlags -> IO () #
Linear Haskell
scaledThing :: Scaled a -> a #
Interface Files
type IfaceExport = AvailInfo #
The original names declared of a certain module that are exported
data IfaceTyCon #
Constructors
| IfaceTyCon | |
Fields | |
Instances
| NFData IfaceTyCon | |
Defined in GHC.Iface.Type Methods rnf :: IfaceTyCon -> () # | |
| Binary IfaceTyCon | |
Defined in GHC.Iface.Type Methods put_ :: BinHandle -> IfaceTyCon -> IO () # put :: BinHandle -> IfaceTyCon -> IO (Bin IfaceTyCon) # get :: BinHandle -> IO IfaceTyCon # | |
| Outputable IfaceTyCon | |
Defined in GHC.Iface.Type Methods ppr :: IfaceTyCon -> SDoc # | |
| Eq IfaceTyCon | |
Defined in GHC.Iface.Type | |
data ModIface_ (phase :: ModIfacePhase) #
A ModIface plus a ModDetails summarises everything we know
about a compiled module. The ModIface is the stuff *before* linking,
and can be written out to an interface file. The 'ModDetails is after
linking and can be completely recovered from just the ModIface.
When we read an interface file, we also construct a ModIface from it,
except that we explicitly make the mi_decls and a few other fields empty;
as when reading we consolidate the declarations etc. into a number of indexed
maps and environments in the ExternalPackageState.
See Note [Strictness in ModIface] to learn about why some fields are strict and others are not.
Constructors
| ModIface | |
Fields
| |
Instances
| Binary ModIface | |
| (NFData (IfaceBackendExts phase), NFData (IfaceDeclExts phase)) => NFData (ModIface_ phase) | |
Defined in GHC.Unit.Module.ModIface | |
Constructors
| HsSrcFile | .hs file |
| HsBootOrSig !HsBootOrSig | .hs-boot or .hsig file |
Bundled Patterns
| pattern HsigFile :: HscSource | |
| pattern HsBootFile :: HscSource |
Instances
| Binary HscSource | |
| Show HscSource | |
| Eq HscSource | |
| Ord HscSource | |
Reason for loading an interface file
Used to figure out whether we want to consider loading hi-boot files or not.
Constructors
| ImportByUser IsBootInterface | |
| ImportBySystem | |
| ImportByPlugin |
Instances
| Outputable WhereFrom | |
Defined in GHC.Iface.Load | |
loadInterface :: SDoc -> Module -> WhereFrom -> IfM lcl (MaybeErr MissingInterfaceError ModIface) #
loadModuleInterface :: SDoc -> Module -> TcM ModIface #
Load interface directly for a fully qualified Module. (This is a fairly
rare operation, but in particular it is used to load orphan modules
in order to pull their instances into the global package table and to
handle some operations in GHCi).
data RecompileRequired #
Constructors
| UpToDate | everything is up to date, recompilation is not required |
| NeedsRecompile !CompileReason | Need to compile the module |
Instances
| Outputable RecompileRequired | |
Defined in GHC.Iface.Recomp Methods ppr :: RecompileRequired -> SDoc # | |
| Monoid RecompileRequired | |
Defined in GHC.Iface.Recomp Methods mappend :: RecompileRequired -> RecompileRequired -> RecompileRequired # mconcat :: [RecompileRequired] -> RecompileRequired # | |
| Semigroup RecompileRequired | |
Defined in GHC.Iface.Recomp Methods (<>) :: RecompileRequired -> RecompileRequired -> RecompileRequired # sconcat :: NonEmpty RecompileRequired -> RecompileRequired # stimes :: Integral b => b -> RecompileRequired -> RecompileRequired # | |
| Eq RecompileRequired | |
Defined in GHC.Iface.Recomp Methods (==) :: RecompileRequired -> RecompileRequired -> Bool # (/=) :: RecompileRequired -> RecompileRequired -> Bool # | |
mkPartialIface :: HscEnv -> CoreProgram -> ModDetails -> ModSummary -> ModGuts -> PartialModIface #
mkFullIface :: HscEnv -> PartialModIface -> Maybe StgCgInfos -> Maybe CmmCgInfos -> IO ModIface #
Fully instantiate an interface. Adds fingerprints and potentially code generator produced information.
CmmCgInfos is not available when not generating code (-fno-code), or when not generating interface pragmas (-fomit-interface-pragmas). See also Note [Conveying CAF-info and LFInfo between modules] in GHC.StgToCmm.Types.
data IsBootInterface #
Indicates whether a module name is referring to a boot interface (hs-boot file) or regular module (hs file). We need to treat boot modules specially when building compilation graphs, since they break cycles. Regular source files and signature files are treated equivalently.
Instances
Fixity
data LexicalFixity #
Captures the fixity of declarations as they are parsed. This is not necessarily the same as the fixity declaration, as the normal fixity may be overridden using parens or backticks.
Instances
| Outputable LexicalFixity | |
Defined in GHC.Types.Fixity Methods ppr :: LexicalFixity -> SDoc # | |
| Data LexicalFixity | |
Defined in GHC.Types.Fixity Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LexicalFixity -> c LexicalFixity # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LexicalFixity # toConstr :: LexicalFixity -> Constr # dataTypeOf :: LexicalFixity -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LexicalFixity) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LexicalFixity) # gmapT :: (forall b. Data b => b -> b) -> LexicalFixity -> LexicalFixity # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LexicalFixity -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LexicalFixity -> r # gmapQ :: (forall d. Data d => d -> u) -> LexicalFixity -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> LexicalFixity -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LexicalFixity -> m LexicalFixity # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LexicalFixity -> m LexicalFixity # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LexicalFixity -> m LexicalFixity # | |
| Eq LexicalFixity | |
Defined in GHC.Types.Fixity Methods (==) :: LexicalFixity -> LexicalFixity -> Bool # (/=) :: LexicalFixity -> LexicalFixity -> Bool # | |
Constructors
| Fixity SourceText Int FixityDirection |
Instances
| Binary Fixity | |
| Outputable Fixity | |
Defined in GHC.Types.Fixity | |
| Data Fixity | |
Defined in GHC.Types.Fixity Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Fixity -> c Fixity # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Fixity # toConstr :: Fixity -> Constr # dataTypeOf :: Fixity -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Fixity) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Fixity) # gmapT :: (forall b. Data b => b -> b) -> Fixity -> Fixity # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r # gmapQ :: (forall d. Data d => d -> u) -> Fixity -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Fixity -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity # | |
| Eq Fixity | |
mi_fix :: ModIface -> OccName -> Fixity #
Lookups up a (possibly cached) fixity from a ModIface. If one cannot be
found, defaultFixity is returned instead.
defaultFixity :: Fixity #
lookupFixityRn :: Name -> RnM Fixity #
ModSummary
data ModSummary #
Data for a module node in a ModuleGraph. Module nodes of the module graph
are one of:
- A regular Haskell source module
- A hi-boot source module
Constructors
| ModSummary | |
Fields
| |
Instances
| NFData ModSummary # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: ModSummary -> () # | |
| Outputable ModSummary | |
Defined in GHC.Unit.Module.ModSummary Methods ppr :: ModSummary -> SDoc # | |
| Show ModSummary # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> ModSummary -> ShowS # show :: ModSummary -> String # showList :: [ModSummary] -> ShowS # | |
HomeModInfo
data HomeModInfo #
Information about modules in the package being compiled
Constructors
| HomeModInfo | |
Fields
| |
Instances
| NFData HomeModInfo # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: HomeModInfo -> () # | |
| Show HomeModInfo # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> HomeModInfo -> ShowS # show :: HomeModInfo -> String # showList :: [HomeModInfo] -> ShowS # | |
ModGuts
A ModGuts is carried through the compiler, accumulating stuff as it goes
There is only one ModGuts at any time, the one for the module
being compiled right now. Once it is compiled, a ModIface and
ModDetails are extracted and the ModGuts is discarded.
Constructors
| ModGuts | |
Fields
| |
A restricted form of ModGuts for code generation purposes
Constructors
| CgGuts | |
Fields
| |
ModDetails
data ModDetails #
The ModDetails is essentially a cache for information in the ModIface
for home modules only. Information relating to packages will be loaded into
global environments in ExternalPackageState.
Constructors
| ModDetails | |
Fields
| |
Instances
| NFData ModDetails # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: ModDetails -> () # | |
| Show ModDetails # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> ModDetails -> ShowS # show :: ModDetails -> String # showList :: [ModDetails] -> ShowS # | |
HsExpr,
Var
Constructors
| TyVarTy Var | Vanilla type or kind variable (*never* a coercion variable) |
| AppTy Type Type | Type application to something other than a 1) Function: must not be a 2) Argument type |
| TyConApp TyCon [KindOrType] | Application of a 1) Type constructor being applied to. 2) Type arguments. Might not have enough type arguments here to saturate the constructor. Even type synonyms are not necessarily saturated; for example unsaturated type synonyms can appear as the right hand side of a type synonym. |
| ForAllTy !ForAllTyBinder Type | A Π type. See Note [Why ForAllTy can quantify over a coercion variable] INVARIANT: If the binder is a coercion variable, it must be mentioned in the Type. See Note [Unused coercion variable in ForAllTy] |
| LitTy TyLit | Type literals are similar to type constructors. |
| CastTy Type KindCoercion | A kind cast. The coercion is always nominal. INVARIANT: The cast is never reflexive (EQ2) INVARIANT: The Type is not a CastTy (use TransCo instead) (EQ3) INVARIANT: The Type is not a ForAllTy over a tyvar (EQ4) See Note [Respecting definitional equality] |
| CoercionTy Coercion | Injection of a Coercion into a type This should only ever be used in the RHS of an AppTy, in the list of a TyConApp, when applying a promoted GADT data constructor |
Instances
| NFData Type # | |
Defined in Development.IDE.GHC.Orphans | |
| Outputable Type | |
Defined in GHC.Core.TyCo.Rep | |
| Data Type | |
Defined in GHC.Core.TyCo.Rep Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type -> c Type # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Type # dataTypeOf :: Type -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Type) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Type) # gmapT :: (forall b. Data b => b -> b) -> Type -> Type # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQ :: (forall d. Data d => d -> u) -> Type -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Type -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # | |
| Eq (DeBruijn Type) | |
conPatDetails :: Pat p -> Maybe (HsConPatDetails p) #
mapConPatDetail :: (HsConPatDetails p -> Maybe (HsConPatDetails p)) -> Pat p -> Maybe (Pat p) #
Specs
data ImpDeclSpec #
Import Declaration Specification
Describes a particular import declaration and is
shared among all the Provenances for that decl
Constructors
| ImpDeclSpec | |
Fields
| |
Instances
| Data ImpDeclSpec | |
Defined in GHC.Types.Name.Reader Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImpDeclSpec -> c ImpDeclSpec # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ImpDeclSpec # toConstr :: ImpDeclSpec -> Constr # dataTypeOf :: ImpDeclSpec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ImpDeclSpec) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ImpDeclSpec) # gmapT :: (forall b. Data b => b -> b) -> ImpDeclSpec -> ImpDeclSpec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImpDeclSpec -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImpDeclSpec -> r # gmapQ :: (forall d. Data d => d -> u) -> ImpDeclSpec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ImpDeclSpec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImpDeclSpec -> m ImpDeclSpec # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImpDeclSpec -> m ImpDeclSpec # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImpDeclSpec -> m ImpDeclSpec # | |
| Eq ImpDeclSpec | |
Defined in GHC.Types.Name.Reader | |
data ImportSpec #
Import Specification
The ImportSpec of something says how it came to be imported
It's quite elaborate so that we can give accurate unused-name warnings.
Constructors
| ImpSpec | |
Fields
| |
Instances
| NFData ImportSpec | |
Defined in GHC.Types.Name.Reader Methods rnf :: ImportSpec -> () # | |
| Outputable ImportSpec | |
Defined in GHC.Types.Name.Reader Methods ppr :: ImportSpec -> SDoc # | |
| Data ImportSpec | |
Defined in GHC.Types.Name.Reader Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImportSpec -> c ImportSpec # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ImportSpec # toConstr :: ImportSpec -> Constr # dataTypeOf :: ImportSpec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ImportSpec) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ImportSpec) # gmapT :: (forall b. Data b => b -> b) -> ImportSpec -> ImportSpec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImportSpec -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImportSpec -> r # gmapQ :: (forall d. Data d => d -> u) -> ImportSpec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ImportSpec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImportSpec -> m ImportSpec # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportSpec -> m ImportSpec # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportSpec -> m ImportSpec # | |
| Eq ImportSpec | |
Defined in GHC.Types.Name.Reader | |
SourceText
data SourceText #
Constructors
| SourceText FastString | |
| NoSourceText | For when code is generated, e.g. TH, deriving. The pretty printer will then make its own representation of the item. |
Instances
| NFData SourceText | |
Defined in GHC.Types.SourceText Methods rnf :: SourceText -> () # | |
| Binary SourceText | |
Defined in GHC.Types.SourceText Methods put_ :: BinHandle -> SourceText -> IO () # put :: BinHandle -> SourceText -> IO (Bin SourceText) # get :: BinHandle -> IO SourceText # | |
| Outputable SourceText | |
Defined in GHC.Types.SourceText Methods ppr :: SourceText -> SDoc # | |
| Data SourceText | |
Defined in GHC.Types.SourceText Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SourceText -> c SourceText # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SourceText # toConstr :: SourceText -> Constr # dataTypeOf :: SourceText -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SourceText) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SourceText) # gmapT :: (forall b. Data b => b -> b) -> SourceText -> SourceText # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SourceText -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SourceText -> r # gmapQ :: (forall d. Data d => d -> u) -> SourceText -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SourceText -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SourceText -> m SourceText # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceText -> m SourceText # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceText -> m SourceText # | |
| Show SourceText | |
Defined in GHC.Types.SourceText Methods showsPrec :: Int -> SourceText -> ShowS # show :: SourceText -> String # showList :: [SourceText] -> ShowS # | |
| Eq SourceText | |
Defined in GHC.Types.SourceText | |
| type Anno (SourceText, RuleName) | |
Defined in GHC.Hs.Decls | |
Ways
A way
Don't change the constructor order as it is used by waysTag to create a
unique tag (e.g. thr_debug_p) which is expected by other tools (e.g. Cabal).
wayGeneralFlags :: Platform -> Way -> [GeneralFlag] #
Turn these flags on when enabling this way
wayUnsetGeneralFlags :: Platform -> Way -> [GeneralFlag] #
Turn these flags off when enabling this way
AvailInfo
Records what things are "available", i.e. in scope
Instances
| NFData AvailInfo | |
Defined in GHC.Types.Avail | |
| Binary AvailInfo | |
| Outputable AvailInfo | |
Defined in GHC.Types.Avail | |
| Data AvailInfo | |
Defined in GHC.Types.Avail Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AvailInfo -> c AvailInfo # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AvailInfo # toConstr :: AvailInfo -> Constr # dataTypeOf :: AvailInfo -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AvailInfo) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AvailInfo) # gmapT :: (forall b. Data b => b -> b) -> AvailInfo -> AvailInfo # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AvailInfo -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AvailInfo -> r # gmapQ :: (forall d. Data d => d -> u) -> AvailInfo -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> AvailInfo -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AvailInfo -> m AvailInfo # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AvailInfo -> m AvailInfo # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AvailInfo -> m AvailInfo # | |
pattern AvailFL :: FieldLabel -> AvailInfo #
availName :: AvailInfo -> Name #
Just the main name made available, i.e. not the available pieces
of type or class brought into scope by the AvailInfo
availNames :: AvailInfo -> [Name] #
Names and fields made available by the availability information.
availsToNameSet :: [AvailInfo] -> NameSet #
TcGblEnv
TcGblEnv describes the top-level of the module at the
point at which the typechecker is finished work.
It is this structure that is handed on to the desugarer
For state that needs to be updated during the typechecking
phase and returned at end, use a TcRef (= IORef).
Constructors
| TcGblEnv | |
Fields
| |
Instances
| ContainsModule TcGblEnv | |
Defined in GHC.Tc.Types Methods extractModule :: TcGblEnv -> Module # | |
Parsing and LExer types
Haskell Module
All we actually declare here is the top-level structure for a module.
Constructors
| HsModule | |
Fields
| |
| XModule !(XXModule p) | |
type ParsedSource = Located (HsModule GhcPs) #
type RenamedSource = (HsGroup GhcRn, [LImportDecl GhcRn], Maybe [(LIE GhcRn, Avails)], Maybe (LHsDoc GhcRn), Maybe (XRec GhcRn ModuleName)) #
Compilation Main
HscEnv is like Session, except that some of the fields are immutable.
An HscEnv is used to compile a single module from plain Haskell source
code (after preprocessing) to either C, assembly or C--. It's also used
to store the dynamic linker state to allow for multiple linkers in the
same address space.
Things like the module graph don't change during a single compilation.
Historical note: "hsc" used to be the name of the compiler binary, when there was a separate driver and compiler. To compile a single module, the driver would invoke hsc on the source code... so nowadays we think of hsc as the layer of the compiler that deals with compiling a single module.
Instances
| ContainsDynFlags HscEnv | |
Defined in GHC.Driver.Env.Types Methods extractDynFlags :: HscEnv -> DynFlags # | |
Arguments
| :: Maybe FilePath | See argument to |
| -> Ghc a | The action to perform. |
| -> IO a |
Run function for the Ghc monad.
It initialises the GHC session and warnings via initGhcMonad. Each call
to this function will create a new session which should not be shared among
several threads.
Any errors not handled inside the Ghc action are propagated as IO
exceptions.
The Session is a handle to the complete state of a compilation session. A compilation session consists of a set of modules constituting the current program or library, the context for interactive evaluation, and various caches.
modifySession :: GhcMonad m => (HscEnv -> HscEnv) -> m () #
Set the current session to the result of applying the current session to the argument.
getSession :: GhcMonad m => m HscEnv #
setSessionDynFlags :: (HasCallStack, GhcMonad m) => DynFlags -> m () #
getSessionDynFlags :: GhcMonad m => m DynFlags #
Grabs the DynFlags from the Session
class (Functor m, ExceptionMonad m, HasDynFlags m, HasLogger m) => GhcMonad (m :: Type -> Type) #
A monad that has all the features needed by GHC API calls.
In short, a GHC monad
- allows embedding of IO actions,
- can log warnings,
- allows handling of (extensible) exceptions, and
- maintains a current session.
If you do not use Ghc or GhcT, make sure to call initGhcMonad
before any call to the GHC API functions can occur.
Minimal complete definition
Instances
| GhcMonad BkpM | |
Defined in GHC.Driver.Backpack | |
| GhcMonad Ghc | |
Defined in GHC.Driver.Monad | |
| ExceptionMonad m => GhcMonad (GhcT m) | |
Defined in GHC.Driver.Monad | |
A minimal implementation of a GhcMonad. If you need a custom monad,
e.g., to maintain additional state consider wrapping this monad or using
GhcT.
Instances
| MonadIO Ghc | |
Defined in GHC.Driver.Monad | |
| MonadCatch Ghc | |
Defined in GHC.Driver.Monad | |
| MonadMask Ghc | |
Defined in GHC.Driver.Monad Methods mask :: HasCallStack => ((forall a. Ghc a -> Ghc a) -> Ghc b) -> Ghc b # uninterruptibleMask :: HasCallStack => ((forall a. Ghc a -> Ghc a) -> Ghc b) -> Ghc b # generalBracket :: HasCallStack => Ghc a -> (a -> ExitCase b -> Ghc c) -> (a -> Ghc b) -> Ghc (b, c) # | |
| MonadThrow Ghc | |
Defined in GHC.Driver.Monad Methods throwM :: (HasCallStack, Exception e) => e -> Ghc a # | |
| HasDynFlags Ghc | |
Defined in GHC.Driver.Monad Methods getDynFlags :: Ghc DynFlags # | |
| GhcMonad Ghc | |
Defined in GHC.Driver.Monad | |
| HasLogger Ghc | |
Defined in GHC.Driver.Monad | |
| Applicative Ghc | |
| Functor Ghc | |
| Monad Ghc | |
| MonadFail Ghc | |
Defined in GHC.Driver.Monad | |
| MonadFix Ghc | |
Defined in GHC.Driver.Monad | |
Untyped Phase description
Constructors
| Unlit HscSource | |
| Cpp HscSource | |
| HsPp HscSource | |
| Hsc HscSource | |
| Ccxx | |
| Cc | |
| Cobjc | |
| Cobjcxx | |
| HCc | |
| As Bool | |
| LlvmOpt | |
| LlvmLlc | |
| LlvmMangle | |
| CmmCpp | |
| Cmm | |
| MergeForeign | |
| Js | |
| StopLn |
Instances
| Outputable Phase | |
Defined in GHC.Driver.Phases | |
| Show Phase | |
| Eq Phase | |
hscDesugar :: HscEnv -> ModSummary -> TcGblEnv -> IO ModGuts #
Convert a typechecked module to Core
Arguments
| :: HscEnv | |
| -> CgGuts | |
| -> ModLocation | |
| -> FilePath | |
| -> IO (FilePath, Maybe FilePath, [(ForeignSrcLang, FilePath)], Maybe StgCgInfos, Maybe CmmCgInfos) |
|
Compile to hard-code.
hscInteractive :: HscEnv -> CgInteractiveGuts -> ModLocation -> IO (Maybe FilePath, CompiledByteCode, [SptEntry]) #
hscSimplify :: HscEnv -> [String] -> ModGuts -> IO ModGuts #
Run Core2Core simplifier. The list of String is a list of (Core) plugin
module names added via TH (cf addCorePlugin).
hscTypecheckRename :: HscEnv -> ModSummary -> HsParsedModule -> IO (TcGblEnv, RenamedStuff) #
Rename and typecheck a module, additionally returning the renamed syntax
hscUpdateHPT :: (HomePackageTable -> HomePackageTable) -> HscEnv -> HscEnv #
makeSimpleDetails :: HscEnv -> TcGblEnv -> IO ModDetails #
Typecheck utils
tcSplitForAllTyVars :: Type -> ([TyVar], Type) #
Like tcSplitPiTys, but splits off only named binders,
returning just the tyvars.
tcSplitForAllTyVarBinder_maybe :: Type -> Maybe (TyVarBinder, Type) #
typecheckIface :: ModIface -> IfG ModDetails #
mkIfaceTc :: HscEnv -> SafeHaskellMode -> ModDetails -> ModSummary -> Maybe CoreProgram -> TcGblEnv -> IO ModIface #
mkBootModDetailsTc :: HscEnv -> TcGblEnv -> IO ModDetails #
initTidyOpts :: HscEnv -> IO TidyOpts #
tidyProgram :: TidyOpts -> ModGuts -> IO (CgGuts, ModDetails) #
data ImportedModsVal #
Constructors
| ImportedModsVal | |
Fields
| |
importedByUser :: [ImportedBy] -> [ImportedModsVal] #
type TypecheckedSource = LHsBinds GhcTc #
Source Locations
class HasSrcSpan a #
Minimal complete definition
Instances
| HasSrcSpan SrcSpan # | |
Defined in Development.IDE.GHC.Compat.Core | |
| HasSrcSpan (EpAnn a) # | |
Defined in Development.IDE.GHC.Compat.Core | |
| HasSrcSpan (GenLocated (EpAnn ann) a) # | |
Defined in Development.IDE.GHC.Compat.Core Methods getLoc :: GenLocated (EpAnn ann) a -> SrcSpan # | |
| HasSrcSpan (GenLocated SrcSpan a) # | |
Defined in Development.IDE.GHC.Compat.Core Methods getLoc :: GenLocated SrcSpan a -> SrcSpan # | |
type Located = GenLocated SrcSpan #
unLoc :: GenLocated l e -> e #
getLoc :: HasSrcSpan a => a -> SrcSpan #
getLocA :: HasLoc a => GenLocated a e -> SrcSpan #
noLocA :: HasAnnotation e => a -> GenLocated e a #
type LocatedA = GenLocated SrcSpanAnnA #
data AnnListItem #
Annotation for items appearing in a list. They can have one or more trailing punctuations items, such as commas or semicolons.
Constructors
| AnnListItem | |
Fields
| |
Instances
| NoAnn AnnListItem | |
Defined in GHC.Parser.Annotation Methods noAnn :: AnnListItem # | |
| Outputable AnnListItem | |
Defined in GHC.Parser.Annotation Methods ppr :: AnnListItem -> SDoc # | |
| Semigroup AnnListItem | |
Defined in GHC.Parser.Annotation Methods (<>) :: AnnListItem -> AnnListItem -> AnnListItem # sconcat :: NonEmpty AnnListItem -> AnnListItem # stimes :: Integral b => b -> AnnListItem -> AnnListItem # | |
| Data AnnListItem | |
Defined in GHC.Parser.Annotation Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnListItem -> c AnnListItem # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnListItem # toConstr :: AnnListItem -> Constr # dataTypeOf :: AnnListItem -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnListItem) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnListItem) # gmapT :: (forall b. Data b => b -> b) -> AnnListItem -> AnnListItem # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnListItem -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnListItem -> r # gmapQ :: (forall d. Data d => d -> u) -> AnnListItem -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnListItem -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnListItem -> m AnnListItem # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnListItem -> m AnnListItem # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnListItem -> m AnnListItem # | |
| Eq AnnListItem | |
Defined in GHC.Parser.Annotation | |
| HiePass p => HasType (LocatedA (HsBind (GhcPass p))) | |
Defined in GHC.Iface.Ext.Ast | |
| HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct See Note [Computing the type of every node in the tree] |
Defined in GHC.Iface.Ext.Ast | |
| HiePass p => HasType (LocatedA (Pat (GhcPass p))) | |
Defined in GHC.Iface.Ext.Ast | |
| HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) | |
| ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (EvBindContext (LocatedA TcEvBinds)) | |
| ToHie (IEContext (LocatedA (IE GhcRn))) | |
| ToHie (IEContext (LocatedA (IEWrappedName GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (IEContext (LocatedA ModuleName)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type] | |
| HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) | |
| (ToHie (RFContext label), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsFieldBind label arg))) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (LocatedA (HsFieldBind label arg)) -> HieM [HieAST Type] | |
| HiePass p => ToHie (RFContext (LocatedA (AmbiguousFieldOcc (GhcPass p)))) | |
Defined in GHC.Iface.Ext.Ast | |
| HiePass p => ToHie (RFContext (LocatedA (FieldOcc (GhcPass p)))) | |
| HiePass p => ToHie (RScoped (LocatedA (IPBind (GhcPass p)))) | |
| (ToHie (LocatedA (body (GhcPass p))), AnnoBody p body, HiePass p) => ToHie (RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p)))))) | |
| HiePass p => ToHie (SigContext (LocatedA (Sig (GhcPass p)))) | |
| ToHie (TScoped (LocatedA (HsSigType GhcRn))) | |
| ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) | |
| ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) | |
Defined in GHC.Iface.Ext.Ast | |
| Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA SyntaxExprRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA SyntaxExprRn -> HieM [HieAST Type] | |
| ToHie (LocatedA SyntaxExprTc) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA SyntaxExprTc -> HieM [HieAST Type] | |
| ToHie (LocatedA HsWrapper) | |
| ToHie (LocatedA (FixitySig GhcRn)) | |
| ToHie (LocatedA (AnnDecl GhcRn)) | |
| ToHie (LocatedA (ClsInstDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (ConDecl GhcRn)) | |
| ToHie (LocatedA (DataFamInstDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (DefaultDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (DerivDecl GhcRn)) | |
| ToHie (LocatedA (DocDecl GhcRn)) | |
| ToHie (LocatedA (FamilyDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (ForeignDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (FunDep GhcRn)) | |
| ToHie (LocatedA (InstDecl GhcRn)) | |
| ToHie (LocatedA (RoleAnnotDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (RuleDecl GhcRn)) | |
| ToHie (LocatedA (RuleDecls GhcRn)) | |
| ToHie (LocatedA (SpliceDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (StandaloneKindSig GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (TyClDecl GhcRn)) | |
| ToHie (LocatedA (TyFamInstDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (WarnDecl GhcRn)) | |
| ToHie (LocatedA (WarnDecls GhcRn)) | |
| HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) | |
| HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) | |
| HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) | |
Defined in GHC.Iface.Ext.Ast | |
| (HiePass p, Data (body (GhcPass p)), AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))) | |
| ToHie (LocatedA (ImportDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| HiePass p => ToHie (LocatedA (HsOverLit (GhcPass p))) | |
| ToHie (LocatedA (ConDeclField GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (HsType GhcRn)) | |
| ToHie (LocatedC [LocatedA (HsType GhcRn)]) | |
| ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) | |
Defined in GHC.Iface.Ext.Ast | |
| HasHaddock (LocatedA (ConDecl GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| HasHaddock (LocatedA (HsDecl GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| HasHaddock (LocatedA (IE GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| HasHaddock (LocatedA (HsSigType GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| HasHaddock (LocatedA (HsType GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| HasHaddock (LocatedL [LocatedA (IE GhcPs)]) | Only for module exports, not module imports. module M (a, b, c) where -- use on this [LIE GhcPs] import I (a, b, c) -- do not use here! Imports cannot have documentation comments anyway. |
Defined in GHC.Parser.PostProcess.Haddock | |
| (ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) | |
| (ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))) | |
| (HiePass p, AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (LocatedA (IE (GhcPass p))) | |
Defined in GHC.Hs.ImpExp | |
| type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
| type Anno [LocatedA (IE (GhcPass p))] | |
Defined in GHC.Hs.ImpExp | |
| type Anno [LocatedA (ConDeclField (GhcPass _1))] | |
Defined in GHC.Hs.Decls | |
| type Anno [LocatedA (HsType (GhcPass p))] | |
Defined in GHC.Hs.Type | |
| type Anno (FamEqn p (LocatedA (HsType p))) | |
Defined in GHC.Hs.Decls | |
| type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) | |
| type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
| type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.Types | |
| type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) | |
Defined in GHC.Hs.Expr | |
| type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
Defined in GHC.Hs.Expr | |
| type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.Types | |
| type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
| type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.Types | |
| type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) | |
Defined in GHC.Hs.Expr | |
exact print annotations for a RdrName. There are many kinds of
adornment that can be attached to a given RdrName. This type
captures them, as detailed on the individual constructors.
Constructors
| NameAnn | Used for a name with an adornment, so |
Fields | |
| NameAnnCommas | |
Fields | |
| NameAnnBars | Used for |
Fields
| |
| NameAnnOnly | Used for |
Fields | |
| NameAnnRArrow | Used for |
Fields | |
| NameAnnQuote | Used for an item with a leading |
Fields | |
| NameAnnTrailing | Used when adding a |
Fields
| |
Instances
| NoAnn NameAnn | |
Defined in GHC.Parser.Annotation | |
| Outputable NameAnn | |
Defined in GHC.Parser.Annotation | |
| Data NameAnn | |
Defined in GHC.Parser.Annotation Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NameAnn -> c NameAnn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NameAnn # toConstr :: NameAnn -> Constr # dataTypeOf :: NameAnn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NameAnn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NameAnn) # gmapT :: (forall b. Data b => b -> b) -> NameAnn -> NameAnn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NameAnn -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NameAnn -> r # gmapQ :: (forall d. Data d => d -> u) -> NameAnn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> NameAnn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> NameAnn -> m NameAnn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NameAnn -> m NameAnn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NameAnn -> m NameAnn # | |
| Eq NameAnn | |
| ToHie (LBooleanFormula (LocatedN Name)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) | |
Defined in GHC.Iface.Ext.Ast | |
type RealLocated = GenLocated RealSrcSpan #
data GenLocated l e #
We attach SrcSpans to lots of things, so let's have a datatype for it.
Constructors
| L l e |
Instances
Source Span
A SrcSpan identifies either a specific portion of a text file
or a human-readable description of a location.
Constructors
| UnhelpfulSpan !UnhelpfulSpanReason |
Instances
data RealSrcSpan #
A RealSrcSpan delimits a portion of a text file. It could be represented
by a pair of (line,column) coordinates, but in fact we optimise
slightly by using more compact representations for single-line and
zero-length spans, both of which are quite common.
The end position is defined to be the column after the end of the span. That is, a span of (1,1)-(1,2) is one character long, and a span of (1,1)-(1,1) is zero characters long.
Real Source Span
Instances
pattern RealSrcSpan :: RealSrcSpan -> Maybe BufSpan -> SrcSpan #
data RealSrcLoc #
Real Source Location
Represents a single point within a file
Instances
| Outputable RealSrcLoc | |
Defined in GHC.Types.SrcLoc Methods ppr :: RealSrcLoc -> SDoc # | |
| Show RealSrcLoc | |
Defined in GHC.Types.SrcLoc Methods showsPrec :: Int -> RealSrcLoc -> ShowS # show :: RealSrcLoc -> String # showList :: [RealSrcLoc] -> ShowS # | |
| Eq RealSrcLoc | |
Defined in GHC.Types.SrcLoc | |
| Ord RealSrcLoc | |
Defined in GHC.Types.SrcLoc Methods compare :: RealSrcLoc -> RealSrcLoc -> Ordering # (<) :: RealSrcLoc -> RealSrcLoc -> Bool # (<=) :: RealSrcLoc -> RealSrcLoc -> Bool # (>) :: RealSrcLoc -> RealSrcLoc -> Bool # (>=) :: RealSrcLoc -> RealSrcLoc -> Bool # max :: RealSrcLoc -> RealSrcLoc -> RealSrcLoc # min :: RealSrcLoc -> RealSrcLoc -> RealSrcLoc # | |
pattern RealSrcLoc :: RealSrcLoc -> Maybe BufPos -> SrcLoc #
Source Location
Constructors
| UnhelpfulLoc !FastString |
Instances
| Outputable SrcLoc | |
Defined in GHC.Types.SrcLoc | |
| Show SrcLoc | |
| Eq SrcLoc | |
StringBuffer Source Span
Instances
| Semigroup BufSpan | |
| Data BufSpan | |
Defined in GHC.Types.SrcLoc Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BufSpan -> c BufSpan # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BufSpan # toConstr :: BufSpan -> Constr # dataTypeOf :: BufSpan -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BufSpan) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BufSpan) # gmapT :: (forall b. Data b => b -> b) -> BufSpan -> BufSpan # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BufSpan -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BufSpan -> r # gmapQ :: (forall d. Data d => d -> u) -> BufSpan -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> BufSpan -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> BufSpan -> m BufSpan # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BufSpan -> m BufSpan # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BufSpan -> m BufSpan # | |
| Show BufSpan | |
| Eq BufSpan | |
| Ord BufSpan | |
containsSpan :: RealSrcSpan -> RealSrcSpan -> Bool #
Tests whether the first span "contains" the other span, meaning that it covers at least as much source code. True where spans are equal.
mkGeneralSrcSpan :: FastString -> SrcSpan #
Create a "bad" SrcSpan that has not location information
mkRealSrcSpan :: RealSrcLoc -> RealSrcLoc -> RealSrcSpan #
Create a SrcSpan between two points in a file
mkRealSrcLoc :: FastString -> Int -> Int -> RealSrcLoc #
getRealSrcSpan :: RealLocated a -> RealSrcSpan #
realSrcLocSpan :: RealSrcLoc -> RealSrcSpan #
realSrcSpanEnd :: RealSrcSpan -> RealSrcLoc #
isSubspanOfA :: LocatedAn la a -> LocatedAn lb b -> Bool #
Arguments
| :: SrcSpan | The span that may be enclosed by the other |
| -> SrcSpan | The span it may be enclosed by |
| -> Bool |
Determines whether a span is enclosed by another one
Built-in "bad" SrcSpans for common sources of location uncertainty
srcSpanStart :: SrcSpan -> SrcLoc #
srcSpanStartLine :: RealSrcSpan -> Int #
srcSpanStartCol :: RealSrcSpan -> Int #
srcSpanEnd :: SrcSpan -> SrcLoc #
srcSpanEndLine :: RealSrcSpan -> Int #
srcSpanEndCol :: RealSrcSpan -> Int #
srcSpanFile :: RealSrcSpan -> FastString #
srcLocCol :: RealSrcLoc -> Int #
Raises an error when used on a "bad" SrcLoc
srcLocFile :: RealSrcLoc -> FastString #
Gives the filename of the RealSrcLoc
srcLocLine :: RealSrcLoc -> Int #
Raises an error when used on a "bad" SrcLoc
mapLoc :: (a -> b) -> GenLocated l a -> GenLocated l b #
Finder
data FindResult #
The result of searching for an imported module.
NB: FindResult manages both user source-import lookups
(which can result in Module) as well as direct imports
for interfaces (which always result in InstalledModule).
Constructors
| Found ModLocation Module | The module was found |
| NoPackage Unit | The requested unit was not found |
| FoundMultiple [(Module, ModuleOrigin)] | _Error_: both in multiple packages |
| NotFound | Not found |
Fields
| |
mkHomeModLocation :: DynFlags -> ModuleName -> FilePath -> IO ModLocation #
findObjectLinkableMaybe :: Module -> ModLocation -> IO (Maybe Linkable) #
data InstalledFindResult #
Module and Package
data ModuleOrigin #
Given a module name, there may be multiple ways it came into scope, possibly simultaneously. This data type tracks all the possible ways it could have come into scope. Warning: don't use the record functions, they're partial!
Constructors
| ModHidden | Module is hidden, and thus never will be available for import. (But maybe the user didn't realize), so we'll still keep track of these modules.) |
| ModUnusable !UnusableUnit | Module is unavailable because the unit is unusable. |
| ModOrigin | Module is public, and could have come from some places. |
Fields
| |
Instances
| Outputable ModuleOrigin | |
Defined in GHC.Unit.State Methods ppr :: ModuleOrigin -> SDoc # | |
| Monoid ModuleOrigin | |
Defined in GHC.Unit.State Methods mempty :: ModuleOrigin # mappend :: ModuleOrigin -> ModuleOrigin -> ModuleOrigin # mconcat :: [ModuleOrigin] -> ModuleOrigin # | |
| Semigroup ModuleOrigin | |
Defined in GHC.Unit.State Methods (<>) :: ModuleOrigin -> ModuleOrigin -> ModuleOrigin # sconcat :: NonEmpty ModuleOrigin -> ModuleOrigin # stimes :: Integral b => b -> ModuleOrigin -> ModuleOrigin # | |
newtype PackageName #
Constructors
| PackageName | |
Fields | |
Instances
| Uniquable PackageName | |
Defined in GHC.Unit.Info Methods getUnique :: PackageName -> Unique # | |
| Outputable PackageName | |
Defined in GHC.Unit.Info Methods ppr :: PackageName -> SDoc # | |
| Show PackageName # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> PackageName -> ShowS # show :: PackageName -> String # showList :: [PackageName] -> ShowS # | |
| Eq PackageName | |
Defined in GHC.Unit.Info | |
Linker
Objects which have yet to be linked by the compiler
Constructors
| DotO ObjFile | An object file (.o) |
| DotA FilePath | Static archive file (.a) |
| DotDLL FilePath | Dynamically linked library file (.so, .dll, .dylib) |
| CoreBindings WholeCoreBindings | Serialised core which we can turn into BCOs (or object files), or used by some other backend See Note [Interface Files with Core Definitions] |
| LoadedBCOs [Unlinked] | A list of BCOs, but hidden behind extra indirection to avoid being too strict. |
| BCOs CompiledByteCode [SptEntry] | A byte-code object, lives only in memory. Also carries some static pointer table entries which should be loaded along with the BCOs. See Note [Grand plan for static forms] in GHC.Iface.Tidy.StaticPtrTable. |
Instances
| NFData Unlinked # | |
Defined in Development.IDE.GHC.Orphans | |
| Outputable Unlinked | |
Defined in GHC.Linker.Types | |
Information we can use to dynamically link modules into the compiler
Constructors
| LM | |
Fields
| |
Instances
| NFData Linkable # | |
Defined in Development.IDE.GHC.Orphans | |
| Outputable Linkable | |
Defined in GHC.Linker.Types | |
| Show Linkable # | |
Hooks
type MetaHook (f :: Type -> Type) = MetaRequest -> LHsExpr GhcTc -> f MetaResult #
data MetaRequest #
The supported metaprogramming result types
Constructors
| MetaE (LHsExpr GhcPs -> MetaResult) | |
| MetaP (LPat GhcPs -> MetaResult) | |
| MetaT (LHsType GhcPs -> MetaResult) | |
| MetaD ([LHsDecl GhcPs] -> MetaResult) | |
| MetaAW (Serialized -> MetaResult) |
metaRequestAW :: Functor f => MetaHook f -> LHsExpr GhcTc -> f Serialized #
HPT
addToHpt :: HomePackageTable -> ModuleName -> HomeModInfo -> HomePackageTable #
addListToHpt :: HomePackageTable -> [(ModuleName, HomeModInfo)] -> HomePackageTable #
Driver-Make
A compilation target.
A target may be supplied with the actual text of the module. If so, use this instead of the file contents (this is for use in an IDE where the file hasn't been saved by the user yet).
These fields are strict because Targets are long lived.
Constructors
| Target | |
Fields
| |
Instances
| Outputable Target | |
Defined in GHC.Types.Target | |
Constructors
| TargetModule !ModuleName | A module name: search for the file |
| TargetFile !FilePath !(Maybe Phase) | A filename: preprocess & parse it to find the module name. If specified, the Phase indicates how to compile this file (which phase to start from). Nothing indicates the starting phase should be determined from the suffix of the filename. |
mkSimpleTarget :: DynFlags -> FilePath -> Target #
GHCi
initObjLinker :: HscEnv -> IO () #
data InteractiveImport #
Constructors
| IIDecl (ImportDecl GhcPs) | Bring the exports of a particular module (filtered by an import decl) into scope |
| IIModule ModuleName | Bring into scope the entire top-level envt of of this module, including the things imported into it. |
Instances
| Outputable InteractiveImport | |
Defined in GHC.Runtime.Context Methods ppr :: InteractiveImport -> SDoc # | |
| Show InteractiveImport # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> InteractiveImport -> ShowS # show :: InteractiveImport -> String # showList :: [InteractiveImport] -> ShowS # | |
getContext :: GhcMonad m => m [InteractiveImport] #
Get the interactive evaluation context, consisting of a pair of the set of modules from which we take the full top-level scope, and the set of modules from which we take just the exports respectively.
setContext :: GhcMonad m => [InteractiveImport] -> m () #
Set the interactive evaluation context.
(setContext imports) sets the ic_imports field (which in turn
determines what is in scope at the prompt) to imports, and
updates the icReaderEnv environment to reflect it.
We retain in scope all the things defined at the prompt, and kept in ic_tythings. (Indeed, they shadow stuff from ic_imports.)
parseImportDecl :: GhcMonad m => String -> m (ImportDecl GhcPs) #
type Warn = Located DriverMessage #
A command-line warning message and the reason it arose
This used to be own type, but now it's just .MsgEnvelope DriverMessage
ModLocation
data ModLocation #
Module Location
Where a module lives on the file system: the actual locations of the .hs, .hi, .dyn_hi, .o, .dyn_o and .hie files, if we have them.
For a module in another unit, the ml_hs_file and ml_obj_file components of ModLocation are undefined.
The locations specified by a ModLocation may or may not correspond to actual files yet: for example, even if the object file doesn't exist, the ModLocation still contains the path to where the object file will reside if/when it is created.
The paths of anything which can affect recompilation should be placed inside ModLocation.
When a ModLocation is created none of the filepaths will have -boot suffixes. This is because in --make mode the ModLocation is put in the finder cache which is indexed by ModuleName, when a ModLocation is retrieved from the FinderCache the boot suffixes are appended. The other case is in -c mode, there the ModLocation immediately gets given the boot suffixes in mkOneShotModLocation.
Instances
| NFData ModLocation # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: ModLocation -> () # | |
| Outputable ModLocation | |
Defined in GHC.Unit.Module.Location Methods ppr :: ModLocation -> SDoc # | |
| Show ModLocation | |
Defined in GHC.Unit.Module.Location Methods showsPrec :: Int -> ModLocation -> ShowS # show :: ModLocation -> String # showList :: [ModLocation] -> ShowS # | |
ml_hs_file :: ModLocation -> Maybe FilePath #
The source file, if we have one. Package modules probably don't have source files.
ml_obj_file :: ModLocation -> FilePath #
Where the .o file is, whether or not it exists yet. (might not exist either because the module hasn't been compiled yet, or because it is part of a unit with a .a file)
ml_hi_file :: ModLocation -> FilePath #
Where the .hi file is, whether or not it exists yet. Always of form foo.hi, even if there is an hi-boot file (we add the -boot suffix later)
ml_hie_file :: ModLocation -> FilePath #
Where the .hie file is, whether or not it exists yet.
DataCon
dataConExTyCoVars :: DataCon -> [TyCoVar] #
The existentially-quantified type/coercion variables of the constructor including dependent (kind-) GADT equalities
Role
See Note [Roles] in GHC.Core.Coercion
Order of constructors matters: the Ord instance coincides with the *super*typing relation on roles.
Constructors
| Nominal | |
| Representational | |
| Phantom |
Instances
| Data Role | |
Defined in Language.Haskell.Syntax.Basic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Role -> c Role # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Role # dataTypeOf :: Role -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Role) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Role) # gmapT :: (forall b. Data b => b -> b) -> Role -> Role # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r # gmapQ :: (forall d. Data d => d -> u) -> Role -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Role -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Role -> m Role # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role # | |
| Eq Role | |
| Ord Role | |
| type Anno (Maybe Role) | |
Defined in GHC.Hs.Decls | |
| type Anno (Maybe Role) | |
Defined in GHC.Hs.Decls | |
Panic
data PlainGhcException #
This type is very similar to GhcException, but it omits
the constructors that involve pretty-printing via
SDoc. Due to the implementation of fromException
for GhcException, this type can be caught as a
GhcException.
Note that this should only be used for throwing exceptions, not for
catching, as GhcException will not be converted to this
type when catching.
Instances
| Exception PlainGhcException | |
Defined in GHC.Utils.Panic.Plain Methods toException :: PlainGhcException -> SomeException # fromException :: SomeException -> Maybe PlainGhcException # | |
| Show PlainGhcException | |
Defined in GHC.Utils.Panic.Plain Methods showsPrec :: Int -> PlainGhcException -> ShowS # show :: PlainGhcException -> String # showList :: [PlainGhcException] -> ShowS # | |
Other
data CoreModule #
A CoreModule consists of just the fields of a ModGuts that are needed for
the compileToCoreModule interface.
Constructors
| CoreModule | |
Fields
| |
Instances
| NFData CoreModule # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: CoreModule -> () # | |
| Outputable CoreModule | |
Defined in GHC Methods ppr :: CoreModule -> SDoc # | |
| Show CoreModule # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> CoreModule -> ShowS # show :: CoreModule -> String # showList :: [CoreModule] -> ShowS # | |
data SafeHaskellMode #
The various Safe Haskell modes
Constructors
| Sf_None | inferred unsafe |
| Sf_Unsafe | declared and checked |
| Sf_Trustworthy | declared and checked |
| Sf_Safe | declared and checked |
| Sf_SafeInferred | inferred as safe |
| Sf_Ignore |
|
Instances
| NFData SafeHaskellMode # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: SafeHaskellMode -> () # | |
| Outputable SafeHaskellMode | |
Defined in GHC.Types.SafeHaskell Methods ppr :: SafeHaskellMode -> SDoc # | |
| Show SafeHaskellMode | |
Defined in GHC.Types.SafeHaskell Methods showsPrec :: Int -> SafeHaskellMode -> ShowS # show :: SafeHaskellMode -> String # showList :: [SafeHaskellMode] -> ShowS # | |
| Eq SafeHaskellMode | |
Defined in GHC.Types.SafeHaskell Methods (==) :: SafeHaskellMode -> SafeHaskellMode -> Bool # (/=) :: SafeHaskellMode -> SafeHaskellMode -> Bool # | |
pattern GRE :: Name -> Parent -> Bool -> [ImportSpec] -> GlobalRdrElt #
gre_name :: GlobalRdrElt -> Name #
gre_imp :: GlobalRdrElt -> [ImportSpec] #
gre_lcl :: GlobalRdrElt -> Bool #
gre_par :: GlobalRdrElt -> Parent #
collectHsBindsBinders :: CollectPass p => Bag (XRec p (HsBindLR p idR)) -> [IdP p] #
Util Module re-exports
Class of things that we can obtain a Unique from
Instances
allNameStringList :: [String] #
mkUnboundName :: OccName -> Name #
isUnboundName :: Name -> Bool #
basicKnownKeyNames :: [Name] #
genericTyConNames :: [Name] #
gHC_CSTRING :: Module #
gHC_CLASSES :: Module #
mkInteractiveModule :: String -> Module #
mAIN_NAME :: ModuleName #
mkPrimModule :: FastString -> Module #
mkBignumModule :: FastString -> Module #
mkGhcInternalModule :: FastString -> Module #
mkBaseModule :: FastString -> Module #
mkBaseModule_ :: ModuleName -> Module #
mkThisGhcModule :: FastString -> Module #
mkThisGhcModule_ :: ModuleName -> Module #
mkMainModule :: FastString -> Module #
mkMainModule_ :: ModuleName -> Module #
compare_RDR :: RdrName #
append_RDR :: RdrName #
returnM_RDR :: RdrName #
fromEnum_RDR :: RdrName #
toEnum_RDR :: RdrName #
enumFrom_RDR :: RdrName #
compose_RDR :: RdrName #
minBound_RDR :: RdrName #
maxBound_RDR :: RdrName #
inRange_RDR :: RdrName #
readList_RDR :: RdrName #
readPrec_RDR :: RdrName #
parens_RDR :: RdrName #
choose_RDR :: RdrName #
expectP_RDR :: RdrName #
symbol_RDR :: RdrName #
unPar1_RDR :: RdrName #
unRec1_RDR :: RdrName #
unComp1_RDR :: RdrName #
selName_RDR :: RdrName #
conName_RDR :: RdrName #
uIntHash_RDR :: RdrName #
replace_RDR :: RdrName #
liftA2_RDR :: RdrName #
foldMap_RDR :: RdrName #
traverse_RDR :: RdrName #
mempty_RDR :: RdrName #
mappend_RDR :: RdrName #
varQual_RDR :: Module -> FastString -> RdrName #
tcQual_RDR :: Module -> FastString -> RdrName #
clsQual_RDR :: Module -> FastString -> RdrName #
dataQual_RDR :: Module -> FastString -> RdrName #
fieldQual_RDR :: Module -> FastString -> FastString -> RdrName #
wildCardName :: Name #
runMainIOName :: Name #
specTyConName :: Name #
eitherTyConName :: Name #
leftDataConName :: Name #
voidTyConName :: Name #
v1TyConName :: Name #
u1TyConName :: Name #
par1TyConName :: Name #
rec1TyConName :: Name #
k1TyConName :: Name #
m1TyConName :: Name #
sumTyConName :: Name #
prodTyConName :: Name #
compTyConName :: Name #
rTyConName :: Name #
dTyConName :: Name #
cTyConName :: Name #
sTyConName :: Name #
rec0TyConName :: Name #
d1TyConName :: Name #
c1TyConName :: Name #
s1TyConName :: Name #
repTyConName :: Name #
rep1TyConName :: Name #
uRecTyConName :: Name #
uAddrTyConName :: Name #
uCharTyConName :: Name #
uFloatTyConName :: Name #
uIntTyConName :: Name #
uWordTyConName :: Name #
divIntName :: Name #
modIntName :: Name #
eqStringName :: Name #
inlineIdName :: Name #
eqClassName :: Name #
ordClassName :: Name #
monadClassName :: Name #
returnMName :: Name #
sappendName :: Name #
monoidClassName :: Name #
memptyName :: Name #
mappendName :: Name #
mconcatName :: Name #
joinMIdKey :: Unique #
apAClassOpKey :: Unique #
dollarName :: Name #
otherwiseIdName :: Name #
augmentName :: Name #
appendName :: Name #
assertName :: Name #
fromStringName :: Name #
numClassName :: Name #
fromIntegerName :: Name #
negateName :: Name #
bnbVarQual :: String -> Unique -> Name #
bnnVarQual :: String -> Unique -> Name #
bniVarQual :: String -> Unique -> Name #
bignatEqName :: Name #
naturalAddName :: Name #
naturalSubName :: Name #
naturalMulName :: Name #
naturalQuotName :: Name #
naturalRemName :: Name #
naturalAndName :: Name #
naturalOrName :: Name #
naturalXorName :: Name #
naturalBitName :: Name #
naturalGcdName :: Name #
naturalLcmName :: Name #
naturalLog2Name :: Name #
integerAddName :: Name #
integerMulName :: Name #
integerSubName :: Name #
integerAbsName :: Name #
integerQuotName :: Name #
integerRemName :: Name #
integerDivName :: Name #
integerModName :: Name #
integerGcdName :: Name #
integerLcmName :: Name #
integerAndName :: Name #
integerOrName :: Name #
integerXorName :: Name #
integerBitName :: Name #
ratioTyConName :: Name #
realClassName :: Name #
toIntegerName :: Name #
toRationalName :: Name #
realToFracName :: Name #
ixClassName :: Name #
trNameTyConName :: Name #
typeRepIdName :: Name #
mkTrTypeName :: Name #
mkTrConName :: Name #
mkTrAppName :: Name #
mkTrFunName :: Name #
starKindRepName :: Name #
dataClassName :: Name #
assertErrorName :: Name #
enumClassName :: Name #
enumFromName :: Name #
enumFromToName :: Name #
concatName :: Name #
filterName :: Name #
isListClassName :: Name #
fromListName :: Name #
fromListNName :: Name #
toListName :: Name #
getFieldName :: Name #
setFieldName :: Name #
showClassName :: Name #
readClassName :: Name #
genClassName :: Name #
gen1ClassName :: Name #
genericClassNames :: [Name] #
ghciIoClassName :: Name #
ghciStepIoMName :: Name #
ioTyConName :: Name #
ioDataConName :: Name #
thenIOName :: Name #
bindIOName :: Name #
returnIOName :: Name #
failIOName :: Name #
int8TyConName :: Name #
int16TyConName :: Name #
int32TyConName :: Name #
int64TyConName :: Name #
word8TyConName :: Name #
word16TyConName :: Name #
word32TyConName :: Name #
word64TyConName :: Name #
ptrTyConName :: Name #
funPtrTyConName :: Name #
composeAName :: Name #
firstAName :: Name #
choiceAName :: Name #
guardMName :: Name #
ipClassName :: Name #
pluginTyConName :: Name #
makeStaticName :: Name #
constPtrConName :: Name #
jsvalTyConName :: Name #
mk_known_key_name :: NameSpace -> Module -> FastString -> Unique -> Name #
enumClassKey :: Unique #
eqClassKey :: Unique #
monadClassKey :: Unique #
dataClassKey :: Unique #
numClassKey :: Unique #
ordClassKey :: Unique #
readClassKey :: Unique #
realClassKey :: Unique #
showClassKey :: Unique #
ixClassKey :: Unique #
genClassKey :: Unique #
gen1ClassKey :: Unique #
ipClassKey :: Unique #
boolTyConKey :: Unique #
charTyConKey :: Unique #
floatTyConKey :: Unique #
fUNTyConKey :: Unique #
intTyConKey :: Unique #
int8TyConKey :: Unique #
int16TyConKey :: Unique #
int32TyConKey :: Unique #
int64TyConKey :: Unique #
listTyConKey :: Unique #
maybeTyConKey :: Unique #
ratioTyConKey :: Unique #
eqTyConKey :: Unique #
heqTyConKey :: Unique #
ioTyConKey :: Unique #
wordTyConKey :: Unique #
word8TyConKey :: Unique #
kindConKey :: Unique #
boxityConKey :: Unique #
typeConKey :: Unique #
ptrTyConKey :: Unique #
voidTyConKey :: Unique #
dictTyConKey :: Unique #
tYPETyConKey :: Unique #
v1TyConKey :: Unique #
u1TyConKey :: Unique #
par1TyConKey :: Unique #
rec1TyConKey :: Unique #
k1TyConKey :: Unique #
m1TyConKey :: Unique #
sumTyConKey :: Unique #
prodTyConKey :: Unique #
compTyConKey :: Unique #
rec0TyConKey :: Unique #
d1TyConKey :: Unique #
c1TyConKey :: Unique #
s1TyConKey :: Unique #
repTyConKey :: Unique #
rep1TyConKey :: Unique #
uRecTyConKey :: Unique #
uAddrTyConKey :: Unique #
uCharTyConKey :: Unique #
uIntTyConKey :: Unique #
uWordTyConKey :: Unique #
specTyConKey :: Unique #
anyTyConKey :: Unique #
jsvalTyConKey :: Unique #
intDataConKey :: Unique #
eqDataConKey :: Unique #
nilDataConKey :: Unique #
ioDataConKey :: Unique #
heqDataConKey :: Unique #
inlDataConKey :: Unique #
inrDataConKey :: Unique #
vecCountDataConKeys :: [Unique] #
vecElemDataConKeys :: [Unique] #
oneDataConKey :: Unique #
wildCardKey :: Unique #
augmentIdKey :: Unique #
appendIdKey :: Unique #
buildIdKey :: Unique #
foldrIdKey :: Unique #
eqStringIdKey :: Unique #
patErrorIdKey :: Unique #
voidPrimIdKey :: Unique #
divIntIdKey :: Unique #
modIntIdKey :: Unique #
concatIdKey :: Unique #
filterIdKey :: Unique #
bindIOIdKey :: Unique #
returnIOIdKey :: Unique #
printIdKey :: Unique #
failIOIdKey :: Unique #
nullAddrIdKey :: Unique #
voidArgIdKey :: Unique #
assertIdKey :: Unique #
rootMainKey :: Unique #
runMainKey :: Unique #
thenIOIdKey :: Unique #
oneShotKey :: Unique #
nospecIdKey :: Unique #
inlineIdKey :: Unique #
dollarIdKey :: Unique #
noinlineIdKey :: Unique #
unboundKey :: Unique #
eqClassOpKey :: Unique #
geClassOpKey :: Unique #
composeAIdKey :: Unique #
firstAIdKey :: Unique #
choiceAIdKey :: Unique #
loopAIdKey :: Unique #
guardMIdKey :: Unique #
liftMIdKey :: Unique #
proxyHashKey :: Unique #
mkTyConKey :: Unique #
mkTrTypeKey :: Unique #
mkTrConKey :: Unique #
mkTrAppKey :: Unique #
typeRepIdKey :: Unique #
mkTrFunKey :: Unique #
toDynIdKey :: Unique #
eqSCSelIdKey :: Unique #
heqSCSelIdKey :: Unique #
makeStaticKey :: Unique #
bignatEqIdKey :: Unique #
numericClassKeys :: [Unique] #
fractionalClassKeys :: [Unique] #
standardClassKeys :: [Unique] #
derivableClassKeys :: [Unique] #
interactiveClassNames :: [Name] #
interactiveClassKeys :: [Unique] #
module GHC.Builtin.Types
module GHC.Builtin.Types.Prim
module GHC.Builtin.Utils
module GHC.Core.Class
module GHC.Core.Coercion
module GHC.Core.ConLike
data SrcUnpackedness #
Source Unpackedness
What unpackedness the user requested
Constructors
| SrcUnpack | {-# UNPACK #-} specified |
| SrcNoUnpack | {-# NOUNPACK #-} specified |
| NoSrcUnpack | no unpack pragma |
Instances
| Data SrcUnpackedness | |
Defined in Language.Haskell.Syntax.Basic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcUnpackedness -> c SrcUnpackedness # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcUnpackedness # toConstr :: SrcUnpackedness -> Constr # dataTypeOf :: SrcUnpackedness -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcUnpackedness) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcUnpackedness) # gmapT :: (forall b. Data b => b -> b) -> SrcUnpackedness -> SrcUnpackedness # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcUnpackedness -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcUnpackedness -> r # gmapQ :: (forall d. Data d => d -> u) -> SrcUnpackedness -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcUnpackedness -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness # | |
| Eq SrcUnpackedness | |
Defined in Language.Haskell.Syntax.Basic Methods (==) :: SrcUnpackedness -> SrcUnpackedness -> Bool # (/=) :: SrcUnpackedness -> SrcUnpackedness -> Bool # | |
data SrcStrictness #
Source Strictness
What strictness annotation the user wrote
Constructors
| SrcLazy | Lazy, ie |
| SrcStrict | Strict, ie |
| NoSrcStrict | no strictness annotation |
Instances
| Data SrcStrictness | |
Defined in Language.Haskell.Syntax.Basic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcStrictness -> c SrcStrictness # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcStrictness # toConstr :: SrcStrictness -> Constr # dataTypeOf :: SrcStrictness -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcStrictness) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcStrictness) # gmapT :: (forall b. Data b => b -> b) -> SrcStrictness -> SrcStrictness # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcStrictness -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcStrictness -> r # gmapQ :: (forall d. Data d => d -> u) -> SrcStrictness -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcStrictness -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness # | |
| Eq SrcStrictness | |
Defined in Language.Haskell.Syntax.Basic Methods (==) :: SrcStrictness -> SrcStrictness -> Bool # (/=) :: SrcStrictness -> SrcStrictness -> Bool # | |
data FieldLabelString #
Field labels are just represented as strings; they are not necessarily unique (even within a module)
Instances
A *one-index* constructor tag
Type of the tags associated with each constructor possibility or superclass selector
data FieldLabel #
Fields in an algebraic record type; see Note [FieldLabel].
Constructors
| FieldLabel | |
Fields
| |
Instances
| HasOccName FieldLabel | |
Defined in GHC.Types.FieldLabel Methods occName :: FieldLabel -> OccName # | |
| Binary Name => Binary FieldLabel | We need the |
Defined in GHC.Types.FieldLabel Methods put_ :: BinHandle -> FieldLabel -> IO () # put :: BinHandle -> FieldLabel -> IO (Bin FieldLabel) # get :: BinHandle -> IO FieldLabel # | |
| Outputable FieldLabel | |
Defined in GHC.Types.FieldLabel Methods ppr :: FieldLabel -> SDoc # | |
| Data FieldLabel | |
Defined in GHC.Types.FieldLabel Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FieldLabel -> c FieldLabel # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FieldLabel # toConstr :: FieldLabel -> Constr # dataTypeOf :: FieldLabel -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FieldLabel) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FieldLabel) # gmapT :: (forall b. Data b => b -> b) -> FieldLabel -> FieldLabel # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FieldLabel -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FieldLabel -> r # gmapQ :: (forall d. Data d => d -> u) -> FieldLabel -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FieldLabel -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FieldLabel -> m FieldLabel # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldLabel -> m FieldLabel # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldLabel -> m FieldLabel # | |
| Eq FieldLabel | |
Defined in GHC.Types.FieldLabel | |
flLabel :: FieldLabel -> FieldLabelString #
User-visible label of a field.
An EqSpec is a tyvar/type pair representing an equality made in
rejigging a GADT constructor
Instances
| Outputable EqSpec | |
Defined in GHC.Core.DataCon | |
data DataConRep #
Data Constructor Representation See Note [Data constructor workers and wrappers]
Constructors
| NoDataConRep | |
| DCR | |
Fields
| |
A data constructor
Instances
| NamedThing DataCon | |
Defined in GHC.Core.DataCon | |
| Uniquable DataCon | |
Defined in GHC.Core.DataCon | |
| Outputable DataCon | |
Defined in GHC.Core.DataCon | |
| OutputableBndr DataCon | |
Defined in GHC.Core.DataCon Methods pprBndr :: BindingSite -> DataCon -> SDoc # pprPrefixOcc :: DataCon -> SDoc # pprInfixOcc :: DataCon -> SDoc # | |
| Data DataCon | |
Defined in GHC.Core.DataCon Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataCon -> c DataCon # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataCon # toConstr :: DataCon -> Constr # dataTypeOf :: DataCon -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataCon) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataCon) # gmapT :: (forall b. Data b => b -> b) -> DataCon -> DataCon # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataCon -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataCon -> r # gmapQ :: (forall d. Data d => d -> u) -> DataCon -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DataCon -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataCon -> m DataCon # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataCon -> m DataCon # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataCon -> m DataCon # | |
| Eq DataCon | |
promoteDataCon :: DataCon -> TyCon #
dataConWrapId :: DataCon -> Id #
Returns an Id which looks like the Haskell-source constructor by using
the wrapper if it exists (see dataConWrapId_maybe) and failing over to
the worker (see dataConWorkId)
isTypeDataCon :: DataCon -> Bool #
Is this data constructor in a "type data" declaration? See Note [Type data declarations] in GHC.Rename.Module.
isUnboxedSumDataCon :: DataCon -> Bool #
dataConFullSig :: DataCon -> ([TyVar], [TyCoVar], [EqSpec], ThetaType, [Scaled Type], Type) #
The "full signature" of the DataCon returns, in order:
1) The result of dataConUnivTyVars
2) The result of dataConExTyCoVars
3) The non-dependent GADT equalities. Dependent GADT equalities are implied by coercion variables in return value (2).
4) The other constraints of the data constructor type, excluding GADT equalities
5) The original argument types to the DataCon (i.e. before
any change of the representation of the type) with linearity
annotations
6) The original result type of the DataCon
dataConStupidTheta :: DataCon -> ThetaType #
The "stupid theta" of the DataCon, such as data Eq a in:
data Eq a => T a = ...
See Note [The stupid context].
dataConInstOrigArgTys :: DataCon -> [Type] -> [Scaled Type] #
Returns just the instantiated value argument types of a DataCon,
(excluding dictionary args)
dataConFieldLabels :: DataCon -> [FieldLabel] #
The labels for the fields of this particular DataCon
dataConSourceArity :: DataCon -> Arity #
Source-level arity of the data constructor
dataConUserTyVarBinders :: DataCon -> [InvisTVBinder] #
InvisTVBinders for the type variables of the constructor, in the order the
user wrote them
dataConUserTyVars :: DataCon -> [TyVar] #
The type variables of the constructor, in the order the user wrote them
dataConTyCon :: DataCon -> TyCon #
The type constructor that we are building via this data constructor
dataConWorkId :: DataCon -> Id #
data StrictnessMark #
Constructors
| MarkedStrict | |
| NotMarkedStrict |
Instances
| Binary StrictnessMark | |
Defined in GHC.Core.DataCon Methods put_ :: BinHandle -> StrictnessMark -> IO () # put :: BinHandle -> StrictnessMark -> IO (Bin StrictnessMark) # get :: BinHandle -> IO StrictnessMark # | |
| Outputable StrictnessMark | |
Defined in GHC.Core.DataCon Methods ppr :: StrictnessMark -> SDoc # | |
| Eq StrictnessMark | |
Defined in GHC.Core.DataCon Methods (==) :: StrictnessMark -> StrictnessMark -> Bool # (/=) :: StrictnessMark -> StrictnessMark -> Bool # | |
data HsImplBang #
Haskell Implementation Bang
Bangs of data constructor arguments as generated by the compiler after consulting HsSrcBang, flags, etc.
Constructors
| HsLazy | Lazy field, or one with an unlifted type |
| HsStrict Bool | Strict but not unpacked field True = we could have unpacked, but opted not to because of -O0. See Note [Detecting useless UNPACK pragmas] |
| HsUnpack (Maybe Coercion) | Strict and unpacked field co :: arg-ty ~ product-ty HsBang |
Instances
| Outputable HsImplBang | |
Defined in GHC.Core.DataCon Methods ppr :: HsImplBang -> SDoc # | |
| Data HsImplBang | |
Defined in GHC.Core.DataCon Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsImplBang -> c HsImplBang # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsImplBang # toConstr :: HsImplBang -> Constr # dataTypeOf :: HsImplBang -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsImplBang) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsImplBang) # gmapT :: (forall b. Data b => b -> b) -> HsImplBang -> HsImplBang # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsImplBang -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsImplBang -> r # gmapQ :: (forall d. Data d => d -> u) -> HsImplBang -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsImplBang -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsImplBang -> m HsImplBang # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsImplBang -> m HsImplBang # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsImplBang -> m HsImplBang # | |
Haskell Source Bang
Bangs on data constructor arguments as the user wrote them in the source code.
(HsSrcBang _ SrcUnpack SrcLazy) and
(HsSrcBang _ SrcUnpack NoSrcStrict) (without StrictData) makes no sense, we
emit a warning (in checkValidDataCon) and treat it like
(HsSrcBang _ NoSrcUnpack SrcLazy)
Constructors
| HsSrcBang SourceText SrcUnpackedness SrcStrictness |
Instances
| Outputable HsSrcBang | |
Defined in GHC.Core.DataCon | |
| Data HsSrcBang | |
Defined in GHC.Core.DataCon Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsSrcBang -> c HsSrcBang # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsSrcBang # toConstr :: HsSrcBang -> Constr # dataTypeOf :: HsSrcBang -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsSrcBang) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsSrcBang) # gmapT :: (forall b. Data b => b -> b) -> HsSrcBang -> HsSrcBang # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsSrcBang -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsSrcBang -> r # gmapQ :: (forall d. Data d => d -> u) -> HsSrcBang -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsSrcBang -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsSrcBang -> m HsSrcBang # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSrcBang -> m HsSrcBang # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSrcBang -> m HsSrcBang # | |
type DataConEnv a = UniqFM DataCon a #
eqSpecTyVar :: EqSpec -> TyVar #
eqSpecType :: EqSpec -> Type #
eqSpecPair :: EqSpec -> (TyVar, Type) #
eqSpecPreds :: [EqSpec] -> ThetaType #
eqHsBang :: HsImplBang -> HsImplBang -> Bool #
Compare strictness annotations
isBanged :: HsImplBang -> Bool #
isSrcStrict :: SrcStrictness -> Bool #
isSrcUnpacked :: SrcUnpackedness -> Bool #
isMarkedStrict :: StrictnessMark -> Bool #
Arguments
| :: Name | |
| -> Bool | Is the constructor declared infix? |
| -> TyConRepName | TyConRepName for the promoted TyCon |
| -> [HsSrcBang] | Strictness/unpack annotations, from user |
| -> [FieldLabel] | Field labels for the constructor, if it is a record, otherwise empty |
| -> [TyVar] | Universals. |
| -> [TyCoVar] | Existentials. |
| -> ConcreteTyVars | TyVars which must be instantiated with concrete types |
| -> [InvisTVBinder] | User-written |
| -> [EqSpec] | GADT equalities |
| -> KnotTied ThetaType | Theta-type occurring before the arguments proper |
| -> [KnotTied (Scaled Type)] | Original argument types |
| -> KnotTied Type | Original result type |
| -> PromDataConInfo | See comments on |
| -> KnotTied TyCon | Representation type constructor |
| -> ConTag | Constructor tag |
| -> ThetaType | The "stupid theta", context of the data
declaration e.g. |
| -> Id | Worker Id |
| -> DataConRep | Representation |
| -> DataCon |
Build a new data constructor
dataConTag :: DataCon -> ConTag #
The tag used for ordering DataCons
dataConTagZ :: DataCon -> ConTagZ #
dataConOrigTyCon :: DataCon -> TyCon #
The original type constructor used in the definition of this data constructor. In case of a data family instance, that will be the family type constructor.
dataConRepType :: DataCon -> Type #
The representation type of the data constructor, i.e. the sort type that will represent values of this type at runtime
dataConIsInfix :: DataCon -> Bool #
Should the DataCon be presented infix?
dataConUnivTyVars :: DataCon -> [TyVar] #
The universally-quantified type variables of the constructor
dataConUnivAndExTyCoVars :: DataCon -> [TyCoVar] #
Both the universal and existential type/coercion variables of the constructor
dataConConcreteTyVars :: DataCon -> ConcreteTyVars #
Which type variables of this data constructor that must be instantiated to concrete types? For example: the RuntimeRep variables of unboxed tuples and unboxed sums.
See Note [Representation-polymorphism checking built-ins] in GHC.Tc.Gen.Head.
dataConTheta :: DataCon -> ThetaType #
The *full* constraints on the constructor type, including dependent GADT equalities.
dataConWrapId_maybe :: DataCon -> Maybe Id #
Get the Id of the DataCon wrapper: a function that wraps the "actual"
constructor so it has the type visible in the source program: c.f.
dataConWorkId.
Returns Nothing if there is no wrapper, which occurs for an algebraic data
constructor and also for a newtype (whose constructor is inlined
compulsorily)
dataConImplicitTyThings :: DataCon -> [TyThing] #
Find all the Ids implicitly brought into scope by the data constructor. Currently,
the union of the dataConWorkId and the dataConWrapId
dataConFieldType :: DataCon -> FieldLabelString -> Type #
Extract the type for any given labelled field of the DataCon
dataConFieldType_maybe :: DataCon -> FieldLabelString -> Maybe (FieldLabel, Type) #
dataConSrcBangs :: DataCon -> [HsSrcBang] #
Strictness/unpack annotations, from user; or, for imported
DataCons, from the interface file
The list is in one-to-one correspondence with the arity of the DataCon
dataConRepArity :: DataCon -> Arity #
Gives the number of value arguments (including zero-width coercions)
stored by the given DataCon's worker in its Core representation. This may
differ from the number of arguments that appear in the source code; see also
Note [DataCon arities]
isNullarySrcDataCon :: DataCon -> Bool #
Return whether there are any argument types for this DataCons original source type
See Note [DataCon arities]
isNullaryRepDataCon :: DataCon -> Bool #
Return whether this DataCon's worker, in its Core representation, takes
any value arguments.
In particular, remember that we include coercion arguments in the arity of
the Core representation of the DataCon -- both lifted and unlifted
coercions, despite the latter having zero-width runtime representation.
See also Note [DataCon arities].
dataConRepStrictness :: DataCon -> [StrictnessMark] #
Give the demands on the arguments of a Core constructor application (Con dc args)
dataConImplBangs :: DataCon -> [HsImplBang] #
dataConBoxer :: DataCon -> Maybe DataConBoxer #
dataConInstSig :: DataCon -> [Type] -> ([TyCoVar], ThetaType, [Type]) #
Instantiate the universal tyvars of a data con, returning ( instantiated existentials , instantiated constraints including dependent GADT equalities which are *also* listed in the instantiated existentials , instantiated args)
dataConOrigResTy :: DataCon -> Type #
dataConWrapperType :: DataCon -> Type #
The user-declared type of the data constructor in the nice-to-read form:
T :: forall a b. a -> b -> T [a]
rather than:
T :: forall a c. forall b. (c~[a]) => a -> b -> T c
The type variables are quantified in the order that the user wrote them.
See Note [DataCon user type variable binders].
NB: If the constructor is part of a data instance, the result type mentions the family tycon, not the internal one.
dataConNonlinearType :: DataCon -> Type #
dataConDisplayType :: Bool -> DataCon -> Type #
Arguments
| :: DataCon | A datacon with no existentials or equality constraints However, it can have a dcTheta (notably it can be a class dictionary, with superclasses) |
| -> [Type] | Instantiated at these types |
| -> [Scaled Type] |
Finds the instantiated types of the arguments required to construct a
DataCon representation
NB: these INCLUDE any dictionary args
but EXCLUDE the data-declaration context, which is discarded
It's all post-flattening etc; this is a representation type
dataConInstUnivs :: DataCon -> [Type] -> [Type] #
Given a data constructor dc with n universally quantified type
variables a_{1}, a_{2}, ..., a_{n}, and given a list of argument
types dc_args of length m where m <= n, then:
dataConInstUnivs dc dc_args
Will return:
[dc_arg_{1}, dc_arg_{2}, ..., dc_arg_{m}, a_{m+1}, ..., a_{n}]
That is, return the list of universal type variables with
a_{1}, a_{2}, ..., a_{m} instantiated with
dc_arg_{1}, dc_arg_{2}, ..., dc_arg_{m}. It is possible for m to
be less than n, in which case the remaining n - m elements will simply
be universal type variables (with their kinds possibly instantiated).
Examples:
- Given the data constructor
D :: forall a b. Foo a banddc_args[Int, Bool], thendataConInstUnivs D dc_argswill return[Int, Bool]. - Given the data constructor
D :: forall a b. Foo a banddc_args[Int], then @dataConInstUnivs D dc_argswill return[Int, b]. - Given the data constructor
E :: forall k (a :: k). Bar k aanddc_args[Type], then @dataConInstUnivs D dc_argswill return[Type, (a :: Type)].
This is primarily used in GHC.Tc.Deriv.* in service of instantiating data
constructors' field types.
See Note [Instantiating field types in stock deriving] for a notable
example of this.
dataConOrigArgTys :: DataCon -> [Scaled Type] #
Returns the argument types of the wrapper, excluding all dictionary arguments and without substituting for any type variables
dataConOtherTheta :: DataCon -> ThetaType #
Returns constraints in the wrapper type, other than those in the dataConEqSpec
dataConRepArgTys :: DataCon -> [Scaled Type] #
Returns the arg types of the worker, including *all* non-dependent evidence, after any flattening has been done and without substituting for any type variables
dataConIdentity :: DataCon -> ByteString #
The string package:module.name identifying a constructor, which is attached
to its info table and used by the GHCi debugger and the heap profiler
isTupleDataCon :: DataCon -> Bool #
isBoxedTupleDataCon :: DataCon -> Bool #
isUnboxedTupleDataCon :: DataCon -> Bool #
isVanillaDataCon :: DataCon -> Bool #
Vanilla DataCons are those that are nice boring Haskell 98 constructors
isNewDataCon :: DataCon -> Bool #
Is this the DataCon of a newtype?
isCovertGadtDataCon :: DataCon -> Bool #
specialPromotedDc :: DataCon -> Bool #
Should this DataCon be allowed in a type even without -XDataKinds? Currently, only Lifted & Unlifted
classDataCon :: Class -> DataCon #
dataConCannotMatch :: [Type] -> DataCon -> Bool #
dataConResRepTyArgs :: DataCon -> [Type] #
Were the type variables of the data con written in a different order than the regular order (universal tyvars followed by existential tyvars)?
This is not a cheap test, so we minimize its use in GHC as much as possible.
Currently, its only call site in the GHC codebase is in mkDataConRep in
MkId, and so dataConUserTyVarsNeedWrapper is only called at most once
during a data constructor's lifetime.
checkDataConTyVars :: DataCon -> Bool #
Extract the type constructor, type argument, data constructor and it's representation argument types from a type if it is a product type.
Precisely, we return Just for any data type that is all of:
- Concrete (i.e. constructors visible)
- Single-constructor
- ... which has no existentials
Whether the type is a data type or a newtype.
data FamInstMatch #
Constructors
| FamInstMatch | |
Instances
| Outputable FamInstMatch | |
Defined in GHC.Core.FamInstEnv Methods ppr :: FamInstMatch -> SDoc # | |
data InjectivityCheckResult #
Result of testing two type family equations for injectiviy.
Constructors
| InjectivityAccepted | Either RHSs are distinct or unification of RHSs leads to unification of LHSs |
| InjectivityUnified CoAxBranch CoAxBranch | RHSs unify but LHSs don't unify under that substitution. Relevant for closed type families where equation after unification might be overlapped (in which case it is OK if they don't unify). Constructor stores axioms after unification. |
data FamInstEnv #
Instances
| Outputable FamInstEnv | |
Defined in GHC.Core.FamInstEnv Methods ppr :: FamInstEnv -> SDoc # | |
type FamInstEnvs = (FamInstEnv, FamInstEnv) #
Constructors
| SynFamilyInst | |
| DataFamilyInst TyCon |
Constructors
| FamInst | |
Instances
| NamedThing FamInst | |
Defined in GHC.Core.FamInstEnv | |
| Outputable FamInst | |
Defined in GHC.Core.FamInstEnv | |
famInstAxiom :: FamInst -> CoAxiom Unbranched #
famInstRHS :: FamInst -> Type #
famInstTyCon :: FamInst -> TyCon #
famInstsRepTyCons :: [FamInst] -> [TyCon] #
famInstRepTyCon_maybe :: FamInst -> Maybe TyCon #
dataFamInstRepTyCon :: FamInst -> TyCon #
orphNamesOfFamInst :: FamInst -> NameSet #
pprFamInsts :: [FamInst] -> SDoc #
mkLocalFamInst :: FamFlavor -> CoAxiom Unbranched -> [TyVar] -> [CoVar] -> [Type] -> Type -> FamInst #
mkImportedFamInst :: Name -> [RoughMatchTc] -> CoAxiom Unbranched -> IsOrphan -> FamInst #
famInstEnvSize :: FamInstEnv -> Int #
emptyFamInstEnvs :: (FamInstEnv, FamInstEnv) #
Create a FamInstEnv from Name indices.
INVARIANTS:
* The fs_tvs are distinct in each FamInst
of a range value of the map (so we can safely unify them)
famInstEnvElts :: FamInstEnv -> [FamInst] #
familyInstances :: (FamInstEnv, FamInstEnv) -> TyCon -> [FamInst] #
familyNameInstances :: (FamInstEnv, FamInstEnv) -> Name -> [FamInst] #
unionFamInstEnv :: FamInstEnv -> FamInstEnv -> FamInstEnv #
Makes no particular effort to detect conflicts.
extendFamInstEnvList :: FamInstEnv -> [FamInst] -> FamInstEnv #
extendFamInstEnv :: FamInstEnv -> FamInst -> FamInstEnv #
compatibleBranches :: CoAxBranch -> CoAxBranch -> Bool #
injectiveBranches :: [Bool] -> CoAxBranch -> CoAxBranch -> InjectivityCheckResult #
Check whether two type family axioms don't violate injectivity annotation.
mkCoAxBranch :: [TyVar] -> [TyVar] -> [CoVar] -> [Type] -> Type -> [Role] -> SrcSpan -> CoAxBranch #
mkBranchedCoAxiom :: Name -> TyCon -> [CoAxBranch] -> CoAxiom Branched #
mkUnbranchedCoAxiom :: Name -> TyCon -> CoAxBranch -> CoAxiom Unbranched #
mkSingleCoAxiom :: Role -> Name -> [TyVar] -> [TyVar] -> [CoVar] -> TyCon -> [Type] -> Type -> CoAxiom Unbranched #
mkNewTypeCoAxiom :: Name -> TyCon -> [TyVar] -> [Role] -> Type -> CoAxiom Unbranched #
lookupFamInstEnvByTyCon :: FamInstEnvs -> TyCon -> [FamInst] #
lookupFamInstEnv :: FamInstEnvs -> TyCon -> [Type] -> [FamInstMatch] #
lookupFamInstEnvConflicts :: FamInstEnvs -> FamInst -> [FamInst] #
lookupFamInstEnvInjectivityConflicts :: [Bool] -> FamInstEnvs -> FamInst -> [CoAxBranch] #
Check whether an open type family equation can be added to already existing instance environment without causing conflicts with supplied injectivity annotations. Returns list of conflicting axioms (type instance declarations).
isDominatedBy :: CoAxBranch -> [CoAxBranch] -> Bool #
reduceTyFamApp_maybe :: FamInstEnvs -> Role -> TyCon -> [Type] -> Maybe Reduction #
Arguments
| :: [Type] | flattened target arguments. Make sure they're flattened! See Note [Flattening type-family applications when matching instances] in GHC.Core.Unify. |
| -> CoAxBranch | the candidate equation we wish to use Precondition: this matches the target |
| -> Bool | True = equation can fire |
Do an apartness check, as described in the "Closed Type Families" paper
(POPL '14). This should be used when determining if an equation
(CoAxBranch) of a closed type family can be used to reduce a certain target
type family application.
topNormaliseType :: FamInstEnvs -> Type -> Type #
topNormaliseType_maybe :: FamInstEnvs -> Type -> Maybe Reduction #
Get rid of *outermost* (or toplevel) * type function redex * data family redex * newtypes returning an appropriate Representational coercion. Specifically, if topNormaliseType_maybe env ty = Just (co, ty') then (a) co :: ty ~R ty' (b) ty' is not a newtype, and is not a type-family or data-family redex
However, ty' can be something like (Maybe (F ty)), where (F ty) is a redex.
Always operates homogeneously: the returned type has the same kind as the original type, and the returned coercion is always homogeneous.
topReduceTyFamApp_maybe :: FamInstEnvs -> TyCon -> [Type] -> Maybe HetReduction #
Try to simplify a type-family application, by *one* step If topReduceTyFamApp_maybe env r F tys = Just (HetReduction (Reduction co rhs) res_co) then co :: F tys ~R# rhs res_co :: typeKind(F tys) ~ typeKind(rhs) Type families and data families; always Representational role
normaliseType :: FamInstEnvs -> Role -> Type -> Reduction #
normaliseTcApp :: FamInstEnvs -> Role -> TyCon -> [Type] -> Reduction #
module GHC.Core.InstEnv
module GHC.Types.Unique.FM
module GHC.Core.PatSyn
module GHC.Core.Predicate
module GHC.Core.TyCon
module GHC.Core.TyCo.Ppr
module GHC.Core.Type
module GHC.Core.Unify
module GHC.Core.Utils
module GHC.HsToCore.Docs
module GHC.HsToCore.Expr
module GHC.HsToCore.Monad
module GHC.Iface.Syntax
module GHC.Iface.Recomp
data DerivStrategy pass #
Which technique the user explicitly requested when deriving an instance.
Constructors
| StockStrategy (XStockStrategy pass) | GHC's "standard" strategy, which is to implement a
custom instance for the data type. This only works
for certain types that GHC knows about (e.g., |
| AnyclassStrategy (XAnyClassStrategy pass) | -XDeriveAnyClass |
| NewtypeStrategy (XNewtypeStrategy pass) | -XGeneralizedNewtypeDeriving |
| ViaStrategy (XViaStrategy pass) | -XDerivingVia |
Instances
| ToHie (RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (DerivStrategy (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
data InjectivityAnn pass #
If the user supplied an injectivity annotation it is represented using InjectivityAnn. At the moment this is a single injectivity condition - see Note [Injectivity annotation]. `Located name` stores the LHS of injectivity condition. `[Located name]` stores the RHS of injectivity condition. Example:
type family Foo a b c = r | r -> a c where ...
This will be represented as "InjectivityAnn r [a, c]"
Constructors
| InjectivityAnn (XCInjectivityAnn pass) (LIdP pass) [LIdP pass] | |
| XInjectivityAnn !(XXInjectivityAnn pass) |
Instances
| ToHie (LocatedAn NoEpAnns (InjectivityAnn GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (InjectivityAnn (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
Rule Binder
Constructors
| RuleBndr (XCRuleBndr pass) (LIdP pass) | |
| RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass) | |
| XRuleBndr !(XXRuleBndr pass) |
Warning pragma Declaration
Constructors
| Warning (XWarning pass) [LIdP pass] (WarningTxt pass) | |
| XWarnDecl !(XXWarnDecl pass) |
Annotation Declaration
Constructors
| HsAnnotation (XHsAnnotation pass) (AnnProvenance pass) (XRec pass (HsExpr pass)) | |
| XAnnDecl !(XXAnnDecl pass) |
data ForeignExport pass #
Constructors
| CExport (XCExport pass) (XRec pass CExportSpec) | |
| XForeignExport !(XXForeignExport pass) |
Instances
| ToHie (ForeignExport GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: ForeignExport GhcRn -> HieM [HieAST Type] | |
data ForeignImport pass #
Constructors
| CImport (XCImport pass) (XRec pass CCallConv) (XRec pass Safety) (Maybe Header) CImportSpec | |
| XForeignImport !(XXForeignImport pass) |
Instances
| ToHie (ForeignImport GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: ForeignImport GhcRn -> HieM [HieAST Type] | |
data SpliceDecl p #
Splice Declaration
Constructors
| SpliceDecl (XSpliceDecl p) (XRec p (HsUntypedSplice p)) SpliceDecoration | |
| XSpliceDecl !(XXSpliceDecl p) |
Instances
| ToHie (LocatedA (SpliceDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (SpliceDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
data StandaloneKindSig pass #
Constructors
| StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass) | |
| XStandaloneKindSig !(XXStandaloneKindSig pass) |
Instances
| ToHie (LocatedA (StandaloneKindSig GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (StandaloneKindSig GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: StandaloneKindSig GhcRn -> HieM [HieAST Type] | |
| type Anno (StandaloneKindSig (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
data CImportSpec #
Constructors
| CLabel CLabelString | |
| CFunction CCallTarget | |
| CWrapper |
Instances
| Data CImportSpec | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CImportSpec -> c CImportSpec # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CImportSpec # toConstr :: CImportSpec -> Constr # dataTypeOf :: CImportSpec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CImportSpec) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CImportSpec) # gmapT :: (forall b. Data b => b -> b) -> CImportSpec -> CImportSpec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CImportSpec -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CImportSpec -> r # gmapQ :: (forall d. Data d => d -> u) -> CImportSpec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CImportSpec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CImportSpec -> m CImportSpec # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CImportSpec -> m CImportSpec # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CImportSpec -> m CImportSpec # | |
Warning pragma Declarations
Constructors
| Warnings | |
Fields
| |
| XWarnDecls !(XXWarnDecls pass) | |
data RoleAnnotDecl pass #
Role Annotation Declaration
Constructors
| RoleAnnotDecl (XCRoleAnnotDecl pass) (LIdP pass) [XRec pass (Maybe Role)] | |
| XRoleAnnotDecl !(XXRoleAnnotDecl pass) |
Instances
| ToHie (LocatedA (RoleAnnotDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (RoleAnnotDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass) #
Located Role Annotation Declaration
data AnnProvenance pass #
Annotation Provenance
Constructors
| ValueAnnProvenance (LIdP pass) | |
| TypeAnnProvenance (LIdP pass) | |
| ModuleAnnProvenance |
Instances
| ToHie (AnnProvenance GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: AnnProvenance GhcRn -> HieM [HieAST Type] | |
type LWarnDecls pass = XRec pass (WarnDecls pass) #
Located Warning Declarations
Documentation comment Declaration
Constructors
| DocCommentNext (LHsDoc pass) | |
| DocCommentPrev (LHsDoc pass) | |
| DocCommentNamed String (LHsDoc pass) | |
| DocGroup Int (LHsDoc pass) |
Instances
| ToHie (LocatedA (DocDecl GhcRn)) | |
| (Data pass, Data (IdP pass)) => Data (DocDecl pass) | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DocDecl pass -> c (DocDecl pass) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (DocDecl pass) # toConstr :: DocDecl pass -> Constr # dataTypeOf :: DocDecl pass -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (DocDecl pass)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (DocDecl pass)) # gmapT :: (forall b. Data b => b -> b) -> DocDecl pass -> DocDecl pass # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl pass -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl pass -> r # gmapQ :: (forall d. Data d => d -> u) -> DocDecl pass -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DocDecl pass -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DocDecl pass -> m (DocDecl pass) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl pass -> m (DocDecl pass) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl pass -> m (DocDecl pass) # | |
| type Anno (DocDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
Rule Declaration
Constructors
| HsRule | |
Fields
| |
| XRuleDecl !(XXRuleDecl pass) | |
Rule Declarations
Constructors
| HsRules | |
Fields
| |
| XRuleDecls !(XXRuleDecls pass) | |
type LRuleDecls pass = XRec pass (RuleDecls pass) #
Located Rule Declarations
data ForeignDecl pass #
Foreign Declaration
Constructors
| ForeignImport | |
Fields
| |
| ForeignExport | |
Fields
| |
| XForeignDecl !(XXForeignDecl pass) | |
Instances
| ToHie (LocatedA (ForeignDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (ForeignDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LForeignDecl pass = XRec pass (ForeignDecl pass) #
Located Foreign Declaration
data DefaultDecl pass #
Default Declaration
Constructors
| DefaultDecl (XCDefaultDecl pass) [LHsType pass] | |
| XDefaultDecl !(XXDefaultDecl pass) |
Instances
| ToHie (LocatedA (DefaultDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (DefaultDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LDefaultDecl pass = XRec pass (DefaultDecl pass) #
Located Default Declaration
type LDerivStrategy pass = XRec pass (DerivStrategy pass) #
A Located DerivStrategy.
Stand-alone 'deriving instance' declaration
Constructors
| DerivDecl | |
Fields
| |
| XDerivDecl !(XXDerivDecl pass) | |
type LDerivDecl pass = XRec pass (DerivDecl pass) #
Located stand-alone 'deriving instance' declaration
Instance Declaration
Constructors
| ClsInstD | |
Fields
| |
| DataFamInstD | |
Fields
| |
| TyFamInstD | |
Fields
| |
| XInstDecl !(XXInstDecl pass) | |
data ClsInstDecl pass #
Class Instance Declaration
- AnnKeywordId : AnnInstance,
AnnWhere,
AnnOpen,AnnClose,
For details on above see Note [exact print annotations] in GHC.Parser.Annotation
Constructors
| ClsInstDecl | |
Fields
| |
| XClsInstDecl !(XXClsInstDecl pass) | |
Instances
| ToHie (LocatedA (ClsInstDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (ClsInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LClsInstDecl pass = XRec pass (ClsInstDecl pass) #
Located Class Instance Declaration
Family Equation
One equation in a type family instance declaration, data family instance declaration, or type family default. See Note [Type family instance declarations in HsSyn] See Note [Family instance declaration binders]
Constructors
| FamEqn | |
Fields
| |
| XFamEqn !(XXFamEqn pass rhs) | |
Instances
| ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) | |
| ToHie (TScoped (FamEqn GhcRn (HsDataDefn GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| (ToHie rhs, HasLoc rhs) => ToHie (FamEqn GhcRn rhs) | |
| type Anno (FamEqn (GhcPass p) _1) | |
Defined in GHC.Hs.Decls | |
| type Anno (FamEqn (GhcPass p) _1) | |
Defined in GHC.Hs.Decls | |
| type Anno (FamEqn p (LocatedA (HsType p))) | |
Defined in GHC.Hs.Decls | |
newtype DataFamInstDecl pass #
Data Family Instance Declaration
Constructors
| DataFamInstDecl | |
Fields
| |
Instances
| ToHie (LocatedA (DataFamInstDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (DataFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass) #
Located Data Family Instance Declaration
data TyFamInstDecl pass #
Type Family Instance Declaration
Constructors
| TyFamInstDecl | |
Fields
| |
| XTyFamInstDecl !(XXTyFamInstDecl pass) | |
Instances
| ToHie (LocatedA (TyFamInstDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (TyFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LTyFamInstDecl pass = XRec pass (TyFamInstDecl pass) #
Located Type Family Instance Declaration
type LTyFamDefltDecl pass = XRec pass (TyFamDefltDecl pass) #
Located type family default declarations.
type TyFamDefltDecl = TyFamInstDecl #
Type family default declarations.
A convenient synonym for TyFamInstDecl.
See Note [Type family instance declarations in HsSyn].
type TyFamInstEqn pass = FamEqn pass (LHsType pass) #
Type Family Instance Equation
type HsFamEqnPats pass = [LHsTypeArg pass] #
HsFamEqnPats represents patterns on the left-hand side of a type instance,
e.g. `type instance F k (a :: k) = a` has patterns `k` and `(a :: k)`.
HsFamEqnPats used to be called HsTyPats but it was renamed to avoid confusion with a different notion of type patterns, see #23657.
type LTyFamInstEqn pass #
Arguments
| = XRec pass (TyFamInstEqn pass) | May have |
Located Type Family Instance Equation
data HsConDeclGADTDetails pass #
The arguments in a GADT constructor. Unlike Haskell98-style constructors,
GADT constructors cannot be declared with infix syntax. As a result, we do
not use HsConDetails here, as InfixCon would be an unrepresentable
state. (There is a notion of infix GADT constructors for the purposes of
derived Show instances—see Note [Infix GADT constructors] in
GHC.Tc.TyCl—but that is an orthogonal concern.)
Constructors
| PrefixConGADT !(XPrefixConGADT pass) [HsScaled pass (LBangType pass)] | |
| RecConGADT !(XRecConGADT pass) (XRec pass [LConDeclField pass]) | |
| XConDeclGADTDetails !(XXConDeclGADTDetails pass) |
Instances
| ToHie (HsConDeclGADTDetails GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: HsConDeclGADTDetails GhcRn -> HieM [HieAST Type] | |
type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass]) #
The arguments in a Haskell98-style data constructor.
data T b = forall a. Eq a => MkT a b
MkT :: forall b a. Eq a => MkT a b
data T b where
MkT1 :: Int -> T Int
data T = Int MkT Int
| MkT2
data T a where
Int MkT Int :: T Int
AnnKeywordIds :AnnOpen,AnnDotdot,AnnCLose,AnnEqual,AnnVbar,AnnDarrow,AnnDarrow,AnnForall,AnnDot
data Constructor Declaration
Constructors
| ConDeclGADT | |
Fields
| |
| ConDeclH98 | |
Fields
| |
| XConDecl !(XXConDecl pass) | |
Arguments
| = XRec pass (ConDecl pass) | May have |
Located data Constructor Declaration
When we only care whether a data-type declaration is `data` or `newtype`, but not what constructors it has
Instances
| Data NewOrData | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NewOrData -> c NewOrData # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NewOrData # toConstr :: NewOrData -> Constr # dataTypeOf :: NewOrData -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NewOrData) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NewOrData) # gmapT :: (forall b. Data b => b -> b) -> NewOrData -> NewOrData # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NewOrData -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NewOrData -> r # gmapQ :: (forall d. Data d => d -> u) -> NewOrData -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> NewOrData -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> NewOrData -> m NewOrData # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NewOrData -> m NewOrData # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NewOrData -> m NewOrData # | |
| Eq NewOrData | |
type LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass) #
Located Standalone Kind Signature
data DerivClauseTys pass #
The types mentioned in a single deriving clause. This can come in two
forms, DctSingle or DctMulti, depending on whether the types are
surrounded by enclosing parentheses or not. These parentheses are
semantically different than HsParTy. For example, deriving () means
"derive zero classes" rather than "derive an instance of the 0-tuple".
DerivClauseTys use LHsSigType because deriving clauses can mention
type variables that aren't bound by the datatype, e.g.
data T b = ... deriving (C [a])
should produce a derived instance for C [a] (T b).
Constructors
| DctSingle (XDctSingle pass) (LHsSigType pass) | A Example: |
| DctMulti (XDctMulti pass) [LHsSigType pass] | A Example: |
| XDerivClauseTys !(XXDerivClauseTys pass) |
Instances
| ToHie (LocatedC (DerivClauseTys GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| HasHaddock (LocatedC (DerivClauseTys GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedC (DerivClauseTys GhcPs) -> HdkA (LocatedC (DerivClauseTys GhcPs)) | |
| type Anno (DerivClauseTys (GhcPass _1)) | |
Defined in GHC.Hs.Decls | |
type LDerivClauseTys pass = XRec pass (DerivClauseTys pass) #
data HsDerivingClause pass #
A single deriving clause of a data declaration.
Constructors
| HsDerivingClause | |
Fields
| |
| XHsDerivingClause !(XXHsDerivingClause pass) | |
Instances
| ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) | |
Defined in GHC.Iface.Ext.Ast | |
| HasHaddock (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)] -> HdkA (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) | |
| ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedAn NoEpAnns (HsDerivingClause GhcPs) -> HdkA (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) | |
| type Anno (HsDerivingClause (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LHsDerivingClause pass = XRec pass (HsDerivingClause pass) #
type HsDeriving pass #
Arguments
| = [LHsDerivingClause pass] | The optional The list of |
Haskell Deriving clause
data HsDataDefn pass #
Haskell Data type Definition
Constructors
| HsDataDefn | Declares a data type or newtype, giving its constructors
|
Fields
| |
| XHsDataDefn !(XXHsDataDefn pass) | |
Instances
| ToHie (TScoped (FamEqn GhcRn (HsDataDefn GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (HsDataDefn GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: HsDataDefn GhcRn -> HieM [HieAST Type] | |
| HasHaddock (HsDataDefn GhcPs) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsDataDefn GhcPs -> HdkA (HsDataDefn GhcPs) | |
data FamilyInfo pass #
Constructors
| DataFamily | |
| OpenTypeFamily | |
| ClosedTypeFamily (Maybe [LTyFamInstEqn pass]) |
|
Instances
| ToHie (FamilyInfo GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: FamilyInfo GhcRn -> HieM [HieAST Type] | |
type LInjectivityAnn pass = XRec pass (InjectivityAnn pass) #
Located Injectivity Annotation
data FamilyDecl pass #
type Family Declaration
Constructors
| FamilyDecl | |
Fields
| |
| XFamilyDecl !(XXFamilyDecl pass) | |
Instances
| ToHie (LocatedA (FamilyDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (FamilyDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LFamilyDecl pass = XRec pass (FamilyDecl pass) #
Located type Family Declaration
data FamilyResultSig pass #
type Family Result Signature
Constructors
| NoSig (XNoSig pass) | |
| KindSig (XCKindSig pass) (LHsKind pass) | |
| TyVarSig (XTyVarSig pass) (LHsTyVarBndr () pass) | |
| XFamilyResultSig !(XXFamilyResultSig pass) |
Instances
| ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (FamilyResultSig (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LFamilyResultSig pass = XRec pass (FamilyResultSig pass) #
Located type Family Result Signature
Type or Class Group
Constructors
| TyClGroup | |
Fields
| |
| XTyClGroup !(XXTyClGroup pass) | |
A type or class declaration.
Constructors
| FamDecl | type/data family T :: *->* |
Fields
| |
| SynDecl |
|
Fields
| |
| DataDecl |
|
Fields
| |
| ClassDecl | |
Fields
| |
| XTyClDecl !(XXTyClDecl pass) | |
data SpliceDecoration #
A splice can appear with various decorations wrapped around it. This data type captures explicitly how it was originally written, for use in the pretty printer.
Constructors
| DollarSplice | $splice |
| BareSplice | bare splice |
Instances
type LSpliceDecl pass = XRec pass (SpliceDecl pass) #
Located Splice Declaration
Constructors
| HsGroup | |
Fields
| |
| XHsGroup !(XXHsGroup p) | |
A Haskell Declaration
Constructors
| TyClD (XTyClD p) (TyClDecl p) | Type or Class Declaration |
| InstD (XInstD p) (InstDecl p) | Instance declaration |
| DerivD (XDerivD p) (DerivDecl p) | Deriving declaration |
| ValD (XValD p) (HsBind p) | Value declaration |
| SigD (XSigD p) (Sig p) | Signature declaration |
| KindSigD (XKindSigD p) (StandaloneKindSig p) | Standalone kind signature |
| DefD (XDefD p) (DefaultDecl p) | 'default' declaration |
| ForD (XForD p) (ForeignDecl p) | Foreign declaration |
| WarningD (XWarningD p) (WarnDecls p) | Warning declaration |
| AnnD (XAnnD p) (AnnDecl p) | Annotation declaration |
| RuleD (XRuleD p) (RuleDecls p) | Rule declaration |
| SpliceD (XSpliceD p) (SpliceDecl p) | Splice declaration (Includes quasi-quotes) |
| DocD (XDocD p) (DocDecl p) | Documentation comment declaration |
| RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p) | Role annotation declaration |
| XHsDecl !(XXHsDecl p) |
Instances
| HasHaddock (LocatedA (HsDecl GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| HasHaddock (HsDecl GhcPs) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsDecl GhcPs -> HdkA (HsDecl GhcPs) | |
| type Anno (HsDecl (GhcPass _1)) | |
Defined in GHC.Hs.Decls | |
hsGroupInstDecls :: HsGroup id -> [LInstDecl id] #
isDataDecl :: TyClDecl pass -> Bool #
True = argument is a data/newtype
declaration.
isClassDecl :: TyClDecl pass -> Bool #
type class
isFamilyDecl :: TyClDecl pass -> Bool #
type/data family declaration
isTypeFamilyDecl :: TyClDecl pass -> Bool #
type family declaration
isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool #
open type family info
isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool #
closed type family info
isDataFamilyDecl :: TyClDecl pass -> Bool #
data family declaration
tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass #
tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass] #
tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass] #
tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass] #
tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass] #
collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass] #
docDeclDoc :: DocDecl pass -> LHsDoc pass #
annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p) #
Constructors
| HsRuleAnn | |
Fields
| |
Instances
| NoAnn HsRuleAnn | |
Defined in GHC.Hs.Decls | |
| Data HsRuleAnn | |
Defined in GHC.Hs.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsRuleAnn -> c HsRuleAnn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsRuleAnn # toConstr :: HsRuleAnn -> Constr # dataTypeOf :: HsRuleAnn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsRuleAnn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsRuleAnn) # gmapT :: (forall b. Data b => b -> b) -> HsRuleAnn -> HsRuleAnn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsRuleAnn -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsRuleAnn -> r # gmapQ :: (forall d. Data d => d -> u) -> HsRuleAnn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsRuleAnn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsRuleAnn -> m HsRuleAnn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsRuleAnn -> m HsRuleAnn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsRuleAnn -> m HsRuleAnn # | |
| Eq HsRuleAnn | |
Instances
| Data HsRuleRn | |
Defined in GHC.Hs.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsRuleRn -> c HsRuleRn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsRuleRn # toConstr :: HsRuleRn -> Constr # dataTypeOf :: HsRuleRn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsRuleRn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsRuleRn) # gmapT :: (forall b. Data b => b -> b) -> HsRuleRn -> HsRuleRn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsRuleRn -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsRuleRn -> r # gmapQ :: (forall d. Data d => d -> u) -> HsRuleRn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsRuleRn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsRuleRn -> m HsRuleRn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsRuleRn -> m HsRuleRn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsRuleRn -> m HsRuleRn # | |
data XViaStrategyPs #
Constructors
| XViaStrategyPs [AddEpAnn] (LHsSigType GhcPs) |
Instances
| Outputable XViaStrategyPs | |
Defined in GHC.Hs.Decls Methods ppr :: XViaStrategyPs -> SDoc # | |
data DataDeclRn #
Constructors
| DataDeclRn | |
Fields
| |
Instances
| Data DataDeclRn | |
Defined in GHC.Hs.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataDeclRn -> c DataDeclRn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataDeclRn # toConstr :: DataDeclRn -> Constr # dataTypeOf :: DataDeclRn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataDeclRn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataDeclRn) # gmapT :: (forall b. Data b => b -> b) -> DataDeclRn -> DataDeclRn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataDeclRn -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataDeclRn -> r # gmapQ :: (forall d. Data d => d -> u) -> DataDeclRn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DataDeclRn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataDeclRn -> m DataDeclRn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDeclRn -> m DataDeclRn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDeclRn -> m DataDeclRn # | |
partitionBindsAndSigs :: [LHsDecl GhcPs] -> (LHsBinds GhcPs, [LSig GhcPs], [LFamilyDecl GhcPs], [LTyFamInstDecl GhcPs], [LDataFamInstDecl GhcPs], [LDocDecl GhcPs]) #
Partition a list of HsDecls into function/pattern bindings, signatures, type family declarations, type family instances, and documentation comments.
Panics when given a declaration that cannot be put into any of the output groups.
The primary use of this function is to implement
cvBindsAndSigs.
emptyRdrGroup :: forall (p :: Pass). HsGroup (GhcPass p) #
emptyRnGroup :: forall (p :: Pass). HsGroup (GhcPass p) #
hsGroupTopLevelFixitySigs :: forall (p :: Pass). HsGroup (GhcPass p) -> [LFixitySig (GhcPass p)] #
The fixity signatures for each top-level declaration and class method
in an HsGroup.
See Note [Top-level fixity signatures in an HsGroup]
appendGroups :: forall (p :: Pass). HsGroup (GhcPass p) -> HsGroup (GhcPass p) -> HsGroup (GhcPass p) #
tyFamInstDeclName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyFamInstDecl (GhcPass p) -> IdP (GhcPass p) #
tyFamInstDeclLName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyFamInstDecl (GhcPass p) -> LocatedN (IdP (GhcPass p)) #
tyClDeclLName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyClDecl (GhcPass p) -> LocatedN (IdP (GhcPass p)) #
tcdName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyClDecl (GhcPass p) -> IdP (GhcPass p) #
hsDeclHasCusk :: TyClDecl GhcRn -> Bool #
Does this declaration have a complete, user-supplied kind signature? See Note [CUSKs: complete user-supplied kind signatures]
pp_vanilla_decl_head :: forall (p :: Pass). OutputableBndrId p => XRec (GhcPass p) (IdP (GhcPass p)) -> LHsQTyVars (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc #
familyDeclLName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> XRec (GhcPass p) (IdP (GhcPass p)) #
familyDeclName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> IdP (GhcPass p) #
famResultKindSignature :: forall (p :: Pass). FamilyResultSig (GhcPass p) -> Maybe (LHsKind (GhcPass p)) #
resultVariableName :: forall (a :: Pass). FamilyResultSig (GhcPass a) -> Maybe (IdP (GhcPass a)) #
Maybe return name of the result type variable
derivStrategyName :: DerivStrategy a -> SDoc #
A short description of a DerivStrategy'.
standaloneKindSigName :: forall (p :: Pass). StandaloneKindSig (GhcPass p) -> IdP (GhcPass p) #
getRecConArgs_maybe :: ConDecl GhcRn -> Maybe (LocatedL [LConDeclField GhcRn]) #
hsConDeclTheta :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> [LHsType (GhcPass p)] #
ppDataDefnHeader :: forall (p :: Pass). OutputableBndrId p => (Maybe (LHsContext (GhcPass p)) -> SDoc) -> HsDataDefn (GhcPass p) -> SDoc #
pprTyFamInstDecl :: forall (p :: Pass). OutputableBndrId p => TopLevelFlag -> TyFamInstDecl (GhcPass p) -> SDoc #
pprDataFamInstFlavour :: forall (p :: Pass). DataFamInstDecl (GhcPass p) -> SDoc #
pprHsFamInstLHS :: forall (p :: Pass). OutputableBndrId p => IdP (GhcPass p) -> HsOuterFamEqnTyVarBndrs (GhcPass p) -> HsFamEqnPats (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc #
instDeclDataFamInsts :: forall (p :: Pass). [LInstDecl (GhcPass p)] -> [DataFamInstDecl (GhcPass p)] #
newOrDataToFlavour :: NewOrData -> TyConFlavour tc #
Convert a NewOrData to a TyConFlavour
anyLConIsGadt :: Foldable f => f (GenLocated l (ConDecl pass)) -> Bool #
foldDerivStrategy :: forall p (pass :: Pass) r. p ~ GhcPass pass => r -> (XViaStrategy p -> r) -> DerivStrategy p -> r #
Eliminate a DerivStrategy.
mapDerivStrategy :: forall p (pass :: Pass). p ~ GhcPass pass => (XViaStrategy p -> XViaStrategy p) -> DerivStrategy p -> DerivStrategy p #
Map over the via type if dealing with ViaStrategy. Otherwise,
return the DerivStrategy unchanged.
flattenRuleDecls :: forall (p :: Pass). [LRuleDecls (GhcPass p)] -> [LRuleDecl (GhcPass p)] #
pprFullRuleName :: SourceText -> GenLocated a RuleName -> SDoc #
roleAnnotDeclName :: forall (p :: Pass). RoleAnnotDecl (GhcPass p) -> IdP (GhcPass p) #
module GHC.Hs.Expr
module GHC.Hs.Doc
module GHC.Hs.Extension
module GHC.Hs.ImpExp
module GHC.Hs.Pat
module GHC.Hs.Type
mkHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #
mkHsAppKindTy :: forall (p :: Pass). XAppKindTy (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #
data ImplicitFieldBinders #
All binders corresponding to a single implicit record field pattern.
See Note [Collecting implicit binders].
Constructors
| ImplicitFieldBinders | |
Fields
| |
data LConsWithFields (p :: Pass) #
A mapping from constructors to all of their fields.
See Note [Collecting record fields in data declarations].
Constructors
| LConsWithFields | |
data TyDeclBinders (p :: Pass) #
Constructors
| TyDeclBinders | |
Fields
| |
class UnXRec p => CollectPass p where #
This class specifies how to collect variable identifiers from extension patterns in the given pass. Consumers of the GHC API that define their own passes should feel free to implement instances in order to make use of functions which depend on it.
In particular, Haddock already makes use of this, with an instance for its DocNameI pass so that
it can reuse the code in GHC for collecting binders.
Methods
collectXXPat :: CollectFlag p -> XXPat p -> [IdP p] -> [IdP p] #
collectXXHsBindsLR :: XXHsBindsLR p pR -> [IdP p] -> [IdP p] #
collectXSplicePat :: CollectFlag p -> XSplicePat p -> [IdP p] -> [IdP p] #
Instances
| IsPass p => CollectPass (GhcPass p) | |
Defined in GHC.Hs.Utils Methods collectXXPat :: CollectFlag (GhcPass p) -> XXPat (GhcPass p) -> [IdP (GhcPass p)] -> [IdP (GhcPass p)] # collectXXHsBindsLR :: XXHsBindsLR (GhcPass p) pR -> [IdP (GhcPass p)] -> [IdP (GhcPass p)] # collectXSplicePat :: CollectFlag (GhcPass p) -> XSplicePat (GhcPass p) -> [IdP (GhcPass p)] -> [IdP (GhcPass p)] # | |
data CollectFlag p where #
Indicate if evidence binders and type variable binders have to be collected.
This type enumerates the modes of collecting bound variables | evidence | type | term | ghc | | binders | variables | variables | pass | -------------------------------------------- CollNoDictBinders | no | no | yes | any | CollWithDictBinders | yes | no | yes | GhcTc | CollVarTyVarBinders | no | yes | yes | GhcRn |
See Note [Dictionary binders in ConPatOut]
Constructors
| CollNoDictBinders :: forall p. CollectFlag p | Don't collect evidence binders |
| CollWithDictBinders :: CollectFlag (GhcPass 'Typechecked) | Collect evidence binders |
| CollVarTyVarBinders :: CollectFlag (GhcPass 'Renamed) | Collect variable and type variable binders, but no evidence binders |
mkSimpleMatch :: forall (p :: Pass) body. (Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA, Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ EpAnn NoEpAnns) => HsMatchContext (LIdP (NoGhcTc (GhcPass p))) -> [LPat (GhcPass p)] -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p))) #
unguardedGRHSs :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ EpAnn NoEpAnns => SrcSpan -> LocatedA (body (GhcPass p)) -> EpAnn GrhsAnn -> GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) #
unguardedRHS :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ EpAnn NoEpAnns => EpAnn GrhsAnn -> SrcSpan -> LocatedA (body (GhcPass p)) -> [LGRHS (GhcPass p) (LocatedA (body (GhcPass p)))] #
mkMatchGroup :: forall (p :: Pass) body. AnnoBody p body => Origin -> LocatedL [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] -> MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) #
mkLamCaseMatchGroup :: forall (p :: Pass) body. AnnoBody p body => Origin -> HsLamVariant -> LocatedL [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] -> MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) #
mkLocatedList :: (Semigroup a, NoAnn an) => [GenLocated (EpAnn a) e2] -> LocatedAn an [GenLocated (EpAnn a) e2] #
mkHsApp :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #
mkHsAppWith :: forall (id :: Pass). (LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> HsExpr (GhcPass id) -> LHsExpr (GhcPass id)) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #
mkHsApps :: forall (id :: Pass). LHsExpr (GhcPass id) -> [LHsExpr (GhcPass id)] -> LHsExpr (GhcPass id) #
mkHsAppsWith :: forall (id :: Pass). (LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> HsExpr (GhcPass id) -> LHsExpr (GhcPass id)) -> LHsExpr (GhcPass id) -> [LHsExpr (GhcPass id)] -> LHsExpr (GhcPass id) #
mkHsLam :: forall (p :: Pass). (IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ Origin) => [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p) #
mkHsSyntaxApps :: SrcSpanAnnA -> SyntaxExprTc -> [LHsExpr GhcTc] -> LHsExpr GhcTc #
mkHsCaseAlt :: forall (p :: Pass) body. (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ EpAnn NoEpAnns, Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA) => LPat (GhcPass p) -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p))) #
A simple case alternative with a single pattern, no binds, no guards; pre-typechecking
mkLHsPar :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #
Wrap in parens if says it needs them
So hsExprNeedsParens appPrecf x becomes (f x), but 3 stays as 3.
mkRecStmt :: forall (idL :: Pass) bodyR. Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL => AnnList -> LocatedL [LStmtLR (GhcPass idL) GhcPs bodyR] -> StmtLR (GhcPass idL) GhcPs bodyR #
mkHsIntegral :: IntegralLit -> HsOverLit GhcPs #
mkHsIsString :: SourceText -> FastString -> HsOverLit GhcPs #
mkHsDoAnns :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> AnnList -> HsExpr GhcPs #
mkHsCompAnns :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> AnnList -> HsExpr GhcPs #
mkNPat :: LocatedAn NoEpAnns (HsOverLit GhcPs) -> Maybe (SyntaxExpr GhcPs) -> [AddEpAnn] -> Pat GhcPs #
mkNPlusKPat :: LocatedN RdrName -> LocatedAn NoEpAnns (HsOverLit GhcPs) -> EpaLocation -> Pat GhcPs #
mkTransformStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) #
mkTransformByStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) #
mkGroupUsingStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) #
mkGroupByUsingStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) #
mkLastStmt :: forall (idR :: Pass) bodyR (idL :: Pass). IsPass idR => LocatedA (bodyR (GhcPass idR)) -> StmtLR (GhcPass idL) (GhcPass idR) (LocatedA (bodyR (GhcPass idR))) #
mkBodyStmt :: forall bodyR (idL :: Pass). LocatedA (bodyR GhcPs) -> StmtLR (GhcPass idL) GhcPs (LocatedA (bodyR GhcPs)) #
mkPsBindStmt :: [AddEpAnn] -> LPat GhcPs -> LocatedA (bodyR GhcPs) -> StmtLR GhcPs GhcPs (LocatedA (bodyR GhcPs)) #
mkRnBindStmt :: LPat GhcRn -> LocatedA (bodyR GhcRn) -> StmtLR GhcRn GhcRn (LocatedA (bodyR GhcRn)) #
mkTcBindStmt :: LPat GhcTc -> LocatedA (bodyR GhcTc) -> StmtLR GhcTc GhcTc (LocatedA (bodyR GhcTc)) #
emptyRecStmt :: forall (idL :: Pass) bodyR. Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL => StmtLR (GhcPass idL) GhcPs bodyR #
emptyRecStmtName :: Anno [GenLocated (Anno (StmtLR GhcRn GhcRn bodyR)) (StmtLR GhcRn GhcRn bodyR)] ~ SrcSpanAnnL => StmtLR GhcRn GhcRn bodyR #
mkHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> HsExpr GhcPs #
A useful function for building OpApps. The operator is always a
variable, and we don't know the fixity yet.
mkHsStringFS :: forall (p :: Pass). FastString -> HsLit (GhcPass p) #
mkHsStringPrimLit :: forall (p :: Pass). FastString -> HsLit (GhcPass p) #
mkConLikeTc :: ConLike -> HsExpr GhcTc #
nlHsApp :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #
nlHsSyntaxApps :: SyntaxExprTc -> [LHsExpr GhcTc] -> LHsExpr GhcTc #
nlHsApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [LHsExpr (GhcPass p)] -> LHsExpr (GhcPass p) #
nlHsVarApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [IdP (GhcPass p)] -> LHsExpr (GhcPass p) #
nlNullaryConPat :: RdrName -> LPat GhcPs #
nlWildConPat :: DataCon -> LPat GhcPs #
nlWildPatName :: LPat GhcRn #
Wildcard pattern - after renaming
nlHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #
nlHsTyVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> IdP (GhcPass p) -> LHsType (GhcPass p) #
nlHsFunTy :: forall (p :: Pass). IsPass p => LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #
nlHsTyConApp :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> LexicalFixity -> IdP (GhcPass p) -> [LHsTypeArg (GhcPass p)] -> LHsType (GhcPass p) #
nlHsAppKindTy :: forall (p :: Pass). IsPass p => LHsType (GhcPass p) -> LHsKind (GhcPass p) -> LHsType (GhcPass p) #
mkLHsTupleExpr :: forall (p :: Pass). [LHsExpr (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p) #
mkLHsVarTuple :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p) #
mkBigLHsVarTup :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p) #
The Big equivalents for the source tuple expressions
mkBigLHsTup :: forall (id :: Pass). [LHsExpr (GhcPass id)] -> XExplicitTuple (GhcPass id) -> LHsExpr (GhcPass id) #
hsTypeToHsSigType :: LHsType GhcPs -> LHsSigType GhcPs #
Convert an LHsType to an LHsSigType.
hsTypeToHsSigWcType :: LHsType GhcPs -> LHsSigWcType GhcPs #
Convert an LHsType to an LHsSigWcType.
mkClassOpSigs :: [LSig GhcPs] -> [LSig GhcPs] #
Convert TypeSig to ClassOpSig.
The former is what is parsed, but the latter is
what we need in class/instance declarations
mkHsWrapCo :: TcCoercionN -> HsExpr GhcTc -> HsExpr GhcTc #
mkHsWrapCoR :: TcCoercionR -> HsExpr GhcTc -> HsExpr GhcTc #
mkLHsWrapCo :: TcCoercionN -> LHsExpr GhcTc -> LHsExpr GhcTc #
mkHsWrapPatCo :: TcCoercionN -> Pat GhcTc -> Type -> Pat GhcTc #
mkFunBind :: Origin -> LocatedN RdrName -> [LMatch GhcPs (LHsExpr GhcPs)] -> HsBind GhcPs #
Not infix, with place holders for coercion and free vars
mkTopFunBind :: Origin -> LocatedN Name -> [LMatch GhcRn (LHsExpr GhcRn)] -> HsBind GhcRn #
In Name-land, with empty bind_fvs
mkPatSynBind :: LocatedN RdrName -> HsPatSynDetails GhcPs -> LPat GhcPs -> HsPatSynDir GhcPs -> [AddEpAnn] -> HsBind GhcPs #
isInfixFunBind :: forall id1 id2. UnXRec id2 => HsBindLR id1 id2 -> Bool #
spanHsLocaLBinds :: forall (p :: Pass). HsLocalBinds (GhcPass p) -> SrcSpan #
Return the SrcSpan encompassing the contents of any enclosed binds
mkSimpleGeneratedFunBind :: SrcSpan -> RdrName -> [LPat GhcPs] -> LHsExpr GhcPs -> LHsBind GhcPs #
Convenience function using mkFunBind.
This is for generated bindings only, do not use for user-written code.
mkPrefixFunRhs :: fn -> HsMatchContext fn #
Make a prefix, non-strict function HsMatchContext
mkMatch :: forall (p :: Pass). IsPass p => HsMatchContext (LIdP (NoGhcTc (GhcPass p))) -> [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> HsLocalBinds (GhcPass p) -> LMatch (GhcPass p) (LHsExpr (GhcPass p)) #
isUnliftedHsBind :: HsBind GhcTc -> Bool #
Should we treat this as an unlifted bind? This will be true for any bind that binds an unlifted variable, but we must be careful around AbsBinds. See Note [isUnliftedHsBind]. For usage information, see Note [Strict binds checks] is GHC.HsToCore.Binds.
isUnliftedHsBinds :: LHsBinds GhcTc -> Bool #
isBangedHsBind :: HsBind GhcTc -> Bool #
Is a binding a strict variable or pattern bind (e.g. !x = ...)?
collectLocalBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)] #
collectHsIdBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)] #
collectHsValBinders :: forall (idL :: Pass) idR. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) idR -> [IdP (GhcPass idL)] #
collectHsBindBinders :: CollectPass p => CollectFlag p -> HsBindLR p idR -> [IdP p] #
Collect both Ids and pattern-synonym binders
collectHsBindListBinders :: CollectPass p => CollectFlag p -> [LHsBindLR p idR] -> [IdP p] #
Same as collectHsBindsBinders, but works over a list of bindings
collectMethodBinders :: UnXRec idL => LHsBindsLR idL idR -> [LIdP idL] #
Used exclusively for the bindings of an instance decl which are all
FunBinds
collectLStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [LStmtLR (GhcPass idL) (GhcPass idR) body] -> [IdP (GhcPass idL)] #
collectStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [StmtLR (GhcPass idL) (GhcPass idR) body] -> [IdP (GhcPass idL)] #
collectLStmtBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> LStmtLR (GhcPass idL) (GhcPass idR) body -> [IdP (GhcPass idL)] #
collectStmtBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> StmtLR (GhcPass idL) (GhcPass idR) body -> [IdP (GhcPass idL)] #
collectPatBinders :: CollectPass p => CollectFlag p -> LPat p -> [IdP p] #
collectPatsBinders :: CollectPass p => CollectFlag p -> [LPat p] -> [IdP p] #
hsGroupBinders :: HsGroup GhcRn -> [Name] #
hsTyClForeignBinders :: [TyClGroup GhcRn] -> [LForeignDecl GhcRn] -> [Name] #
hsLTyClDeclBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => LocatedA (TyClDecl (GhcPass p)) -> TyDeclBinders p #
Returns all the binding names of the decl. The first one is guaranteed to be the name of the decl. The first component represents all binding names except record fields; the second represents field occurrences. For record fields mentioned in multiple constructors, the SrcLoc will be from the first occurrence.
Each returned (Located name) has a SrcSpan for the whole declaration. See Note [SrcSpan for binders]
hsForeignDeclsBinders :: forall (p :: Pass) a. (UnXRec (GhcPass p), IsSrcSpanAnn p a) => [LForeignDecl (GhcPass p)] -> [LIdP (GhcPass p)] #
See Note [SrcSpan for binders]
hsPatSynSelectors :: forall (p :: Pass). IsPass p => HsValBinds (GhcPass p) -> [FieldOcc (GhcPass p)] #
Collects record pattern-synonym selectors only; the pattern synonym
names are collected by collectHsValBinders.
getPatSynBinds :: UnXRec id => [(RecFlag, LHsBinds id)] -> [PatSynBind id id] #
hsDataFamInstBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => DataFamInstDecl (GhcPass p) -> LConsWithFields p #
the SrcLoc returned are for the whole declarations, not just the names
lStmtsImplicits :: forall (idR :: Pass) (body :: Type -> Type). [LStmtLR GhcRn (GhcPass idR) (LocatedA (body (GhcPass idR)))] -> [(SrcSpan, [ImplicitFieldBinders])] #
hsValBindsImplicits :: forall (idR :: Pass). HsValBindsLR GhcRn (GhcPass idR) -> [(SrcSpan, [ImplicitFieldBinders])] #
lPatImplicits :: LPat GhcRn -> [(SrcSpan, [ImplicitFieldBinders])] #
Collect all record wild card binders in the given pattern.
These are all the variables bound in all (possibly nested) record wildcard patterns appearing inside the pattern.
See Note [Collecting implicit binders].
lHsRecFieldsImplicits :: [LHsRecField GhcRn (LPat GhcRn)] -> RecFieldsDotDot -> [ImplicitFieldBinders] #
data DerivStrategy pass #
Which technique the user explicitly requested when deriving an instance.
Constructors
| StockStrategy (XStockStrategy pass) | GHC's "standard" strategy, which is to implement a
custom instance for the data type. This only works
for certain types that GHC knows about (e.g., |
| AnyclassStrategy (XAnyClassStrategy pass) | -XDeriveAnyClass |
| NewtypeStrategy (XNewtypeStrategy pass) | -XGeneralizedNewtypeDeriving |
| ViaStrategy (XViaStrategy pass) | -XDerivingVia |
Instances
| ToHie (RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (DerivStrategy (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
data InjectivityAnn pass #
If the user supplied an injectivity annotation it is represented using InjectivityAnn. At the moment this is a single injectivity condition - see Note [Injectivity annotation]. `Located name` stores the LHS of injectivity condition. `[Located name]` stores the RHS of injectivity condition. Example:
type family Foo a b c = r | r -> a c where ...
This will be represented as "InjectivityAnn r [a, c]"
Constructors
| InjectivityAnn (XCInjectivityAnn pass) (LIdP pass) [LIdP pass] | |
| XInjectivityAnn !(XXInjectivityAnn pass) |
Instances
| ToHie (LocatedAn NoEpAnns (InjectivityAnn GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (InjectivityAnn (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
Rule Binder
Constructors
| RuleBndr (XCRuleBndr pass) (LIdP pass) | |
| RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass) | |
| XRuleBndr !(XXRuleBndr pass) |
Instances
| (HiePass p, Data (body (GhcPass p)), AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))) | |
| type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
| type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) | |
Defined in GHC.Hs.Expr | |
| type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
Defined in GHC.Hs.Expr | |
| type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.Types | |
Pattern
Constructors
| WildPat (XWildPat p) | Wildcard Pattern The sole reason for a type on a WildPat is to support hsPatType :: Pat Id -> Type |
| VarPat (XVarPat p) (LIdP p) | Variable Pattern |
| LazyPat (XLazyPat p) (LPat p) | Lazy Pattern
^ - |
| AsPat (XAsPat p) (LIdP p) (LPat p) | As pattern
^ - |
| ParPat (XParPat p) (LPat p) | Parenthesised pattern
See Note [Parens in HsSyn] in GHC.Hs.Expr
^ - |
| BangPat (XBangPat p) (LPat p) | Bang pattern
^ - |
| ListPat (XListPat p) [LPat p] | Syntactic List
|
| TuplePat (XTuplePat p) [LPat p] Boxity | Tuple sub-patterns
|
| SumPat (XSumPat p) (LPat p) ConTag SumWidth | Anonymous sum pattern
|
| ConPat | Constructor Pattern |
Fields
| |
| ViewPat | |
| SplicePat |
|
Fields
| |
| LitPat (XLitPat p) (HsLit p) | Literal Pattern Used for *non-overloaded* literal patterns: Int#, Char#, Int, Char, String, etc. |
| NPat (XNPat p) (XRec p (HsOverLit p)) (Maybe (SyntaxExpr p)) (SyntaxExpr p) | Natural Pattern
|
| NPlusKPat (XNPlusKPat p) (LIdP p) (XRec p (HsOverLit p)) (HsOverLit p) (SyntaxExpr p) (SyntaxExpr p) | n+k pattern |
| SigPat | |
Fields
| |
| EmbTyPat (XEmbTyPat p) (HsTyPat (NoGhcTc p)) | |
| InvisPat (XInvisPat p) (HsTyPat (NoGhcTc p)) | |
| XPat !(XXPat p) | |
When we only care whether a data-type declaration is `data` or `newtype`, but not what constructors it has
Instances
| Data NewOrData | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NewOrData -> c NewOrData # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NewOrData # toConstr :: NewOrData -> Constr # dataTypeOf :: NewOrData -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NewOrData) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NewOrData) # gmapT :: (forall b. Data b => b -> b) -> NewOrData -> NewOrData # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NewOrData -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NewOrData -> r # gmapQ :: (forall d. Data d => d -> u) -> NewOrData -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> NewOrData -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> NewOrData -> m NewOrData # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NewOrData -> m NewOrData # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NewOrData -> m NewOrData # | |
| Eq NewOrData | |
Warning pragma Declaration
Constructors
| Warning (XWarning pass) [LIdP pass] (WarningTxt pass) | |
| XWarnDecl !(XXWarnDecl pass) |
Annotation Declaration
Constructors
| HsAnnotation (XHsAnnotation pass) (AnnProvenance pass) (XRec pass (HsExpr pass)) | |
| XAnnDecl !(XXAnnDecl pass) |
Imported or exported entity.
Constructors
| IEVar (XIEVar pass) (LIEWrappedName pass) (Maybe (ExportDoc pass)) | Imported or exported variable module Mod ( test ) import Mod ( test ) |
| IEThingAbs (XIEThingAbs pass) (LIEWrappedName pass) (Maybe (ExportDoc pass)) | Imported or exported Thing with absent subordinate list The thing is a typeclass or type (can't tell)
- module Mod ( Test ) import Mod ( Test ) |
| IEThingAll (XIEThingAll pass) (LIEWrappedName pass) (Maybe (ExportDoc pass)) | Imported or exported thing with wildcard subordinate list (e..g The thing is a ClassType and the All refers to methodsconstructors
|
| IEThingWith (XIEThingWith pass) (LIEWrappedName pass) IEWildcard [LIEWrappedName pass] (Maybe (ExportDoc pass)) | Imported or exported thing with explicit subordinate list. The thing is a Class/Type and the imported or exported things are
its children.
- |
| IEModuleContents (XIEModuleContents pass) (XRec pass ModuleName) | Imported or exported module contents (Export Only) module Mod ( module Mod2 ) |
| IEGroup (XIEGroup pass) Int (LHsDoc pass) | Doc section heading ^ A Haddock section in an export list. module Mod
( -- * Section heading
...
)
|
| IEDoc (XIEDoc pass) (LHsDoc pass) | Some documentation ^ A bit of unnamed documentation. module Mod
( -- | Documentation
...
)
|
| IEDocNamed (XIEDocNamed pass) String | Reference to named doc ^ A reference to a named documentation chunk. module Mod
( -- $chunkName
...
)
|
| XIE !(XXIE pass) |
Instances
| ToHie (IEContext (LocatedA (IE GhcRn))) | |
| HasHaddock (LocatedA (IE GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| HasHaddock (LocatedL [LocatedA (IE GhcPs)]) | Only for module exports, not module imports. module M (a, b, c) where -- use on this [LIE GhcPs] import I (a, b, c) -- do not use here! Imports cannot have documentation comments anyway. |
Defined in GHC.Parser.PostProcess.Haddock | |
| type Anno (LocatedA (IE (GhcPass p))) | |
Defined in GHC.Hs.ImpExp | |
| type Anno (IE (GhcPass p)) | |
Defined in GHC.Hs.ImpExp | |
| type Anno [LocatedA (IE (GhcPass p))] | |
Defined in GHC.Hs.ImpExp | |
A Haskell expression.
Constructors
| HsVar (XVar p) (LIdP p) | Variable See Note [Located RdrNames] |
| HsUnboundVar (XUnboundVar p) RdrName | Unbound variable; also used for "holes" (_ or _x). Turned from HsVar to HsUnboundVar by the renamer, when it finds an out-of-scope variable or hole. The (XUnboundVar p) field becomes an HoleExprRef after typechecking; this is where the erroring expression will be written after solving. See Note [Holes] in GHC.Tc.Types.Constraint. |
| HsRecSel (XRecSel p) (FieldOcc p) | Variable pointing to record selector See Note [Non-overloaded record field selectors] and Note [Record selectors in the AST] |
| HsOverLabel (XOverLabel p) SourceText FastString | Overloaded label (Note [Overloaded labels] in GHC.OverloadedLabels) Note [Pragma source text] in GHC.Types.SourceText |
| HsIPVar (XIPVar p) HsIPName | Implicit parameter (not in use after typechecking) |
| HsOverLit (XOverLitE p) (HsOverLit p) | Overloaded literals |
| HsLit (XLitE p) (HsLit p) | Simple (non-overloaded) literals |
| HsLam | Lambda, Lambda-case, and Lambda-cases |
Fields
| |
| HsApp (XApp p) (LHsExpr p) (LHsExpr p) | Application |
| HsAppType (XAppTypeE p) (LHsExpr p) (LHsWcType (NoGhcTc p)) | Visible type application Explicit type argument; e.g f @Int x y NB: Has wildcards, but no implicit quantification |
| OpApp (XOpApp p) (LHsExpr p) (LHsExpr p) (LHsExpr p) | Operator applications: NB Bracketed ops such as (+) come out as Vars. |
| NegApp (XNegApp p) (LHsExpr p) (SyntaxExpr p) | Negation operator. Contains the negated expression and the name
of |
| HsPar |
|
| SectionL (XSectionL p) (LHsExpr p) (LHsExpr p) | |
| SectionR (XSectionR p) (LHsExpr p) (LHsExpr p) | |
| ExplicitTuple (XExplicitTuple p) [HsTupArg p] Boxity | Used for explicit tuples and sections thereof |
| ExplicitSum (XExplicitSum p) ConTag SumWidth (LHsExpr p) | Used for unboxed sum types
There will be multiple |
| HsCase (XCase p) (LHsExpr p) (MatchGroup p (LHsExpr p)) |
|
| HsIf (XIf p) (LHsExpr p) (LHsExpr p) (LHsExpr p) | |
| HsMultiIf (XMultiIf p) [LGRHS p (LHsExpr p)] | Multi-way if |
| HsLet (XLet p) (HsLocalBinds p) (LHsExpr p) | let(rec)
|
| HsDo (XDo p) HsDoFlavour (XRec p [ExprLStmt p]) | |
| ExplicitList (XExplicitList p) [LHsExpr p] | Syntactic list: [a,b,c,...]
|
| RecordCon | Record construction
|
Fields
| |
| RecordUpd | Record update |
Fields
| |
| HsGetField | Record field selection e.g |
| HsProjection | Record field selector. e.g. This case only arises when the OverloadedRecordDot langauge extensions is enabled. See Note [Record selectors in the AST]. |
Fields
| |
| ExprWithTySig (XExprWithTySig p) (LHsExpr p) (LHsSigWcType (NoGhcTc p)) | Expression with an explicit type signature. |
| ArithSeq (XArithSeq p) (Maybe (SyntaxExpr p)) (ArithSeqInfo p) | Arithmetic sequence
|
| HsTypedBracket (XTypedBracket p) (LHsExpr p) | |
| HsUntypedBracket (XUntypedBracket p) (HsQuote p) | |
| HsTypedSplice (XTypedSplice p) (LHsExpr p) | |
| HsUntypedSplice (XUntypedSplice p) (HsUntypedSplice p) | |
| HsProc (XProc p) (LPat p) (LHsCmdTop p) |
|
| HsStatic (XStatic p) (LHsExpr p) | |
| HsPragE (XPragE p) (HsPragE p) (LHsExpr p) | |
| HsEmbTy (XEmbTy p) (LHsWcType (NoGhcTc p)) | |
| XExpr !(XXExpr p) | |
Instances
data NoExtField #
A placeholder type for TTG extension points that are not currently unused to represent any particular value.
This should not be confused with DataConCantHappen, which are found in unused
extension constructors and therefore should never be inhabited. In
contrast, NoExtField is used in extension points (e.g., as the field of
some constructor), so it must have an inhabitant to construct AST passes
that manipulate fields with that extension point as their type.
Constructors
| NoExtField |
Instances
| Data NoExtField | |
Defined in Language.Haskell.Syntax.Extension Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NoExtField -> c NoExtField # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NoExtField # toConstr :: NoExtField -> Constr # dataTypeOf :: NoExtField -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NoExtField) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NoExtField) # gmapT :: (forall b. Data b => b -> b) -> NoExtField -> NoExtField # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NoExtField -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NoExtField -> r # gmapQ :: (forall d. Data d => d -> u) -> NoExtField -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> NoExtField -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> NoExtField -> m NoExtField # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NoExtField -> m NoExtField # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NoExtField -> m NoExtField # | |
| Eq NoExtField | |
Defined in Language.Haskell.Syntax.Extension | |
| Ord NoExtField | |
Defined in Language.Haskell.Syntax.Extension Methods compare :: NoExtField -> NoExtField -> Ordering # (<) :: NoExtField -> NoExtField -> Bool # (<=) :: NoExtField -> NoExtField -> Bool # (>) :: NoExtField -> NoExtField -> Bool # (>=) :: NoExtField -> NoExtField -> Bool # max :: NoExtField -> NoExtField -> NoExtField # min :: NoExtField -> NoExtField -> NoExtField # | |
| ToHie (Context (Located NoExtField)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (Located NoExtField) -> HieM [HieAST Type] | |
See Note [NoGhcTc] in GHC.Hs.Extension. It has to be in this module because it is used like an extension point (in the data definitions of types that should be parameter-agnostic.
Instances
| type NoGhcTc (GhcPass pass) | Marks that a field uses the GhcRn variant even when the pass parameter is GhcTc. Useful for storing HsTypes in GHC.Hs.Exprs, say, because HsType GhcTc should never occur. See Note [NoGhcTc] |
Defined in GHC.Hs.Extension | |
type family XXIEWrappedName p #
Instances
| type XXIEWrappedName (GhcPass _1) | |
Defined in GHC.Hs.ImpExp | |
Instances
| type XIEType (GhcPass _1) | |
Defined in GHC.Hs.ImpExp | |
type family XIEPattern p #
Instances
| type XIEPattern (GhcPass _1) | |
Defined in GHC.Hs.ImpExp | |
Instances
| type XIEName (GhcPass _1) | |
Defined in GHC.Hs.ImpExp | |
Instances
| type XXIE (GhcPass _1) | |
Defined in GHC.Hs.ImpExp | |
type family XIEDocNamed x #
Instances
| type XIEDocNamed (GhcPass _1) | |
Defined in GHC.Hs.ImpExp | |
Instances
| type XIEDoc (GhcPass _1) | |
Defined in GHC.Hs.ImpExp | |
Instances
| type XIEGroup (GhcPass _1) | |
Defined in GHC.Hs.ImpExp | |
type family XIEModuleContents x #
Instances
| type XIEModuleContents GhcPs | |
Defined in GHC.Hs.ImpExp | |
| type XIEModuleContents GhcRn | |
Defined in GHC.Hs.ImpExp | |
| type XIEModuleContents GhcTc | |
Defined in GHC.Hs.ImpExp | |
type family XIEThingWith x #
Instances
| type XIEThingWith GhcPs | |
Defined in GHC.Hs.ImpExp | |
| type XIEThingWith GhcRn | |
Defined in GHC.Hs.ImpExp | |
| type XIEThingWith GhcTc | |
Defined in GHC.Hs.ImpExp | |
type family XIEThingAll x #
Instances
| type XIEThingAll GhcPs | |
Defined in GHC.Hs.ImpExp | |
| type XIEThingAll GhcRn | |
Defined in GHC.Hs.ImpExp | |
| type XIEThingAll GhcTc | |
Defined in GHC.Hs.ImpExp | |
type family XIEThingAbs x #
Instances
| type XIEThingAbs GhcPs | |
Defined in GHC.Hs.ImpExp | |
| type XIEThingAbs GhcRn | |
Defined in GHC.Hs.ImpExp | |
| type XIEThingAbs GhcTc | |
Defined in GHC.Hs.ImpExp | |
Instances
| type XIEVar GhcPs | |
Defined in GHC.Hs.ImpExp | |
| type XIEVar GhcRn | |
Defined in GHC.Hs.ImpExp | |
| type XIEVar GhcTc | |
Defined in GHC.Hs.ImpExp | |
type family ImportDeclPkgQual x #
Instances
| type ImportDeclPkgQual GhcPs | |
Defined in GHC.Hs.ImpExp | |
| type ImportDeclPkgQual GhcRn | |
Defined in GHC.Hs.ImpExp | |
| type ImportDeclPkgQual GhcTc | |
Defined in GHC.Hs.ImpExp | |
type family XXImportDecl x #
Instances
| type XXImportDecl (GhcPass _1) | |
Defined in GHC.Hs.ImpExp | |
type family XCImportDecl x #
Instances
| type XCImportDecl GhcPs | |
Defined in GHC.Hs.ImpExp | |
| type XCImportDecl GhcRn | |
Defined in GHC.Hs.ImpExp | |
| type XCImportDecl GhcTc | |
Defined in GHC.Hs.ImpExp | |
type family XXFieldOcc x #
Instances
| type XXFieldOcc (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XCFieldOcc x #
Instances
| type XCFieldOcc GhcPs | |
Defined in GHC.Hs.Type | |
| type XCFieldOcc GhcRn | |
Defined in GHC.Hs.Type | |
| type XCFieldOcc GhcTc | |
Defined in GHC.Hs.Type | |
type family XXConDeclField x #
Instances
| type XXConDeclField (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XConDeclField x #
Instances
| type XConDeclField (GhcPass _1) | |
Defined in GHC.Hs.Type | |
data ConDeclField pass #
Constructor Declaration Field
Constructors
| ConDeclField | |
Fields
| |
| XConDeclField !(XXConDeclField pass) | |
Instances
| ToHie (LocatedA (ConDeclField GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (ConDeclField (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno [LocatedA (ConDeclField (GhcPass _1))] | |
Defined in GHC.Hs.Decls | |
type family XXTyVarBndr x #
Instances
| type XXTyVarBndr (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XKindedTyVar x #
Instances
| type XKindedTyVar (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XUserTyVar x #
Instances
| type XUserTyVar (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XXHsForAllTelescope x #
Instances
| type XXHsForAllTelescope (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XHsForAllInvis x #
Instances
| type XHsForAllInvis (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XHsForAllVis x #
Instances
| type XHsForAllVis (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XXTyLit (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XCharTy (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XStrTy (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XNumTy (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XWildCardTy x #
Instances
| type XWildCardTy (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XTyLit (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Haskell Type Literal
type family XExplicitTupleTy x #
Instances
| type XExplicitTupleTy GhcPs | |
Defined in GHC.Hs.Type | |
| type XExplicitTupleTy GhcRn | |
Defined in GHC.Hs.Type | |
| type XExplicitTupleTy GhcTc | |
Defined in GHC.Hs.Type | |
type family XExplicitListTy x #
Instances
| type XExplicitListTy GhcPs | |
Defined in GHC.Hs.Type | |
| type XExplicitListTy GhcRn | |
Defined in GHC.Hs.Type | |
| type XExplicitListTy GhcTc | |
Defined in GHC.Hs.Type | |
Instances
| type XRecTy GhcPs | |
Defined in GHC.Hs.Type | |
| type XRecTy GhcRn | |
Defined in GHC.Hs.Type | |
| type XRecTy GhcTc | |
Defined in GHC.Hs.Type | |
Instances
| type XSpliceTy GhcPs | |
Defined in GHC.Hs.Type | |
| type XSpliceTy GhcRn | |
Defined in GHC.Hs.Type | |
| type XSpliceTy GhcTc | |
Defined in GHC.Hs.Type | |
Instances
| type XStarTy (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XFunTy (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XAppKindTy x #
Instances
| type XAppKindTy GhcPs | |
Defined in GHC.Hs.Type | |
| type XAppKindTy GhcRn | |
Defined in GHC.Hs.Type | |
| type XAppKindTy GhcTc | |
Defined in GHC.Hs.Type | |
Instances
| type XAppTy (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XQualTy (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XForAllTy (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XXHsTyPat (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XHsTP GhcPs | |
Defined in GHC.Hs.Type | |
| type XHsTP GhcRn | |
Defined in GHC.Hs.Type | |
| type XHsTP GhcTc | |
Defined in GHC.Hs.Type | |
type family XXHsPatSigType x #
Instances
| type XXHsPatSigType (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XXHsWildCardBndrs x b #
Instances
| type XXHsWildCardBndrs (GhcPass _1) _2 | |
Defined in GHC.Hs.Type | |
Instances
| type XHsWC GhcPs b | |
Defined in GHC.Hs.Type | |
| type XHsWC GhcRn b | |
Defined in GHC.Hs.Type | |
| type XHsWC GhcTc b | |
Defined in GHC.Hs.Type | |
type family XXHsSigType x #
Instances
| type XXHsSigType (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XHsSig (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XXHsOuterTyVarBndrs x #
Instances
| type XXHsOuterTyVarBndrs (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XHsOuterExplicit x flag #
Instances
| type XHsOuterExplicit GhcPs _1 | |
Defined in GHC.Hs.Type | |
| type XHsOuterExplicit GhcRn _1 | |
Defined in GHC.Hs.Type | |
| type XHsOuterExplicit GhcTc flag | |
Defined in GHC.Hs.Type | |
type family XHsOuterImplicit x #
Instances
| type XHsOuterImplicit GhcPs | |
Defined in GHC.Hs.Type | |
| type XHsOuterImplicit GhcRn | |
Defined in GHC.Hs.Type | |
| type XHsOuterImplicit GhcTc | |
Defined in GHC.Hs.Type | |
type family XXLHsQTyVars x #
Instances
| type XXLHsQTyVars (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XHsQTvs GhcPs | |
Defined in GHC.Hs.Type | |
| type XHsQTvs GhcRn | |
Defined in GHC.Hs.Type | |
| type XHsQTvs GhcTc | |
Defined in GHC.Hs.Type | |
type family XHsFieldBind x #
Instances
| type XHsFieldBind _1 | |
Defined in GHC.Hs.Pat | |
Instances
| type XXPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XXPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XXPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XInvisPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XInvisPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XInvisPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XEmbTyPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XEmbTyPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XEmbTyPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XSigPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XSigPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XSigPat GhcTc | |
Defined in GHC.Hs.Pat | |
type family XNPlusKPat x #
Instances
| type XNPlusKPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XNPlusKPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XNPlusKPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XLitPat (GhcPass _1) | |
Defined in GHC.Hs.Pat | |
type family XSplicePat x #
Instances
| type XSplicePat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XSplicePat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XSplicePat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XConPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XConPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XConPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XSumPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XSumPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XSumPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XTuplePat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XTuplePat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XTuplePat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XListPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XListPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XListPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XBangPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XBangPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XBangPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XParPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XParPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XParPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XAsPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XAsPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XAsPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XLazyPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XLazyPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XLazyPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XVarPat (GhcPass _1) | |
Defined in GHC.Hs.Pat | |
Instances
| type XWildPat GhcPs | |
Defined in GHC.Hs.Pat | |
| type XWildPat GhcRn | |
Defined in GHC.Hs.Pat | |
| type XWildPat GhcTc | |
Defined in GHC.Hs.Pat | |
Instances
| type XXOverLit (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
Instances
| type XOverLit GhcPs | |
Defined in GHC.Hs.Lit | |
| type XOverLit GhcRn | |
Defined in GHC.Hs.Lit | |
| type XOverLit GhcTc | |
Defined in GHC.Hs.Lit | |
Haskell Overloaded Literal
Instances
| HiePass p => ToHie (LocatedA (HsOverLit (GhcPass p))) | |
| Eq (XXOverLit p) => Eq (HsOverLit p) | |
| Ord (XXOverLit p) => Ord (HsOverLit p) | |
Defined in Language.Haskell.Syntax.Lit | |
| type Anno (HsOverLit (GhcPass p)) | |
Defined in GHC.Hs.Pat | |
Instances
| type XXLit (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsDoublePrim x #
Instances
| type XHsDoublePrim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsFloatPrim x #
Instances
| type XHsFloatPrim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
Instances
| type XHsRat (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsInteger x #
Instances
| type XHsInteger (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsWord64Prim x #
Instances
| type XHsWord64Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsWord32Prim x #
Instances
| type XHsWord32Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsWord16Prim x #
Instances
| type XHsWord16Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsWord8Prim x #
Instances
| type XHsWord8Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsInt64Prim x #
Instances
| type XHsInt64Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsInt32Prim x #
Instances
| type XHsInt32Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsInt16Prim x #
Instances
| type XHsInt16Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsInt8Prim x #
Instances
| type XHsInt8Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsWordPrim x #
Instances
| type XHsWordPrim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsIntPrim x #
Instances
| type XHsIntPrim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
Instances
| type XHsInt (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsStringPrim x #
Instances
| type XHsStringPrim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
Instances
| type XHsString (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XHsCharPrim x #
Instances
| type XHsCharPrim (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
Instances
| type XHsChar (GhcPass _1) | |
Defined in GHC.Hs.Lit | |
type family XXApplicativeArg x #
Instances
| type XXApplicativeArg (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type family XApplicativeArgMany x #
Instances
| type XApplicativeArgMany (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type family XApplicativeArgOne x #
Instances
| type XApplicativeArgOne GhcPs | |
Defined in GHC.Hs.Expr | |
| type XApplicativeArgOne GhcRn | |
Defined in GHC.Hs.Expr | |
| type XApplicativeArgOne GhcTc | |
Defined in GHC.Hs.Expr | |
type family XXParStmtBlock x x' #
Instances
| type XXParStmtBlock (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Expr | |
type family XParStmtBlock x x' #
Instances
| type XParStmtBlock (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Expr | |
data ParStmtBlock idL idR #
Parenthesised Statement Block
Constructors
| ParStmtBlock (XParStmtBlock idL idR) [ExprLStmt idL] [IdP idR] (SyntaxExpr idR) | |
| XParStmtBlock !(XXParStmtBlock idL idR) |
Instances
| type XXCmd GhcPs | |
Defined in GHC.Hs.Expr | |
| type XXCmd GhcRn | |
Defined in GHC.Hs.Expr | |
| type XXCmd GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XCmdWrap (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XCmdDo GhcPs | |
Defined in GHC.Hs.Expr | |
| type XCmdDo GhcRn | |
Defined in GHC.Hs.Expr | |
| type XCmdDo GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XCmdLet GhcPs | |
Defined in GHC.Hs.Expr | |
| type XCmdLet GhcRn | |
Defined in GHC.Hs.Expr | |
| type XCmdLet GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XCmdIf GhcPs | |
Defined in GHC.Hs.Expr | |
| type XCmdIf GhcRn | |
Defined in GHC.Hs.Expr | |
| type XCmdIf GhcTc | |
Defined in GHC.Hs.Expr | |
type family XCmdLamCase x #
Instances
| type XCmdLamCase (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XCmdCase GhcPs | |
Defined in GHC.Hs.Expr | |
| type XCmdCase GhcRn | |
Defined in GHC.Hs.Expr | |
| type XCmdCase GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XCmdPar GhcPs | |
Defined in GHC.Hs.Expr | |
| type XCmdPar GhcRn | |
Defined in GHC.Hs.Expr | |
| type XCmdPar GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XCmdLam (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XCmdApp (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type family XCmdArrForm x #
Instances
| type XCmdArrForm GhcPs | |
Defined in GHC.Hs.Expr | |
| type XCmdArrForm GhcRn | |
Defined in GHC.Hs.Expr | |
| type XCmdArrForm GhcTc | |
Defined in GHC.Hs.Expr | |
type family XCmdArrApp x #
Instances
| type XCmdArrApp GhcPs | |
Defined in GHC.Hs.Expr | |
| type XCmdArrApp GhcRn | |
Defined in GHC.Hs.Expr | |
| type XCmdArrApp GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XXStmtLR (GhcPass _1) (GhcPass _2) b | |
Defined in GHC.Hs.Expr | |
Instances
| type XRecStmt (GhcPass _1) GhcPs b | |
Defined in GHC.Hs.Expr | |
| type XRecStmt (GhcPass _1) GhcRn b | |
Defined in GHC.Hs.Expr | |
| type XRecStmt (GhcPass _1) GhcTc b | |
Defined in GHC.Hs.Expr | |
type family XTransStmt x x' b #
Instances
| type XTransStmt (GhcPass _1) GhcPs b | |
Defined in GHC.Hs.Expr | |
| type XTransStmt (GhcPass _1) GhcRn b | |
Defined in GHC.Hs.Expr | |
| type XTransStmt (GhcPass _1) GhcTc b | |
Defined in GHC.Hs.Expr | |
Instances
| type XParStmt (GhcPass _1) GhcPs b | |
Defined in GHC.Hs.Expr | |
| type XParStmt (GhcPass _1) GhcRn b | |
Defined in GHC.Hs.Expr | |
| type XParStmt (GhcPass _1) GhcTc b | |
Defined in GHC.Hs.Expr | |
type family XBodyStmt x x' b #
Instances
| type XBodyStmt (GhcPass _1) GhcPs b | |
Defined in GHC.Hs.Expr | |
| type XBodyStmt (GhcPass _1) GhcRn b | |
Defined in GHC.Hs.Expr | |
| type XBodyStmt (GhcPass _1) GhcTc b | |
Defined in GHC.Hs.Expr | |
type family XApplicativeStmt x x' b #
Instances
| type XApplicativeStmt (GhcPass _1) GhcPs b | |
Defined in GHC.Hs.Expr | |
| type XApplicativeStmt (GhcPass _1) GhcRn b | |
Defined in GHC.Hs.Expr | |
| type XApplicativeStmt (GhcPass _1) GhcTc b | |
Defined in GHC.Hs.Expr | |
type family XBindStmt x x' b #
Instances
| type XBindStmt (GhcPass _1) GhcPs b | |
Defined in GHC.Hs.Expr | |
| type XBindStmt (GhcPass _1) GhcRn b | |
Defined in GHC.Hs.Expr | |
| type XBindStmt (GhcPass _1) GhcTc b | |
Defined in GHC.Hs.Expr | |
type family XLastStmt x x' b #
Instances
| type XLastStmt (GhcPass _1) (GhcPass _2) b | |
Defined in GHC.Hs.Expr | |
Instances
| type XXGRHS (GhcPass _1) b | |
Defined in GHC.Hs.Expr | |
Instances
| type XXGRHSs (GhcPass _1) _2 | |
Defined in GHC.Hs.Expr | |
Instances
| type XCGRHSs (GhcPass _1) _2 | |
Defined in GHC.Hs.Expr | |
Instances
| type XXMatch (GhcPass _1) b | |
Defined in GHC.Hs.Expr | |
type family XXMatchGroup x b #
Instances
| type XXMatchGroup (GhcPass _1) b | |
Defined in GHC.Hs.Expr | |
Instances
| type XMG GhcPs b | |
Defined in GHC.Hs.Expr | |
| type XMG GhcRn b | |
Defined in GHC.Hs.Expr | |
| type XMG GhcTc b | |
Defined in GHC.Hs.Expr | |
Instances
| type XXCmdTop (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XCmdTop GhcPs | |
Defined in GHC.Hs.Expr | |
| type XCmdTop GhcRn | |
Defined in GHC.Hs.Expr | |
| type XCmdTop GhcTc | |
Defined in GHC.Hs.Expr | |
Haskell Top-level Command
Instances
| type XXQuote GhcPs | |
Defined in GHC.Hs.Expr | |
| type XXQuote GhcRn | |
Defined in GHC.Hs.Expr | |
| type XXQuote GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XVarBr GhcPs | |
Defined in GHC.Hs.Expr | |
| type XVarBr GhcRn | |
Defined in GHC.Hs.Expr | |
| type XVarBr GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XTypBr GhcPs | |
Defined in GHC.Hs.Expr | |
| type XTypBr GhcRn | |
Defined in GHC.Hs.Expr | |
| type XTypBr GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XDecBrG GhcPs | |
Defined in GHC.Hs.Expr | |
| type XDecBrG GhcRn | |
Defined in GHC.Hs.Expr | |
| type XDecBrG GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XDecBrL GhcPs | |
Defined in GHC.Hs.Expr | |
| type XDecBrL GhcRn | |
Defined in GHC.Hs.Expr | |
| type XDecBrL GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XPatBr GhcPs | |
Defined in GHC.Hs.Expr | |
| type XPatBr GhcRn | |
Defined in GHC.Hs.Expr | |
| type XPatBr GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XExpBr GhcPs | |
Defined in GHC.Hs.Expr | |
| type XExpBr GhcRn | |
Defined in GHC.Hs.Expr | |
| type XExpBr GhcTc | |
Defined in GHC.Hs.Expr | |
type family XXUntypedSplice x #
Instances
| type XXUntypedSplice p | |
Defined in GHC.Hs.Expr | |
type family XQuasiQuote x #
Instances
| type XQuasiQuote p | |
Defined in GHC.Hs.Expr | |
type family XUntypedSpliceExpr x #
Instances
| type XUntypedSpliceExpr GhcPs | |
Defined in GHC.Hs.Expr | |
| type XUntypedSpliceExpr GhcRn | |
Defined in GHC.Hs.Expr | |
| type XUntypedSpliceExpr GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XXTupArg (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XMissing GhcPs | |
Defined in GHC.Hs.Expr | |
| type XMissing GhcRn | |
Defined in GHC.Hs.Expr | |
| type XMissing GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XPresent (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type family XXAmbiguousFieldOcc x #
Instances
| type XXAmbiguousFieldOcc (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XAmbiguous x #
Instances
| type XAmbiguous GhcPs | |
Defined in GHC.Hs.Type | |
| type XAmbiguous GhcRn | |
Defined in GHC.Hs.Type | |
| type XAmbiguous GhcTc | |
Defined in GHC.Hs.Type | |
type family XUnambiguous x #
Instances
| type XUnambiguous GhcPs | |
Defined in GHC.Hs.Type | |
| type XUnambiguous GhcRn | |
Defined in GHC.Hs.Type | |
| type XUnambiguous GhcTc | |
Defined in GHC.Hs.Type | |
Instances
| type XXPragE (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XSCC (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type family XXDotFieldOcc x #
Instances
| type XXDotFieldOcc (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type family XCDotFieldOcc x #
Instances
| type XCDotFieldOcc (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XXExpr GhcPs | |
Defined in GHC.Hs.Expr | |
| type XXExpr GhcRn | |
Defined in GHC.Hs.Expr | |
| type XXExpr GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XEmbTy GhcPs | |
Defined in GHC.Hs.Expr | |
| type XEmbTy GhcRn | |
Defined in GHC.Hs.Expr | |
| type XEmbTy GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XPragE (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type family XUntypedSplice x #
Instances
| type XUntypedSplice GhcPs | |
Defined in GHC.Hs.Expr | |
| type XUntypedSplice GhcRn | |
Defined in GHC.Hs.Expr | |
| type XUntypedSplice GhcTc | |
Defined in GHC.Hs.Expr | |
data HsUntypedSplice id #
Haskell Splice
Constructors
| HsUntypedSpliceExpr (XUntypedSpliceExpr id) (LHsExpr id) | |
| HsQuasiQuote (XQuasiQuote id) (IdP id) (XRec id FastString) | |
| XUntypedSplice !(XXUntypedSplice id) |
Instances
| HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (HsUntypedSplice (GhcPass p)) | |
Defined in GHC.Hs.Expr | |
type family XTypedSplice x #
Instances
| type XTypedSplice GhcPs | |
Defined in GHC.Hs.Expr | |
| type XTypedSplice GhcRn | |
Defined in GHC.Hs.Expr | |
| type XTypedSplice GhcTc | |
Defined in GHC.Hs.Expr | |
type family XUntypedBracket x #
Instances
| type XUntypedBracket GhcPs | |
Defined in GHC.Hs.Expr | |
| type XUntypedBracket GhcRn | |
Defined in GHC.Hs.Expr | |
| type XUntypedBracket GhcTc | |
Defined in GHC.Hs.Expr | |
type family XTypedBracket x #
Instances
| type XTypedBracket GhcPs | |
Defined in GHC.Hs.Expr | |
| type XTypedBracket GhcRn | |
Defined in GHC.Hs.Expr | |
| type XTypedBracket GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XArithSeq GhcPs | |
Defined in GHC.Hs.Expr | |
| type XArithSeq GhcRn | |
Defined in GHC.Hs.Expr | |
| type XArithSeq GhcTc | |
Defined in GHC.Hs.Expr | |
type family XExprWithTySig x #
Instances
| type XExprWithTySig GhcPs | |
Defined in GHC.Hs.Expr | |
| type XExprWithTySig GhcRn | |
Defined in GHC.Hs.Expr | |
| type XExprWithTySig GhcTc | |
Defined in GHC.Hs.Expr | |
type family XProjection x #
Instances
| type XProjection GhcPs | |
Defined in GHC.Hs.Expr | |
| type XProjection GhcRn | |
Defined in GHC.Hs.Expr | |
| type XProjection GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XGetField GhcPs | |
Defined in GHC.Hs.Expr | |
| type XGetField GhcRn | |
Defined in GHC.Hs.Expr | |
| type XGetField GhcTc | |
Defined in GHC.Hs.Expr | |
type family XLHsOLRecUpdLabels x #
Instances
| type XLHsOLRecUpdLabels p | |
Defined in GHC.Hs.Expr | |
type family XLHsRecUpdLabels x #
Instances
| type XLHsRecUpdLabels GhcPs | |
Defined in GHC.Hs.Expr | |
| type XLHsRecUpdLabels GhcRn | |
Defined in GHC.Hs.Expr | |
| type XLHsRecUpdLabels GhcTc | |
Defined in GHC.Hs.Expr | |
type family XRecordUpd x #
Instances
| type XRecordUpd GhcPs | |
Defined in GHC.Hs.Expr | |
| type XRecordUpd GhcRn | |
Defined in GHC.Hs.Expr | |
| type XRecordUpd GhcTc | |
Defined in GHC.Hs.Expr | |
type family XRecordCon x #
Instances
| type XRecordCon GhcPs | |
Defined in GHC.Hs.Expr | |
| type XRecordCon GhcRn | |
Defined in GHC.Hs.Expr | |
| type XRecordCon GhcTc | |
Defined in GHC.Hs.Expr | |
type family XExplicitList x #
Instances
| type XExplicitList GhcPs | |
Defined in GHC.Hs.Expr | |
| type XExplicitList GhcRn | |
Defined in GHC.Hs.Expr | |
| type XExplicitList GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XDo GhcPs | |
Defined in GHC.Hs.Expr | |
| type XDo GhcRn | |
Defined in GHC.Hs.Expr | |
| type XDo GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XLet GhcPs | |
Defined in GHC.Hs.Expr | |
| type XLet GhcRn | |
Defined in GHC.Hs.Expr | |
| type XLet GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XMultiIf GhcPs | |
Defined in GHC.Hs.Expr | |
| type XMultiIf GhcRn | |
Defined in GHC.Hs.Expr | |
| type XMultiIf GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XIf GhcPs | |
Defined in GHC.Hs.Expr | |
| type XIf GhcRn | |
Defined in GHC.Hs.Expr | |
| type XIf GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XCase GhcPs | |
Defined in GHC.Hs.Expr | |
| type XCase GhcRn | |
Defined in GHC.Hs.Expr | |
| type XCase GhcTc | |
Defined in GHC.Hs.Expr | |
type family XExplicitSum x #
Instances
| type XExplicitSum GhcPs | |
Defined in GHC.Hs.Expr | |
| type XExplicitSum GhcRn | |
Defined in GHC.Hs.Expr | |
| type XExplicitSum GhcTc | |
Defined in GHC.Hs.Expr | |
type family XExplicitTuple x #
Instances
| type XExplicitTuple GhcPs | |
Defined in GHC.Hs.Expr | |
| type XExplicitTuple GhcRn | |
Defined in GHC.Hs.Expr | |
| type XExplicitTuple GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XSectionR GhcPs | |
Defined in GHC.Hs.Expr | |
| type XSectionR GhcRn | |
Defined in GHC.Hs.Expr | |
| type XSectionR GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XSectionL GhcPs | |
Defined in GHC.Hs.Expr | |
| type XSectionL GhcRn | |
Defined in GHC.Hs.Expr | |
| type XSectionL GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XPar GhcPs | |
Defined in GHC.Hs.Expr | |
| type XPar GhcRn | |
Defined in GHC.Hs.Expr | |
| type XPar GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XNegApp GhcPs | |
Defined in GHC.Hs.Expr | |
| type XNegApp GhcRn | |
Defined in GHC.Hs.Expr | |
| type XNegApp GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XOpApp GhcPs | |
Defined in GHC.Hs.Expr | |
| type XOpApp GhcRn | |
Defined in GHC.Hs.Expr | |
| type XOpApp GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XAppTypeE GhcPs | |
Defined in GHC.Hs.Expr | |
| type XAppTypeE GhcRn | |
Defined in GHC.Hs.Expr | |
| type XAppTypeE GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XApp (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XLitE (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XOverLitE (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
Instances
| type XIPVar GhcPs | |
Defined in GHC.Hs.Expr | |
| type XIPVar GhcRn | |
Defined in GHC.Hs.Expr | |
| type XIPVar GhcTc | |
Defined in GHC.Hs.Expr | |
type family XOverLabel x #
Instances
| type XOverLabel GhcPs | |
Defined in GHC.Hs.Expr | |
| type XOverLabel GhcRn | |
Defined in GHC.Hs.Expr | |
| type XOverLabel GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XRecSel GhcPs | |
Defined in GHC.Hs.Expr | |
| type XRecSel GhcRn | |
Defined in GHC.Hs.Expr | |
| type XRecSel GhcTc | |
Defined in GHC.Hs.Expr | |
type family XUnboundVar x #
Instances
| type XUnboundVar GhcPs | |
Defined in GHC.Hs.Expr | |
| type XUnboundVar GhcRn | |
Defined in GHC.Hs.Expr | |
| type XUnboundVar GhcTc | |
Defined in GHC.Hs.Expr | |
Instances
| type XVar (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type family XXInjectivityAnn x #
Instances
| type XXInjectivityAnn (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCInjectivityAnn x #
Instances
| type XCInjectivityAnn (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXRoleAnnotDecl x #
Instances
| type XXRoleAnnotDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCRoleAnnotDecl x #
Instances
| type XCRoleAnnotDecl GhcPs | |
Defined in GHC.Hs.Decls | |
| type XCRoleAnnotDecl GhcRn | |
Defined in GHC.Hs.Decls | |
| type XCRoleAnnotDecl GhcTc | |
Defined in GHC.Hs.Decls | |
Instances
| type XXAnnDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XHsAnnotation x #
Instances
| type XHsAnnotation (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXWarnDecl x #
Instances
| type XXWarnDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XWarning (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXWarnDecls x #
Instances
| type XXWarnDecls (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XWarnings GhcPs | |
Defined in GHC.Hs.Decls | |
| type XWarnings GhcRn | |
Defined in GHC.Hs.Decls | |
| type XWarnings GhcTc | |
Defined in GHC.Hs.Decls | |
type family XXRuleBndr x #
Instances
| type XXRuleBndr (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XRuleBndrSig x #
Instances
| type XRuleBndrSig (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCRuleBndr x #
Instances
| type XCRuleBndr (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXRuleDecl x #
Instances
| type XXRuleDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XHsRule GhcPs | |
Defined in GHC.Hs.Decls | |
| type XHsRule GhcRn | |
Defined in GHC.Hs.Decls | |
| type XHsRule GhcTc | |
Defined in GHC.Hs.Decls | |
type family XXRuleDecls x #
Instances
| type XXRuleDecls (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCRuleDecls x #
Instances
| type XCRuleDecls GhcPs | |
Defined in GHC.Hs.Decls | |
| type XCRuleDecls GhcRn | |
Defined in GHC.Hs.Decls | |
| type XCRuleDecls GhcTc | |
Defined in GHC.Hs.Decls | |
type family XXForeignExport x #
Instances
| type XXForeignExport (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XCExport (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXForeignImport x #
Instances
| type XXForeignImport (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XCImport (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXForeignDecl x #
Instances
| type XXForeignDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XForeignExport x #
Instances
| type XForeignExport GhcPs | |
Defined in GHC.Hs.Decls | |
| type XForeignExport GhcRn | |
Defined in GHC.Hs.Decls | |
| type XForeignExport GhcTc | |
Defined in GHC.Hs.Decls | |
data ForeignExport pass #
Constructors
| CExport (XCExport pass) (XRec pass CExportSpec) | |
| XForeignExport !(XXForeignExport pass) |
Instances
| ToHie (ForeignExport GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: ForeignExport GhcRn -> HieM [HieAST Type] | |
type family XForeignImport x #
Instances
| type XForeignImport GhcPs | |
Defined in GHC.Hs.Decls | |
| type XForeignImport GhcRn | |
Defined in GHC.Hs.Decls | |
| type XForeignImport GhcTc | |
Defined in GHC.Hs.Decls | |
data ForeignImport pass #
Constructors
| CImport (XCImport pass) (XRec pass CCallConv) (XRec pass Safety) (Maybe Header) CImportSpec | |
| XForeignImport !(XXForeignImport pass) |
Instances
| ToHie (ForeignImport GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: ForeignImport GhcRn -> HieM [HieAST Type] | |
type family XXDefaultDecl x #
Instances
| type XXDefaultDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCDefaultDecl x #
Instances
| type XCDefaultDecl GhcPs | |
Defined in GHC.Hs.Decls | |
| type XCDefaultDecl GhcRn | |
Defined in GHC.Hs.Decls | |
| type XCDefaultDecl GhcTc | |
Defined in GHC.Hs.Decls | |
type family XViaStrategy x #
Instances
| type XViaStrategy GhcPs | |
Defined in GHC.Hs.Decls | |
| type XViaStrategy GhcRn | |
Defined in GHC.Hs.Decls | |
| type XViaStrategy GhcTc | |
Defined in GHC.Hs.Decls | |
type family XNewtypeStrategy x #
Instances
| type XNewtypeStrategy GhcPs | |
Defined in GHC.Hs.Decls | |
| type XNewtypeStrategy GhcRn | |
Defined in GHC.Hs.Decls | |
| type XNewtypeStrategy GhcTc | |
Defined in GHC.Hs.Decls | |
type family XAnyClassStrategy x #
Instances
| type XAnyClassStrategy GhcPs | |
Defined in GHC.Hs.Decls | |
| type XAnyClassStrategy GhcRn | |
Defined in GHC.Hs.Decls | |
| type XAnyClassStrategy GhcTc | |
Defined in GHC.Hs.Decls | |
type family XStockStrategy x #
Instances
| type XStockStrategy GhcPs | |
Defined in GHC.Hs.Decls | |
| type XStockStrategy GhcRn | |
Defined in GHC.Hs.Decls | |
| type XStockStrategy GhcTc | |
Defined in GHC.Hs.Decls | |
type family XXDerivDecl x #
Instances
| type XXDerivDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCDerivDecl x #
Instances
| type XCDerivDecl GhcPs | |
Defined in GHC.Hs.Decls | |
| type XCDerivDecl GhcRn | |
Defined in GHC.Hs.Decls | |
| type XCDerivDecl GhcTc | |
Defined in GHC.Hs.Decls | |
type family XXInstDecl x #
Instances
| type XXInstDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XTyFamInstD x #
Instances
| type XTyFamInstD GhcPs | |
Defined in GHC.Hs.Decls | |
| type XTyFamInstD GhcRn | |
Defined in GHC.Hs.Decls | |
| type XTyFamInstD GhcTc | |
Defined in GHC.Hs.Decls | |
type family XDataFamInstD x #
Instances
| type XDataFamInstD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XClsInstD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXClsInstDecl x #
Instances
| type XXClsInstDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCClsInstDecl x #
Instances
| type XCClsInstDecl GhcPs | |
Defined in GHC.Hs.Decls | |
| type XCClsInstDecl GhcRn | |
Defined in GHC.Hs.Decls | |
| type XCClsInstDecl GhcTc | |
Defined in GHC.Hs.Decls | |
type family XXTyFamInstDecl x #
Instances
| type XXTyFamInstDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCTyFamInstDecl x #
Instances
| type XCTyFamInstDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XXFamEqn (GhcPass _1) r | |
Defined in GHC.Hs.Decls | |
Instances
| type XXConDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XConDeclH98 x #
Instances
| type XConDeclH98 GhcPs | |
Defined in GHC.Hs.Decls | |
| type XConDeclH98 GhcRn | |
Defined in GHC.Hs.Decls | |
| type XConDeclH98 GhcTc | |
Defined in GHC.Hs.Decls | |
type family XConDeclGADT x #
Instances
| type XConDeclGADT GhcPs | |
Defined in GHC.Hs.Decls | |
| type XConDeclGADT GhcRn | |
Defined in GHC.Hs.Decls | |
| type XConDeclGADT GhcTc | |
Defined in GHC.Hs.Decls | |
type family XXDerivClauseTys x #
Instances
| type XXDerivClauseTys (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XDctMulti (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XDctSingle x #
Instances
| type XDctSingle (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXHsDerivingClause x #
Instances
| type XXHsDerivingClause (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCHsDerivingClause x #
Instances
| type XCHsDerivingClause (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXHsDataDefn x #
Instances
| type XXHsDataDefn (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCHsDataDefn x #
Instances
| type XCHsDataDefn (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXFamilyDecl x #
Instances
| type XXFamilyDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCFamilyDecl x #
Instances
| type XCFamilyDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXFamilyResultSig x #
Instances
| type XXFamilyResultSig (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XTyVarSig (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XCKindSig (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XNoSig (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXTyClGroup x #
Instances
| type XXTyClGroup (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XCTyClGroup x #
Instances
| type XCTyClGroup (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XXFunDep (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXTyClDecl x #
Instances
| type XXTyClDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XClassDecl x #
Instances
| type XClassDecl GhcPs | |
Defined in GHC.Hs.Decls | |
| type XClassDecl GhcRn | |
Defined in GHC.Hs.Decls | |
| type XClassDecl GhcTc | |
Defined in GHC.Hs.Decls | |
Instances
| type XDataDecl GhcPs | |
Defined in GHC.Hs.Decls | |
| type XDataDecl GhcRn | |
Defined in GHC.Hs.Decls | |
| type XDataDecl GhcTc | |
Defined in GHC.Hs.Decls | |
Instances
| type XFamDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXSpliceDecl x #
Instances
| type XXSpliceDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XSpliceDecl x #
Instances
| type XSpliceDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
data SpliceDecl p #
Splice Declaration
Constructors
| SpliceDecl (XSpliceDecl p) (XRec p (HsUntypedSplice p)) SpliceDecoration | |
| XSpliceDecl !(XXSpliceDecl p) |
Instances
| ToHie (LocatedA (SpliceDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (SpliceDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
Instances
| type XXHsGroup (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XCHsGroup (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XXHsDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XRoleAnnotD x #
Instances
| type XRoleAnnotD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XDocD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XSpliceD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XRuleD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XAnnD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XWarningD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XForD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XDefD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XKindSigD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XSigD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XValD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XDerivD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XInstD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
Instances
| type XTyClD (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XXStandaloneKindSig x #
Instances
| type XXStandaloneKindSig (GhcPass p) | |
Defined in GHC.Hs.Decls | |
type family XStandaloneKindSig x #
Instances
| type XStandaloneKindSig GhcPs | |
Defined in GHC.Hs.Decls | |
| type XStandaloneKindSig GhcRn | |
Defined in GHC.Hs.Decls | |
| type XStandaloneKindSig GhcTc | |
Defined in GHC.Hs.Decls | |
data StandaloneKindSig pass #
Constructors
| StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass) | |
| XStandaloneKindSig !(XXStandaloneKindSig pass) |
Instances
| ToHie (LocatedA (StandaloneKindSig GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (StandaloneKindSig GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: StandaloneKindSig GhcRn -> HieM [HieAST Type] | |
| type Anno (StandaloneKindSig (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type family XXFixitySig x #
Instances
| type XXFixitySig (GhcPass p) | |
Defined in GHC.Hs.Binds | |
type family XFixitySig x #
Instances
| type XFixitySig GhcPs | |
Defined in GHC.Hs.Binds | |
| type XFixitySig GhcRn | |
Defined in GHC.Hs.Binds | |
| type XFixitySig GhcTc | |
Defined in GHC.Hs.Binds | |
Fixity Signature
Constructors
| FixitySig (XFixitySig pass) [LIdP pass] Fixity | |
| XFixitySig !(XXFixitySig pass) |
Instances
| type XXSig GhcPs | |
Defined in GHC.Hs.Binds | |
| type XXSig GhcRn | |
Defined in GHC.Hs.Binds | |
| type XXSig GhcTc | |
Defined in GHC.Hs.Binds | |
type family XCompleteMatchSig x #
Instances
| type XCompleteMatchSig (GhcPass p) | |
Defined in GHC.Hs.Binds | |
type family XSCCFunSig x #
Instances
| type XSCCFunSig (GhcPass p) | |
Defined in GHC.Hs.Binds | |
type family XMinimalSig x #
Instances
| type XMinimalSig (GhcPass p) | |
Defined in GHC.Hs.Binds | |
type family XSpecInstSig x #
Instances
| type XSpecInstSig (GhcPass p) | |
Defined in GHC.Hs.Binds | |
type family XInlineSig x #
Instances
| type XInlineSig (GhcPass p) | |
Defined in GHC.Hs.Binds | |
type family XClassOpSig x #
Instances
| type XClassOpSig (GhcPass p) | |
Defined in GHC.Hs.Binds | |
type family XPatSynSig x #
Instances
| type XPatSynSig (GhcPass p) | |
Defined in GHC.Hs.Binds | |
Instances
| type XXIPBind (GhcPass p) | |
Defined in GHC.Hs.Binds | |
Instances
| type XCIPBind GhcPs | |
Defined in GHC.Hs.Binds | |
| type XCIPBind GhcRn | |
Defined in GHC.Hs.Binds | |
| type XCIPBind GhcTc | |
Defined in GHC.Hs.Binds | |
type family XXHsIPBinds x #
Instances
| type XXHsIPBinds (GhcPass p) | |
Defined in GHC.Hs.Binds | |
Instances
| type XIPBinds GhcPs | |
Defined in GHC.Hs.Binds | |
| type XIPBinds GhcRn | |
Defined in GHC.Hs.Binds | |
| type XIPBinds GhcTc | |
Defined in GHC.Hs.Binds | |
type family XXPatSynBind x x' #
Instances
| type XXPatSynBind (GhcPass idL) (GhcPass idR) | |
Defined in GHC.Hs.Binds | |
type family XXHsBindsLR x x' #
Instances
| type XXHsBindsLR GhcPs pR | |
Defined in GHC.Hs.Binds | |
| type XXHsBindsLR GhcRn pR | |
Defined in GHC.Hs.Binds | |
| type XXHsBindsLR GhcTc pR | |
Defined in GHC.Hs.Binds | |
type family XPatSynBind x x' #
Instances
| type XPatSynBind (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
data PatSynBind idL idR #
AnnKeywordId:AnnPattern,AnnEqual,AnnLarrow,AnnWhere,AnnOpen'{',AnnClose'}',
Pattern Synonym binding
Constructors
| PSB | |
Fields
| |
| XPatSynBind !(XXPatSynBind idL idR) | |
Instances
| HiePass p => ToHie (Located (PatSynBind (GhcPass p) (GhcPass p))) | |
Defined in GHC.Iface.Ext.Ast | |
Instances
| type XVarBind (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
Instances
| type XPatBind GhcPs (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
| type XPatBind GhcRn (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
| type XPatBind GhcTc (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
Instances
| type XFunBind (GhcPass pL) GhcPs | |
Defined in GHC.Hs.Binds | |
| type XFunBind (GhcPass pL) GhcRn | After the renamer (but before the type-checker), the FunBind extension field contains the locally-bound free variables of this defn. See Note [Bind free vars] |
Defined in GHC.Hs.Binds | |
| type XFunBind (GhcPass pL) GhcTc | After the type-checker, the FunBind extension field contains the ticks to put on the rhs, if any, and a coercion from the type of the MatchGroup to the type of the Id. Example: f :: Int -> forall a. a -> a
f x y = y
Then the MatchGroup will have type (Int -> a' -> a') (with a free type variable a'). The coercion will take a CoreExpr of this type and convert it to a CoreExpr of type Int -> forall a'. a' -> a' Notice that the coercion captures the free a'. |
Defined in GHC.Hs.Binds | |
type family XXValBindsLR x x' #
Instances
| type XXValBindsLR (GhcPass pL) pR | |
Defined in GHC.Hs.Binds | |
Instances
| type XValBinds (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
type family XXHsLocalBindsLR x x' #
Instances
| type XXHsLocalBindsLR (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
type family XEmptyLocalBinds x x' #
Instances
| type XEmptyLocalBinds (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
type family XHsIPBinds x x' #
Instances
| type XHsIPBinds (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
Haskell Implicit Parameter Bindings
Constructors
| IPBinds (XIPBinds id) [LIPBind id] | |
| XHsIPBinds !(XXHsIPBinds id) |
type family XHsValBinds x x' #
Instances
| type XHsValBinds (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds | |
Maps the "normal" id type for a given pass
The trivial wrapper that carries no additional information See Note [XRec and SrcSpans in the AST]
We can map over the underlying type contained in an XRec while preserving
the annotation as is.
We can strip off the XRec to access the underlying data. See Note [XRec and SrcSpans in the AST]
type family Anno a = (b :: Type) #
Instances
| type Anno ConLike | |
Defined in GHC.Hs.Pat | |
| type Anno FastString | |
Defined in GHC.Hs.Expr | |
| type Anno OverlapMode | |
Defined in GHC.Hs.Decls | |
| type Anno OverlapMode | |
Defined in GHC.Hs.Decls | |
| type Anno CCallConv | |
Defined in GHC.Hs.Decls | |
| type Anno CExportSpec | |
Defined in GHC.Hs.Decls | |
| type Anno CType | |
Defined in GHC.Hs.Decls | |
| type Anno Safety | |
Defined in GHC.Hs.Decls | |
| type Anno Name | |
Defined in GHC.Hs.Extension | |
| type Anno RdrName | |
Defined in GHC.Hs.Extension | |
| type Anno StringLiteral | |
Defined in GHC.Hs.Binds | |
| type Anno Id | |
Defined in GHC.Hs.Extension | |
| type Anno FieldLabelString | |
Defined in GHC.Hs.Expr | |
| type Anno ModuleName | |
Defined in GHC.Hs | |
| type Anno ModuleName | |
Defined in GHC.Hs.ImpExp | |
| type Anno RecFieldsDotDot | |
Defined in GHC.Hs.Pat | |
| type Anno HsIPName | |
Defined in GHC.Hs.Type | |
| type Anno Bool | |
Defined in GHC.Hs.Decls | |
| type Anno (LocatedA (IE (GhcPass p))) | |
Defined in GHC.Hs.ImpExp | |
| type Anno (WarningTxt (GhcPass pass)) | |
Defined in GHC.Unit.Module.Warnings | |
| type Anno (FixitySig (GhcPass p)) | |
Defined in GHC.Hs.Binds | |
| type Anno (IPBind (GhcPass p)) | |
Defined in GHC.Hs.Binds | |
| type Anno (Sig (GhcPass p)) | |
Defined in GHC.Hs.Binds | |
| type Anno (AnnDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (ClsInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (ConDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (DataFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (DefaultDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (DerivClauseTys (GhcPass _1)) | |
Defined in GHC.Hs.Decls | |
| type Anno (DerivDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (DerivStrategy (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (DocDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (FamilyDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (FamilyResultSig (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (ForeignDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (FunDep (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (HsDecl (GhcPass _1)) | |
Defined in GHC.Hs.Decls | |
| type Anno (HsDerivingClause (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (InjectivityAnn (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (InstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (RoleAnnotDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (RuleBndr (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (RuleDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (RuleDecls (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (SpliceDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (StandaloneKindSig (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (TyClDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (TyFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (WarnDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (WarnDecls (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
| type Anno (DotFieldOcc (GhcPass p)) | |
Defined in GHC.Hs.Expr | |
| type Anno (FieldLabelStrings (GhcPass p)) | |
Defined in GHC.Hs.Expr | |
| type Anno (HsCmd (GhcPass p)) | |
Defined in GHC.Hs.Expr | |
| type Anno (HsCmdTop (GhcPass p)) | |
Defined in GHC.Hs.Expr | |
| type Anno (HsExpr (GhcPass p)) | |
Defined in GHC.Hs.Expr | |
| type Anno (HsUntypedSplice (GhcPass p)) | |
Defined in GHC.Hs.Expr | |
| type Anno (IE (GhcPass p)) | |
Defined in GHC.Hs.ImpExp | |
| type Anno (IEWrappedName (GhcPass _1)) | |
Defined in GHC.Hs.ImpExp | |
| type Anno (ImportDecl (GhcPass p)) | |
Defined in GHC.Hs.ImpExp | |
| type Anno (HsOverLit (GhcPass p)) | |
Defined in GHC.Hs.Pat | |
| type Anno (Pat (GhcPass p)) | |
Defined in GHC.Hs.Pat | |
| type Anno (AmbiguousFieldOcc (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno (BangType (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno (ConDeclField (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno (FieldOcc (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno (HsKind (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno (HsSigType (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno (HsType (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno (Maybe Role) | |
Defined in GHC.Hs.Decls | |
| type Anno (Maybe Role) | |
Defined in GHC.Hs.Decls | |
| type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
| type Anno [LocatedA (IE (GhcPass p))] | |
Defined in GHC.Hs.ImpExp | |
| type Anno [LocatedA (ConDeclField (GhcPass _1))] | |
Defined in GHC.Hs.Decls | |
| type Anno [LocatedA (HsType (GhcPass p))] | |
Defined in GHC.Hs.Type | |
| type Anno (HsBindLR (GhcPass idL) (GhcPass idR)) | |
Defined in GHC.Hs.Binds | |
| type Anno (FamEqn (GhcPass p) _1) | |
Defined in GHC.Hs.Decls | |
| type Anno (FamEqn (GhcPass p) _1) | |
Defined in GHC.Hs.Decls | |
| type Anno (FamEqn p (LocatedA (HsType p))) | |
Defined in GHC.Hs.Decls | |
| type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) | |
| type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
| type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.Types | |
| type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) | |
Defined in GHC.Hs.Expr | |
| type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
Defined in GHC.Hs.Expr | |
| type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.Types | |
| type Anno (HsFieldBind lhs rhs) | |
Defined in GHC.Hs.Pat | |
| type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) | |
Defined in GHC.Hs.Type | |
| type Anno (HsTyVarBndr _flag (GhcPass _1)) | |
Defined in GHC.Hs.Type | |
| type Anno (HsTyVarBndr _flag GhcPs) | |
Defined in GHC.Hs.Type | |
| type Anno (HsTyVarBndr _flag GhcRn) | |
Defined in GHC.Hs.Type | |
| type Anno (HsTyVarBndr _flag GhcTc) | |
Defined in GHC.Hs.Type | |
| type Anno (SourceText, RuleName) | |
Defined in GHC.Hs.Decls | |
| type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
| type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.Types | |
| type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) | |
Defined in GHC.Hs.Expr | |
type family XRec p a = (r :: Type) | r -> a #
GHC's L prefixed variants wrap their vanilla variant in this type family,
to add SrcLoc info via Located. Other passes than GhcPass not
interested in location information can define this as
type instance XRec NoLocated a = a.
See Note [XRec and SrcSpans in the AST]
Instances
| type XRec (GhcPass p) a | |
Defined in GHC.Hs.Extension | |
data DataConCantHappen #
Instances
| Data DataConCantHappen | |
Defined in Language.Haskell.Syntax.Extension Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataConCantHappen -> c DataConCantHappen # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataConCantHappen # toConstr :: DataConCantHappen -> Constr # dataTypeOf :: DataConCantHappen -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataConCantHappen) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataConCantHappen) # gmapT :: (forall b. Data b => b -> b) -> DataConCantHappen -> DataConCantHappen # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r # gmapQ :: (forall d. Data d => d -> u) -> DataConCantHappen -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DataConCantHappen -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataConCantHappen -> m DataConCantHappen # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataConCantHappen -> m DataConCantHappen # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataConCantHappen -> m DataConCantHappen # | |
| Eq DataConCantHappen | |
Defined in Language.Haskell.Syntax.Extension Methods (==) :: DataConCantHappen -> DataConCantHappen -> Bool # (/=) :: DataConCantHappen -> DataConCantHappen -> Bool # | |
| Ord DataConCantHappen | |
Defined in Language.Haskell.Syntax.Extension Methods compare :: DataConCantHappen -> DataConCantHappen -> Ordering # (<) :: DataConCantHappen -> DataConCantHappen -> Bool # (<=) :: DataConCantHappen -> DataConCantHappen -> Bool # (>) :: DataConCantHappen -> DataConCantHappen -> Bool # (>=) :: DataConCantHappen -> DataConCantHappen -> Bool # max :: DataConCantHappen -> DataConCantHappen -> DataConCantHappen # min :: DataConCantHappen -> DataConCantHappen -> DataConCantHappen # | |
Used when constructing a term with an unused extension point.
dataConCantHappen :: DataConCantHappen -> a #
Eliminate a DataConCantHappen. See Note [Constructor cannot occur].
newtype ModuleName #
A ModuleName is essentially a simple string, e.g. Data.List.
Constructors
| ModuleName FastString |
Instances
| NFData ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name Methods rnf :: ModuleName -> () # | |
| Uniquable ModuleName | |
Defined in GHC.Types.Unique Methods getUnique :: ModuleName -> Unique # | |
| Binary ModuleName | |
Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> ModuleName -> IO () # put :: BinHandle -> ModuleName -> IO (Bin ModuleName) # get :: BinHandle -> IO ModuleName # | |
| Outputable ModuleName | |
Defined in GHC.Utils.Outputable Methods ppr :: ModuleName -> SDoc # | |
| Data ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModuleName -> c ModuleName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ModuleName # toConstr :: ModuleName -> Constr # dataTypeOf :: ModuleName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ModuleName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ModuleName) # gmapT :: (forall b. Data b => b -> b) -> ModuleName -> ModuleName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ModuleName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ModuleName -> r # gmapQ :: (forall d. Data d => d -> u) -> ModuleName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ModuleName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName # | |
| Show ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name Methods showsPrec :: Int -> ModuleName -> ShowS # show :: ModuleName -> String # showList :: [ModuleName] -> ShowS # | |
| Eq ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name | |
| Ord ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name Methods compare :: ModuleName -> ModuleName -> Ordering # (<) :: ModuleName -> ModuleName -> Bool # (<=) :: ModuleName -> ModuleName -> Bool # (>) :: ModuleName -> ModuleName -> Bool # (>=) :: ModuleName -> ModuleName -> Bool # max :: ModuleName -> ModuleName -> ModuleName # min :: ModuleName -> ModuleName -> ModuleName # | |
| Hashable ModuleName # | |
Defined in Development.IDE.GHC.Orphans | |
| ToHie (IEContext (LocatedA ModuleName)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type] | |
| type Anno ModuleName | |
Defined in GHC.Hs | |
| type Anno ModuleName | |
Defined in GHC.Hs.ImpExp | |
stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering #
Compares module names lexically, rather than by their Uniques
moduleNameFS :: ModuleName -> FastString #
moduleNameString :: ModuleName -> String #
mkModuleName :: String -> ModuleName #
mkModuleNameFS :: FastString -> ModuleName #
moduleNameSlashes :: ModuleName -> String #
Returns the string version of the module name, with dots replaced by slashes.
moduleNameColons :: ModuleName -> String #
Returns the string version of the module name, with dots replaced by colons.
data IsBootInterface #
Indicates whether a module name is referring to a boot interface (hs-boot file) or regular module (hs file). We need to treat boot modules specially when building compilation graphs, since they break cycles. Regular source files and signature files are treated equivalently.
Instances
| Data IsBootInterface | |
Defined in Language.Haskell.Syntax.ImpExp Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IsBootInterface -> c IsBootInterface # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IsBootInterface # toConstr :: IsBootInterface -> Constr # dataTypeOf :: IsBootInterface -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IsBootInterface) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IsBootInterface) # gmapT :: (forall b. Data b => b -> b) -> IsBootInterface -> IsBootInterface # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IsBootInterface -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IsBootInterface -> r # gmapQ :: (forall d. Data d => d -> u) -> IsBootInterface -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IsBootInterface -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IsBootInterface -> m IsBootInterface # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IsBootInterface -> m IsBootInterface # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IsBootInterface -> m IsBootInterface # | |
| Show IsBootInterface | |
Defined in Language.Haskell.Syntax.ImpExp Methods showsPrec :: Int -> IsBootInterface -> ShowS # show :: IsBootInterface -> String # showList :: [IsBootInterface] -> ShowS # | |
| Eq IsBootInterface | |
Defined in Language.Haskell.Syntax.ImpExp Methods (==) :: IsBootInterface -> IsBootInterface -> Bool # (/=) :: IsBootInterface -> IsBootInterface -> Bool # | |
| Ord IsBootInterface | |
Defined in Language.Haskell.Syntax.ImpExp Methods compare :: IsBootInterface -> IsBootInterface -> Ordering # (<) :: IsBootInterface -> IsBootInterface -> Bool # (<=) :: IsBootInterface -> IsBootInterface -> Bool # (>) :: IsBootInterface -> IsBootInterface -> Bool # (>=) :: IsBootInterface -> IsBootInterface -> Bool # max :: IsBootInterface -> IsBootInterface -> IsBootInterface # min :: IsBootInterface -> IsBootInterface -> IsBootInterface # | |
data HsDoFlavour #
Constructors
| DoExpr (Maybe ModuleName) |
|
| MDoExpr (Maybe ModuleName) |
|
| GhciStmtCtxt | A command-line Stmt in GHCi pat <- rhs |
| ListComp | |
| MonadComp |
Instances
| Data HsDoFlavour | |
Defined in Language.Haskell.Syntax.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsDoFlavour -> c HsDoFlavour # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsDoFlavour # toConstr :: HsDoFlavour -> Constr # dataTypeOf :: HsDoFlavour -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsDoFlavour) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsDoFlavour) # gmapT :: (forall b. Data b => b -> b) -> HsDoFlavour -> HsDoFlavour # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsDoFlavour -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsDoFlavour -> r # gmapQ :: (forall d. Data d => d -> u) -> HsDoFlavour -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsDoFlavour -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsDoFlavour -> m HsDoFlavour # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsDoFlavour -> m HsDoFlavour # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsDoFlavour -> m HsDoFlavour # | |
| Eq HsDoFlavour | |
Defined in Language.Haskell.Syntax.Expr | |
Arguments
| = XRec p (HsExpr p) | May have |
Located Haskell Expression
type family SyntaxExpr p #
Syntax Expression
SyntaxExpr is represents the function used in interpreting rebindable
syntax. In the parser, we have no information to supply; in the renamer,
we have the name of the function (but see
Note [Monad fail : Rebindable syntax, overloaded strings] for a wrinkle)
and in the type-checker we have a more elaborate structure SyntaxExprTc.
In some contexts, rebindable syntax is not implemented, and so we have constructors to represent that possibility in both the renamer and typechecker instantiations.
E.g. (>>=) is filled in before the renamer by the appropriate Name for
(>>=), and then instantiated by the type checker with its type args
etc
Instances
| type SyntaxExpr (GhcPass p) | |
Defined in GHC.Hs.Expr | |
Guarded Right-Hand Sides
GRHSs are used both for pattern bindings and for Matches
Constructors
| GRHSs | |
Fields
| |
| XGRHSs !(XXGRHSs p body) | |
data MatchGroup p body #
Constructors
| MG | |
| XMatchGroup !(XXMatchGroup p body) | |
Instances
| (HiePass p, AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))) | |
Defined in GHC.Iface.Ext.Ast | |
data PromotionFlag #
Is a TyCon a promoted data constructor or just a normal type constructor?
Constructors
| NotPromoted | |
| IsPromoted |
Instances
| Data PromotionFlag | |
Defined in Language.Haskell.Syntax.Type Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PromotionFlag -> c PromotionFlag # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PromotionFlag # toConstr :: PromotionFlag -> Constr # dataTypeOf :: PromotionFlag -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PromotionFlag) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PromotionFlag) # gmapT :: (forall b. Data b => b -> b) -> PromotionFlag -> PromotionFlag # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PromotionFlag -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PromotionFlag -> r # gmapQ :: (forall d. Data d => d -> u) -> PromotionFlag -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> PromotionFlag -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> PromotionFlag -> m PromotionFlag # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PromotionFlag -> m PromotionFlag # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PromotionFlag -> m PromotionFlag # | |
| Eq PromotionFlag | |
Defined in Language.Haskell.Syntax.Type Methods (==) :: PromotionFlag -> PromotionFlag -> Bool # (/=) :: PromotionFlag -> PromotionFlag -> Bool # | |
isPromoted :: PromotionFlag -> Bool #
data CImportSpec #
Constructors
| CLabel CLabelString | |
| CFunction CCallTarget | |
| CWrapper |
Instances
| Data CImportSpec | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CImportSpec -> c CImportSpec # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CImportSpec # toConstr :: CImportSpec -> Constr # dataTypeOf :: CImportSpec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CImportSpec) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CImportSpec) # gmapT :: (forall b. Data b => b -> b) -> CImportSpec -> CImportSpec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CImportSpec -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CImportSpec -> r # gmapQ :: (forall d. Data d => d -> u) -> CImportSpec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CImportSpec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CImportSpec -> m CImportSpec # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CImportSpec -> m CImportSpec # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CImportSpec -> m CImportSpec # | |
type LIEWrappedName p = XRec p (IEWrappedName p) #
Located name with possible adornment
- AnnKeywordIds : AnnType,
AnnPattern
data IEWrappedName p #
A name in an import or export specification which may have
adornments. Used primarily for accurate pretty printing of
ParsedSource, and API Annotation placement. The
Annotation is the location of the adornment in
the original source.
Constructors
| IEName (XIEName p) (LIdP p) | no extra |
| IEPattern (XIEPattern p) (LIdP p) | pattern X |
| IEType (XIEType p) (LIdP p) | type (:+:) |
| XIEWrappedName !(XXIEWrappedName p) |
Instances
| ToHie (IEContext (LocatedA (IEWrappedName GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (IEWrappedName (GhcPass _1)) | |
Defined in GHC.Hs.ImpExp | |
data IEWildcard #
Wildcard in an import or export sublist, like the .. in
import Mod ( T(Mk1, Mk2, ..) ).
Constructors
| NoIEWildcard | no wildcard in this list |
| IEWildcard Int | wildcard after the given # of items in this list
The |
Instances
| Data IEWildcard | |
Defined in Language.Haskell.Syntax.ImpExp Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IEWildcard -> c IEWildcard # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IEWildcard # toConstr :: IEWildcard -> Constr # dataTypeOf :: IEWildcard -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IEWildcard) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IEWildcard) # gmapT :: (forall b. Data b => b -> b) -> IEWildcard -> IEWildcard # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IEWildcard -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IEWildcard -> r # gmapQ :: (forall d. Data d => d -> u) -> IEWildcard -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IEWildcard -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IEWildcard -> m IEWildcard # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IEWildcard -> m IEWildcard # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IEWildcard -> m IEWildcard # | |
| Eq IEWildcard | |
Defined in Language.Haskell.Syntax.ImpExp | |
data ImportListInterpretation #
Whether the import list is exactly what to import, or whether hiding was
used, and therefore everything but what was listed should be imported
Constructors
| Exactly | |
| EverythingBut |
Instances
| Data ImportListInterpretation | |
Defined in Language.Haskell.Syntax.ImpExp Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImportListInterpretation -> c ImportListInterpretation # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ImportListInterpretation # toConstr :: ImportListInterpretation -> Constr # dataTypeOf :: ImportListInterpretation -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ImportListInterpretation) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ImportListInterpretation) # gmapT :: (forall b. Data b => b -> b) -> ImportListInterpretation -> ImportListInterpretation # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImportListInterpretation -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImportListInterpretation -> r # gmapQ :: (forall d. Data d => d -> u) -> ImportListInterpretation -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ImportListInterpretation -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImportListInterpretation -> m ImportListInterpretation # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportListInterpretation -> m ImportListInterpretation # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportListInterpretation -> m ImportListInterpretation # | |
| Eq ImportListInterpretation | |
Defined in Language.Haskell.Syntax.ImpExp Methods (==) :: ImportListInterpretation -> ImportListInterpretation -> Bool # (/=) :: ImportListInterpretation -> ImportListInterpretation -> Bool # | |
data ImportDecl pass #
Import Declaration
A single Haskell import declaration.
Constructors
| ImportDecl | |
Fields
| |
| XImportDecl !(XXImportDecl pass) | |
Instances
| NFData (ImportDecl GhcPs) # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: ImportDecl GhcPs -> () # | |
| ToHie (LocatedA (ImportDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (ImportDecl (GhcPass p)) | |
Defined in GHC.Hs.ImpExp | |
data ImportDeclQualifiedStyle #
If/how an import is qualified.
Constructors
| QualifiedPre |
|
| QualifiedPost |
|
| NotQualified | Not qualified. |
Instances
| Data ImportDeclQualifiedStyle | |
Defined in Language.Haskell.Syntax.ImpExp Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImportDeclQualifiedStyle -> c ImportDeclQualifiedStyle # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ImportDeclQualifiedStyle # toConstr :: ImportDeclQualifiedStyle -> Constr # dataTypeOf :: ImportDeclQualifiedStyle -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ImportDeclQualifiedStyle) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ImportDeclQualifiedStyle) # gmapT :: (forall b. Data b => b -> b) -> ImportDeclQualifiedStyle -> ImportDeclQualifiedStyle # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImportDeclQualifiedStyle -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImportDeclQualifiedStyle -> r # gmapQ :: (forall d. Data d => d -> u) -> ImportDeclQualifiedStyle -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ImportDeclQualifiedStyle -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImportDeclQualifiedStyle -> m ImportDeclQualifiedStyle # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportDeclQualifiedStyle -> m ImportDeclQualifiedStyle # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportDeclQualifiedStyle -> m ImportDeclQualifiedStyle # | |
| Eq ImportDeclQualifiedStyle | |
Defined in Language.Haskell.Syntax.ImpExp Methods (==) :: ImportDeclQualifiedStyle -> ImportDeclQualifiedStyle -> Bool # (/=) :: ImportDeclQualifiedStyle -> ImportDeclQualifiedStyle -> Bool # | |
type LImportDecl pass #
Arguments
| = XRec pass (ImportDecl pass) | When in a list this may have |
Located Import Declaration
Warning pragma Declarations
Constructors
| Warnings | |
Fields
| |
| XWarnDecls !(XXWarnDecls pass) | |
data OverLitVal #
Overloaded Literal Value
Constructors
| HsIntegral !IntegralLit | Integer-looking literals; |
| HsFractional !FractionalLit | Frac-looking literals |
| HsIsString !SourceText !FastString | String-looking literals |
Instances
| Data OverLitVal | |
Defined in Language.Haskell.Syntax.Lit Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OverLitVal -> c OverLitVal # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OverLitVal # toConstr :: OverLitVal -> Constr # dataTypeOf :: OverLitVal -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OverLitVal) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OverLitVal) # gmapT :: (forall b. Data b => b -> b) -> OverLitVal -> OverLitVal # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OverLitVal -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OverLitVal -> r # gmapQ :: (forall d. Data d => d -> u) -> OverLitVal -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> OverLitVal -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> OverLitVal -> m OverLitVal # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OverLitVal -> m OverLitVal # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OverLitVal -> m OverLitVal # | |
| Eq OverLitVal | |
Defined in Language.Haskell.Syntax.Lit | |
| Ord OverLitVal | |
Defined in Language.Haskell.Syntax.Lit Methods compare :: OverLitVal -> OverLitVal -> Ordering # (<) :: OverLitVal -> OverLitVal -> Bool # (<=) :: OverLitVal -> OverLitVal -> Bool # (>) :: OverLitVal -> OverLitVal -> Bool # (>=) :: OverLitVal -> OverLitVal -> Bool # max :: OverLitVal -> OverLitVal -> OverLitVal # min :: OverLitVal -> OverLitVal -> OverLitVal # | |
Haskell Literal
Constructors
| HsChar (XHsChar x) Char | Character |
| HsCharPrim (XHsCharPrim x) Char | Unboxed character |
| HsString (XHsString x) FastString | String |
| HsStringPrim (XHsStringPrim x) !ByteString | Packed bytes |
| HsInt (XHsInt x) IntegralLit | Genuinely an Int; arises from GHC.Tc.Deriv.Generate, and from TRANSLATION |
| HsIntPrim (XHsIntPrim x) Integer | literal |
| HsWordPrim (XHsWordPrim x) Integer | literal |
| HsInt8Prim (XHsInt8Prim x) Integer | literal |
| HsInt16Prim (XHsInt16Prim x) Integer | literal |
| HsInt32Prim (XHsInt32Prim x) Integer | literal |
| HsInt64Prim (XHsInt64Prim x) Integer | literal |
| HsWord8Prim (XHsWord8Prim x) Integer | literal |
| HsWord16Prim (XHsWord16Prim x) Integer | literal |
| HsWord32Prim (XHsWord32Prim x) Integer | literal |
| HsWord64Prim (XHsWord64Prim x) Integer | literal |
| HsInteger (XHsInteger x) Integer Type | Genuinely an integer; arises only from TRANSLATION (overloaded literals are done with HsOverLit) |
| HsRat (XHsRat x) FractionalLit Type | Genuinely a rational; arises only from TRANSLATION (overloaded literals are done with HsOverLit) |
| HsFloatPrim (XHsFloatPrim x) FractionalLit | Unboxed Float |
| HsDoublePrim (XHsDoublePrim x) FractionalLit | Unboxed Double |
| XLit !(XXLit x) |
Haskell Source Bang
Bangs on data constructor arguments as the user wrote them in the source code.
(HsSrcBang _ SrcUnpack SrcLazy) and
(HsSrcBang _ SrcUnpack NoSrcStrict) (without StrictData) makes no sense, we
emit a warning (in checkValidDataCon) and treat it like
(HsSrcBang _ NoSrcUnpack SrcLazy)
Constructors
| HsSrcBang SourceText SrcUnpackedness SrcStrictness |
Instances
| Outputable HsSrcBang | |
Defined in GHC.Core.DataCon | |
| Data HsSrcBang | |
Defined in GHC.Core.DataCon Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsSrcBang -> c HsSrcBang # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsSrcBang # toConstr :: HsSrcBang -> Constr # dataTypeOf :: HsSrcBang -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsSrcBang) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsSrcBang) # gmapT :: (forall b. Data b => b -> b) -> HsSrcBang -> HsSrcBang # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsSrcBang -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsSrcBang -> r # gmapQ :: (forall d. Data d => d -> u) -> HsSrcBang -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsSrcBang -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsSrcBang -> m HsSrcBang # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSrcBang -> m HsSrcBang # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSrcBang -> m HsSrcBang # | |
data AmbiguousFieldOcc pass #
Ambiguous Field Occurrence
Represents an *occurrence* of a field that is potentially
ambiguous after the renamer, with the ambiguity resolved by the
typechecker. We always store the RdrName that the user
originally wrote, and store the selector function after the renamer
(for unambiguous occurrences) or the typechecker (for ambiguous
occurrences).
See Note [HsRecField and HsRecUpdField] in GHC.Hs.Pat. See Note [Located RdrNames] in GHC.Hs.Expr.
Constructors
| Unambiguous (XUnambiguous pass) (XRec pass RdrName) | |
| Ambiguous (XAmbiguous pass) (XRec pass RdrName) | |
| XAmbiguousFieldOcc !(XXAmbiguousFieldOcc pass) |
Instances
| HiePass p => ToHie (RFContext (LocatedA (AmbiguousFieldOcc (GhcPass p)))) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (AmbiguousFieldOcc (GhcPass p)) | |
Defined in GHC.Hs.Type | |
type LAmbiguousFieldOcc pass = XRec pass (AmbiguousFieldOcc pass) #
Located Ambiguous Field Occurrence
Field Occurrence
Represents an *occurrence* of a field. This may or may not be a
binding occurrence (e.g. this type is used in ConDeclField and
RecordPatSynField which bind their fields, but also in
HsRecField for record construction and patterns, which do not).
We store both the RdrName the user originally wrote, and after
the renamer we use the extension field to store the selector
function.
Constructors
| FieldOcc | |
Fields
| |
| XFieldOcc !(XXFieldOcc pass) | |
type LHsTypeArg p = HsArg p (LHsType p) (LHsKind p) #
Instances
| type XXArg (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Instances
| type XTypeArg GhcPs | |
Defined in GHC.Hs.Type | |
| type XTypeArg GhcRn | |
Defined in GHC.Hs.Type | |
| type XTypeArg GhcTc | |
Defined in GHC.Hs.Type | |
Instances
| type XValArg (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Arguments in an expression/type after splitting
data HsConDetails tyarg arg rec #
Describes the arguments to a data constructor. This is a common representation for several constructor-related concepts, including:
- The arguments in a Haskell98-style constructor declaration
(see
HsConDeclH98Detailsin GHC.Hs.Decls). - The arguments in constructor patterns in
case/function definitions (seeHsConPatDetailsin GHC.Hs.Pat). - The left-hand side arguments in a pattern synonym binding
(see
HsPatSynDetailsin GHC.Hs.Binds).
One notable exception is the arguments in a GADT constructor, which uses
a separate data type entirely (see HsConDeclGADTDetails in
GHC.Hs.Decls). This is because GADT constructors cannot be declared with
infix syntax, unlike the concepts above (#18844).
Instances
| (ToHie tyarg, ToHie arg, ToHie rec) => ToHie (HsConDetails tyarg arg rec) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: HsConDetails tyarg arg rec -> HieM [HieAST Type] | |
| (Data tyarg, Data rec, Data arg) => Data (HsConDetails tyarg arg rec) | |
Defined in Language.Haskell.Syntax.Type Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsConDetails tyarg arg rec -> c (HsConDetails tyarg arg rec) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsConDetails tyarg arg rec) # toConstr :: HsConDetails tyarg arg rec -> Constr # dataTypeOf :: HsConDetails tyarg arg rec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsConDetails tyarg arg rec)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsConDetails tyarg arg rec)) # gmapT :: (forall b. Data b => b -> b) -> HsConDetails tyarg arg rec -> HsConDetails tyarg arg rec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsConDetails tyarg arg rec -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsConDetails tyarg arg rec -> r # gmapQ :: (forall d. Data d => d -> u) -> HsConDetails tyarg arg rec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsConDetails tyarg arg rec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsConDetails tyarg arg rec -> m (HsConDetails tyarg arg rec) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsConDetails tyarg arg rec -> m (HsConDetails tyarg arg rec) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsConDetails tyarg arg rec -> m (HsConDetails tyarg arg rec) # | |
type LConDeclField pass #
Arguments
| = XRec pass (ConDeclField pass) | May have |
Located Constructor Declaration Field
data HsTupleSort #
Haskell Tuple Sort
Constructors
| HsUnboxedTuple | |
| HsBoxedOrConstraintTuple |
Instances
| Data HsTupleSort | |
Defined in Language.Haskell.Syntax.Type Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsTupleSort -> c HsTupleSort # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsTupleSort # toConstr :: HsTupleSort -> Constr # dataTypeOf :: HsTupleSort -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsTupleSort) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsTupleSort) # gmapT :: (forall b. Data b => b -> b) -> HsTupleSort -> HsTupleSort # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTupleSort -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTupleSort -> r # gmapQ :: (forall d. Data d => d -> u) -> HsTupleSort -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTupleSort -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTupleSort -> m HsTupleSort # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTupleSort -> m HsTupleSort # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTupleSort -> m HsTupleSort # | |
This is used in the syntax. In constructor declaration. It must keep the arrow representation.
Instances
| type XXArrow (GhcPass _1) | |
Defined in GHC.Hs.Type | |
type family XExplicitMult p #
Instances
| type XExplicitMult GhcPs | |
Defined in GHC.Hs.Type | |
| type XExplicitMult GhcRn | |
Defined in GHC.Hs.Type | |
| type XExplicitMult GhcTc | |
Defined in GHC.Hs.Type | |
type family XLinearArrow p #
Instances
| type XLinearArrow GhcPs | |
Defined in GHC.Hs.Type | |
| type XLinearArrow GhcRn | |
Defined in GHC.Hs.Type | |
| type XLinearArrow GhcTc | |
Defined in GHC.Hs.Type | |
type family XUnrestrictedArrow p #
Instances
| type XUnrestrictedArrow GhcPs | |
Defined in GHC.Hs.Type | |
| type XUnrestrictedArrow GhcRn | |
Defined in GHC.Hs.Type | |
| type XUnrestrictedArrow GhcTc | |
Defined in GHC.Hs.Type | |
Denotes the type of arrows in the surface language
Constructors
| HsUnrestrictedArrow !(XUnrestrictedArrow pass) | a -> b or a → b |
| HsLinearArrow !(XLinearArrow pass) | a %1 -> b or a %1 → b, or a ⊸ b |
| HsExplicitMult !(XExplicitMult pass) !(LHsType pass) | a %m -> b or a %m → b (very much including `a %Many -> b`!
This is how the programmer wrote it). It is stored as an
|
| XArrow !(XXArrow pass) |
Haskell Type
Constructors
| HsForAllTy |
|
Fields
| |
| HsQualTy | |
| HsTyVar (XTyVar pass) PromotionFlag (LIdP pass) |
|
| HsAppTy (XAppTy pass) (LHsType pass) (LHsType pass) |
|
| HsAppKindTy (XAppKindTy pass) (LHsType pass) (LHsKind pass) | |
| HsFunTy (XFunTy pass) (HsArrow pass) (LHsType pass) (LHsType pass) | |
| HsListTy (XListTy pass) (LHsType pass) |
|
| HsTupleTy (XTupleTy pass) HsTupleSort [LHsType pass] |
|
| HsSumTy (XSumTy pass) [LHsType pass] |
|
| HsOpTy (XOpTy pass) PromotionFlag (LHsType pass) (LIdP pass) (LHsType pass) |
|
| HsParTy (XParTy pass) (LHsType pass) |
|
| HsIParamTy (XIParamTy pass) (XRec pass HsIPName) (LHsType pass) | (?x :: ty) |
| HsStarTy (XStarTy pass) Bool |
|
| HsKindSig (XKindSig pass) (LHsType pass) (LHsKind pass) | (ty :: kind)
|
| HsSpliceTy (XSpliceTy pass) (HsUntypedSplice pass) |
|
| HsDocTy (XDocTy pass) (LHsType pass) (LHsDoc pass) |
|
| HsBangTy (XBangTy pass) HsSrcBang (LHsType pass) |
|
| HsRecTy (XRecTy pass) [LConDeclField pass] |
|
| HsExplicitListTy (XExplicitListTy pass) PromotionFlag [LHsType pass] |
|
| HsExplicitTupleTy (XExplicitTupleTy pass) [LHsType pass] |
|
| HsTyLit (XTyLit pass) (HsTyLit pass) |
|
| HsWildCardTy (XWildCardTy pass) |
|
| XHsType !(XXType pass) | |
Instances
| ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) | |
| ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (LocatedA (HsType GhcRn)) | |
| ToHie (LocatedC [LocatedA (HsType GhcRn)]) | |
| DisambTD (HsType GhcPs) | |
Defined in GHC.Parser.PostProcess Methods mkHsAppTyHeadPV :: LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) # mkHsAppTyPV :: LocatedA (HsType GhcPs) -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) # mkHsAppKindTyPV :: LocatedA (HsType GhcPs) -> EpToken "@" -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) # mkHsOpTyPV :: PromotionFlag -> LHsType GhcPs -> LocatedN RdrName -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) # mkUnpackednessPV :: Located UnpackednessPragma -> LocatedA (HsType GhcPs) -> PV (LocatedA (HsType GhcPs)) # | |
| HasHaddock (LocatedA (HsType GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| type Anno (BangType (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno (HsKind (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno (HsType (GhcPass p)) | |
Defined in GHC.Hs.Type | |
| type Anno [LocatedA (HsType (GhcPass p))] | |
Defined in GHC.Hs.Type | |
| type Anno (FamEqn p (LocatedA (HsType p))) | |
Defined in GHC.Hs.Decls | |
Instances
| type XXBndrVis (GhcPass _1) | |
Defined in GHC.Hs.Type | |
Constructors
| HsBndrRequired !(XBndrRequired pass) | |
| HsBndrInvisible !(XBndrInvisible pass) | |
| XXBndrVis !(XXBndrVis pass) |
Instances
| CvtFlag BndrVis (HsBndrVis GhcPs) | |
Defined in GHC.ThToHs | |
| OutputableBndrFlag (HsBndrVis (GhcPass p')) p | |
Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr (HsBndrVis (GhcPass p')) (GhcPass p) -> SDoc | |
| RepTV (HsBndrVis GhcRn) BndrVis | |
Defined in GHC.HsToCore.Quote | |
type family XBndrInvisible p #
Instances
| type XBndrInvisible GhcPs | |
Defined in GHC.Hs.Type | |
| type XBndrInvisible GhcRn | |
Defined in GHC.Hs.Type | |
| type XBndrInvisible GhcTc | |
Defined in GHC.Hs.Type | |
type family XBndrRequired p #
Instances
| type XBndrRequired (GhcPass _1) | |
Defined in GHC.Hs.Type | |
data HsTyVarBndr flag pass #
Haskell Type Variable Binder
The flag annotates the binder. It is Specificity in places where
explicit specificity is allowed (e.g. x :: forall {a} b. ...) or
() in other places.
Constructors
| UserTyVar (XUserTyVar pass) flag (LIdP pass) | |
| KindedTyVar (XKindedTyVar pass) flag (LIdP pass) (LHsKind pass) | |
| XTyVarBndr !(XXTyVarBndr pass) |
Instances
| Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (HsTyVarBndr _flag (GhcPass _1)) | |
Defined in GHC.Hs.Type | |
| type Anno (HsTyVarBndr _flag GhcPs) | |
Defined in GHC.Hs.Type | |
| type Anno (HsTyVarBndr _flag GhcRn) | |
Defined in GHC.Hs.Type | |
| type Anno (HsTyVarBndr _flag GhcTc) | |
Defined in GHC.Hs.Type | |
These names are used early on to store the names of implicit parameters. They completely disappear after type-checking.
Constructors
| HsIPName FastString |
Instances
| Data HsIPName | |
Defined in Language.Haskell.Syntax.Type Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsIPName -> c HsIPName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsIPName # toConstr :: HsIPName -> Constr # dataTypeOf :: HsIPName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsIPName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsIPName) # gmapT :: (forall b. Data b => b -> b) -> HsIPName -> HsIPName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsIPName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsIPName -> r # gmapQ :: (forall d. Data d => d -> u) -> HsIPName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsIPName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsIPName -> m HsIPName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsIPName -> m HsIPName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsIPName -> m HsIPName # | |
| Eq HsIPName | |
| ToHie (LocatedAn NoEpAnns HsIPName) | |
| type Anno HsIPName | |
Defined in GHC.Hs.Type | |
A type signature that obeys the forall-or-nothing rule. In other
words, an LHsType that uses an HsOuterSigTyVarBndrs to represent its
outermost type variable quantification.
See Note [Representing type signatures].
Constructors
| HsSig | |
| XHsSigType !(XXHsSigType pass) | |
Instances
| ToHie (TScoped (LocatedA (HsSigType GhcRn))) | |
| ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) | |
Defined in GHC.Iface.Ext.Ast | |
| HasHaddock (LocatedA (HsSigType GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| type Anno (HsSigType (GhcPass p)) | |
Defined in GHC.Hs.Type | |
type LHsSigWcType pass = HsWildCardBndrs pass (LHsSigType pass) #
Located Haskell Signature Wildcard Type
type LHsWcType pass = HsWildCardBndrs pass (LHsType pass) #
Located Haskell Wildcard Type
type LHsSigType pass = XRec pass (HsSigType pass) #
Located Haskell Signature Type
data HsPatSigType pass #
Types that can appear in pattern signatures, as well as the signatures for
term-level binders in RULES.
See Note [Pattern signature binders and scoping].
This is very similar to HsSigWcType, but with
slightly different semantics: see Note [HsType binders].
See also Note [The wildcard story for types].
Constructors
| HsPS | |
| XHsPatSigType !(XXHsPatSigType pass) | |
Instances
| ToHie (TScoped (HsPatSigType GhcRn)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsPatSigType GhcRn) -> HieM [HieAST Type] | |
data HsWildCardBndrs pass thing #
Haskell Wildcard Binders
Constructors
| HsWC | |
| XHsWildCardBndrs !(XXHsWildCardBndrs pass thing) | |
Instances
| ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) | |
Defined in GHC.Iface.Ext.Ast | |
| HasHaddock a => HasHaddock (HsWildCardBndrs GhcPs a) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsWildCardBndrs GhcPs a -> HdkA (HsWildCardBndrs GhcPs a) | |
type HsOuterFamEqnTyVarBndrs = HsOuterTyVarBndrs () #
Used for type-family instance equations, e.g.,
type instance forall a. F [a] = Tree a
The notion of specificity is irrelevant in type family equations, so we use
() for the HsOuterTyVarBndrs flag.
type HsOuterSigTyVarBndrs = HsOuterTyVarBndrs Specificity #
Used for signatures, e.g.,
f :: forall a {b}. blah
We use Specificity for the HsOuterTyVarBndrs flag to allow
distinguishing between specified and inferred type variables.
data HsOuterTyVarBndrs flag pass #
The outermost type variables in a type that obeys the forall-or-nothing
rule. See Note [forall-or-nothing rule].
Constructors
| HsOuterImplicit | Implicit forall, e.g.,
|
Fields
| |
| HsOuterExplicit | Explicit forall, e.g.,
|
Fields
| |
| XHsOuterTyVarBndrs !(XXHsOuterTyVarBndrs pass) | |
Instances
| Data flag => ToHie (TVScoped (HsOuterTyVarBndrs flag GhcRn)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: TVScoped (HsOuterTyVarBndrs flag GhcRn) -> HieM [HieAST Type] | |
| type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) | |
Defined in GHC.Hs.Type | |
data LHsQTyVars pass #
Located Haskell Quantified Type Variables
Constructors
| HsQTvs | |
Fields
| |
| XLHsQTyVars !(XXLHsQTyVars pass) | |
Instances
| ToHie (TScoped (LHsQTyVars GhcRn)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (LHsQTyVars GhcRn) -> HieM [HieAST Type] | |
type LHsTyVarBndr flag pass = XRec pass (HsTyVarBndr flag pass) #
Located Haskell Type Variable Binder
data HsForAllTelescope pass #
The type variable binders in an HsForAllTy.
See also Note [Variable Specificity and Forall Visibility] in
GHC.Tc.Gen.HsType.
Constructors
| HsForAllVis | A visible |
Fields
| |
| HsForAllInvis | An invisible |
Fields
| |
| XHsForAllTelescope !(XXHsForAllTelescope pass) | |
Arguments
| = XRec pass (HsType pass) | May have |
Located Haskell Type
type LHsContext pass #
Arguments
| = XRec pass (HsContext pass) |
|
Located Haskell Context
hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr (HsBndrVis pass) pass] #
hsPatSigType :: HsPatSigType pass -> LHsType pass #
mapHsOuterImplicit :: (XHsOuterImplicit pass -> XHsOuterImplicit pass) -> HsOuterTyVarBndrs flag pass -> HsOuterTyVarBndrs flag pass #
hsIPNameFS :: HsIPName -> FastString #
isHsBndrInvisible :: HsBndrVis pass -> Bool #
isHsKindedTyVar :: HsTyVarBndr flag pass -> Bool #
Does this HsTyVarBndr come with an explicit kind annotation?
hsScaledThing :: HsScaled pass a -> a #
noTypeArgs :: [Void] #
An empty list that can be used to indicate that there are no type arguments allowed in cases where HsConDetails is applied to Void.
conDetailsArity :: (rec -> Arity) -> HsConDetails tyarg arg rec -> Arity #
data HsFieldBind lhs rhs #
Haskell Field Binding
For details on above see Note [exact print annotations] in GHC.Parser.Annotation
Constructors
| HsFieldBind | |
Instances
| (ToHie (RFContext label), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsFieldBind label arg))) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (LocatedA (HsFieldBind label arg)) -> HieM [HieAST Type] | |
| Functor (HsFieldBind lhs) | |
Defined in Language.Haskell.Syntax.Pat Methods fmap :: (a -> b) -> HsFieldBind lhs a -> HsFieldBind lhs b # (<$) :: a -> HsFieldBind lhs b -> HsFieldBind lhs a # | |
| Foldable (HsFieldBind lhs) | |
Defined in Language.Haskell.Syntax.Pat Methods fold :: Monoid m => HsFieldBind lhs m -> m # foldMap :: Monoid m => (a -> m) -> HsFieldBind lhs a -> m # foldMap' :: Monoid m => (a -> m) -> HsFieldBind lhs a -> m # foldr :: (a -> b -> b) -> b -> HsFieldBind lhs a -> b # foldr' :: (a -> b -> b) -> b -> HsFieldBind lhs a -> b # foldl :: (b -> a -> b) -> b -> HsFieldBind lhs a -> b # foldl' :: (b -> a -> b) -> b -> HsFieldBind lhs a -> b # foldr1 :: (a -> a -> a) -> HsFieldBind lhs a -> a # foldl1 :: (a -> a -> a) -> HsFieldBind lhs a -> a # toList :: HsFieldBind lhs a -> [a] # null :: HsFieldBind lhs a -> Bool # length :: HsFieldBind lhs a -> Int # elem :: Eq a => a -> HsFieldBind lhs a -> Bool # maximum :: Ord a => HsFieldBind lhs a -> a # minimum :: Ord a => HsFieldBind lhs a -> a # sum :: Num a => HsFieldBind lhs a -> a # product :: Num a => HsFieldBind lhs a -> a # | |
| Traversable (HsFieldBind lhs) | |
Defined in Language.Haskell.Syntax.Pat Methods traverse :: Applicative f => (a -> f b) -> HsFieldBind lhs a -> f (HsFieldBind lhs b) # sequenceA :: Applicative f => HsFieldBind lhs (f a) -> f (HsFieldBind lhs a) # mapM :: Monad m => (a -> m b) -> HsFieldBind lhs a -> m (HsFieldBind lhs b) # sequence :: Monad m => HsFieldBind lhs (m a) -> m (HsFieldBind lhs a) # | |
| type Anno (HsFieldBind lhs rhs) | |
Defined in GHC.Hs.Pat | |
type HsRecUpdField p q = HsFieldBind (LAmbiguousFieldOcc p) (LHsExpr q) #
Haskell Record Update Field
type HsRecField p arg = HsFieldBind (LFieldOcc p) arg #
Haskell Record Field
type LHsRecUpdField p q = XRec p (HsRecUpdField p q) #
Located Haskell Record Update Field
type LHsRecField p arg = XRec p (HsRecField p arg) #
Located Haskell Record Field
type LHsFieldBind p id arg = XRec p (HsFieldBind id arg) #
Located Haskell Record Field
newtype RecFieldsDotDot #
Newtype to be able to have a specific XRec instance for the Int in rec_dotdot
Constructors
| RecFieldsDotDot | |
Fields | |
Instances
| Data RecFieldsDotDot | |
Defined in Language.Haskell.Syntax.Pat Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RecFieldsDotDot -> c RecFieldsDotDot # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RecFieldsDotDot # toConstr :: RecFieldsDotDot -> Constr # dataTypeOf :: RecFieldsDotDot -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RecFieldsDotDot) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RecFieldsDotDot) # gmapT :: (forall b. Data b => b -> b) -> RecFieldsDotDot -> RecFieldsDotDot # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RecFieldsDotDot -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RecFieldsDotDot -> r # gmapQ :: (forall d. Data d => d -> u) -> RecFieldsDotDot -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RecFieldsDotDot -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RecFieldsDotDot -> m RecFieldsDotDot # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RecFieldsDotDot -> m RecFieldsDotDot # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RecFieldsDotDot -> m RecFieldsDotDot # | |
| Eq RecFieldsDotDot | |
Defined in Language.Haskell.Syntax.Pat Methods (==) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool # (/=) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool # | |
| Ord RecFieldsDotDot | |
Defined in Language.Haskell.Syntax.Pat Methods compare :: RecFieldsDotDot -> RecFieldsDotDot -> Ordering # (<) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool # (<=) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool # (>) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool # (>=) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool # max :: RecFieldsDotDot -> RecFieldsDotDot -> RecFieldsDotDot # min :: RecFieldsDotDot -> RecFieldsDotDot -> RecFieldsDotDot # | |
| type Anno RecFieldsDotDot | |
Defined in GHC.Hs.Pat | |
data HsRecFields p arg #
Haskell Record Fields
HsRecFields is used only for patterns and expressions (not data type declarations)
Constructors
| HsRecFields | |
Fields
| |
Instances
| (ToHie arg, HasLoc arg, Data arg, HiePass p) => ToHie (RContext (HsRecFields (GhcPass p) arg)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (HsRecFields (GhcPass p) arg) -> HieM [HieAST Type] | |
type HsConPatDetails p = HsConDetails (HsConPatTyArg (NoGhcTc p)) (LPat p) (HsRecFields p (LPat p)) #
Haskell Constructor Pattern Details
type family XConPatTyArg p #
Instances
| type XConPatTyArg GhcPs | |
Defined in GHC.Hs.Pat | |
| type XConPatTyArg GhcRn | |
Defined in GHC.Hs.Pat | |
| type XConPatTyArg GhcTc | |
Defined in GHC.Hs.Pat | |
data HsConPatTyArg p #
Type argument in a data constructor pattern,
e.g. the @a in f (Just @a x) = ....
Constructors
| HsConPatTyArg !(XConPatTyArg p) (HsTyPat p) |
isInvisArgPat :: Pat p -> Bool #
isVisArgPat :: Pat p -> Bool #
hsConPatArgs :: UnXRec p => HsConPatDetails p -> [LPat p] #
hsConPatTyArgs :: HsConPatDetails p -> [HsConPatTyArg (NoGhcTc p)] #
hsRecFields :: UnXRec p => HsRecFields p arg -> [XCFieldOcc p] #
hsRecFieldsArgs :: UnXRec p => HsRecFields p arg -> [arg] #
hsRecFieldSel :: UnXRec p => HsRecField p arg -> XCFieldOcc p #
data HsPatSynDir id #
Haskell Pattern Synonym Direction
Constructors
| Unidirectional | |
| ImplicitBidirectional | |
| ExplicitBidirectional (MatchGroup id (LHsExpr id)) |
Instances
| HiePass p => ToHie (HsPatSynDir (GhcPass p)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: HsPatSynDir (GhcPass p) -> HieM [HieAST Type] | |
data RecordPatSynField pass #
Record Pattern Synonym Field
Constructors
| RecordPatSynField | |
Fields
| |
Instances
| HiePass p => ToHie (PatSynFieldContext (RecordPatSynField (GhcPass p))) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: PatSynFieldContext (RecordPatSynField (GhcPass p)) -> HieM [HieAST Type] | |
type HsPatSynDetails pass = HsConDetails Void (LIdP pass) [RecordPatSynField pass] #
Haskell Pattern Synonym Details
type LFixitySig pass = XRec pass (FixitySig pass) #
Located Fixity Signature
Signatures and pragmas
Constructors
| TypeSig (XTypeSig pass) [LIdP pass] (LHsSigWcType pass) | An ordinary type signature f :: Num a => a -> a After renaming, this list of Names contains the named
wildcards brought into scope by this signature. For a signature
|
| PatSynSig (XPatSynSig pass) [LIdP pass] (LHsSigType pass) | A pattern synonym type signature pattern Single :: () => (Show a) => a -> [a] |
| ClassOpSig (XClassOpSig pass) Bool [LIdP pass] (LHsSigType pass) | A signature for a class method False: ordinary class-method signature True: generic-default class method signature e.g. class C a where op :: a -> a -- Ordinary default op :: Eq a => a -> a -- Generic default No wildcards allowed here |
| FixSig (XFixSig pass) (FixitySig pass) | An ordinary fixity declaration infixl 8 *** |
| InlineSig (XInlineSig pass) (LIdP pass) InlinePragma | An inline pragma {#- INLINE f #-} |
| SpecSig (XSpecSig pass) (LIdP pass) [LHsSigType pass] InlinePragma | A specialisation pragma {-# SPECIALISE f :: Int -> Int #-} |
| SpecInstSig (XSpecInstSig pass) (LHsSigType pass) | A specialisation pragma for instance declarations only {-# SPECIALISE instance Eq [Int] #-}(Class tys); should be a specialisation of the current instance declaration |
| MinimalSig (XMinimalSig pass) (LBooleanFormula (LIdP pass)) | A minimal complete definition pragma {-# MINIMAL a | (b, c | (d | e)) #-} |
| SCCFunSig (XSCCFunSig pass) (LIdP pass) (Maybe (XRec pass StringLiteral)) | A "set cost centre" pragma for declarations {-# SCC funName #-}or {-# SCC funName "cost_centre_name" #-} |
| CompleteMatchSig (XCompleteMatchSig pass) [LIdP pass] (Maybe (LIdP pass)) | A complete match pragma {-# COMPLETE C, D [:: T] #-}Used to inform the pattern match checker about additional complete matchings which, for example, arise from pattern synonym definitions. |
| XSig !(XXSig pass) |
Implicit parameter bindings.
type LIPBind id = XRec id (IPBind id) #
Located Implicit Parameter Binding
May have AnnKeywordId : AnnSemi when in a
list
data HsLocalBindsLR idL idR #
Haskell Local Bindings with separate Left and Right identifier types
Bindings in a 'let' expression or a 'where' clause
Constructors
| HsValBinds (XHsValBinds idL idR) (HsValBindsLR idL idR) | Haskell Value Bindings |
| HsIPBinds (XHsIPBinds idL idR) (HsIPBinds idR) | Haskell Implicit Parameter Bindings |
| EmptyLocalBinds (XEmptyLocalBinds idL idR) | Empty Local Bindings |
| XHsLocalBindsLR !(XXHsLocalBindsLR idL idR) |
Instances
| HiePass p => ToHie (RScoped (HsLocalBinds (GhcPass p))) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (HsLocalBinds (GhcPass p)) -> HieM [HieAST Type] | |
Instances
| type XXMultAnn (GhcPass _1) | |
Defined in GHC.Hs.Binds | |
Instances
| type XMultAnn GhcPs | |
Defined in GHC.Hs.Binds | |
| type XMultAnn GhcRn | |
Defined in GHC.Hs.Binds | |
| type XMultAnn GhcTc | |
Defined in GHC.Hs.Binds | |
Multiplicity annotations, on binders, are always resolved (to a unification variable if there is no annotation) during type-checking. The resolved multiplicity is stored in the extension fields.
Constructors
| HsNoMultAnn !(XNoMultAnn pass) | |
| HsPct1Ann !(XPct1Ann pass) | |
| HsMultAnn !(XMultAnn pass) (LHsType (NoGhcTc pass)) | |
| XMultAnn !(XXMultAnn pass) |
Instances
| type XPct1Ann GhcPs | |
Defined in GHC.Hs.Binds | |
| type XPct1Ann GhcRn | |
Defined in GHC.Hs.Binds | |
| type XPct1Ann GhcTc | |
Defined in GHC.Hs.Binds | |
type family XNoMultAnn p #
Instances
| type XNoMultAnn GhcPs | |
Defined in GHC.Hs.Binds | |
| type XNoMultAnn GhcRn | |
Defined in GHC.Hs.Binds | |
| type XNoMultAnn GhcTc | |
Defined in GHC.Hs.Binds | |
Haskell Binding with separate Left and Right id's
Constructors
| FunBind | Function-like Binding FunBind is used for both functions Reason 1: Special case for type inference: see Reason 2: Instance decls can only have FunBinds, which is convenient. If you change this, you'll need to change e.g. rnMethodBinds But note that the form Strict bindings have their strictness recorded in the |
Fields
| |
| PatBind | Pattern Binding The pattern is never a simple variable; That case is done by FunBind. See Note [FunBind vs PatBind] for details about the relationship between FunBind and PatBind. |
| VarBind | Variable Binding Dictionary binding and suchlike. All VarBinds are introduced by the type checker |
| PatSynBind | Patterns Synonym Binding |
Fields
| |
| XHsBindsLR !(XXHsBindsLR idL idR) | |
type LHsBindLR idL idR = XRec idL (HsBindLR idL idR) #
Located Haskell Binding with separate Left and Right identifier types
type LHsBindsLR idL idR = Bag (LHsBindLR idL idR) #
Located Haskell Bindings with separate Left and Right identifier types
type LHsBinds id = LHsBindsLR id id #
Located Haskell Bindings
data HsValBindsLR idL idR #
Haskell Value bindings with separate Left and Right identifier types (not implicit parameters) Used for both top level and nested bindings May contain pattern synonym bindings
Constructors
| ValBinds (XValBinds idL idR) (LHsBindsLR idL idR) [LSig idR] | Value Bindings In Before renaming RHS; idR is always RdrName Not dependency analysed Recursive by default |
| XValBindsLR !(XXValBindsLR idL idR) | Value Bindings Out After renaming RHS; idR can be Name or Id Dependency analysed, later bindings in the list may depend on earlier ones. |
Instances
| HiePass p => ToHie (RScoped (HsValBindsLR (GhcPass p) (GhcPass p))) | |
Defined in GHC.Iface.Ext.Ast | |
type HsValBinds id = HsValBindsLR id id #
Haskell Value Bindings
type LHsLocalBindsLR idL idR = XRec idL (HsLocalBindsLR idL idR) #
type LHsLocalBinds id = XRec id (HsLocalBinds id) #
Located Haskell local bindings
type HsLocalBinds id = HsLocalBindsLR id id #
Haskell Local Bindings
isFixityLSig :: UnXRec p => LSig p -> Bool #
isTypeLSig :: UnXRec p => LSig p -> Bool #
isSpecLSig :: UnXRec p => LSig p -> Bool #
isSpecInstLSig :: UnXRec p => LSig p -> Bool #
isPragLSig :: UnXRec p => LSig p -> Bool #
isInlineLSig :: UnXRec p => LSig p -> Bool #
isMinimalLSig :: UnXRec p => LSig p -> Bool #
isSCCFunSig :: UnXRec p => LSig p -> Bool #
isCompleteMatchSig :: UnXRec p => LSig p -> Bool #
data RoleAnnotDecl pass #
Role Annotation Declaration
Constructors
| RoleAnnotDecl (XCRoleAnnotDecl pass) (LIdP pass) [XRec pass (Maybe Role)] | |
| XRoleAnnotDecl !(XXRoleAnnotDecl pass) |
Instances
| ToHie (LocatedA (RoleAnnotDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (RoleAnnotDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass) #
Located Role Annotation Declaration
data AnnProvenance pass #
Annotation Provenance
Constructors
| ValueAnnProvenance (LIdP pass) | |
| TypeAnnProvenance (LIdP pass) | |
| ModuleAnnProvenance |
Instances
| ToHie (AnnProvenance GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: AnnProvenance GhcRn -> HieM [HieAST Type] | |
type LWarnDecls pass = XRec pass (WarnDecls pass) #
Located Warning Declarations
Documentation comment Declaration
Constructors
| DocCommentNext (LHsDoc pass) | |
| DocCommentPrev (LHsDoc pass) | |
| DocCommentNamed String (LHsDoc pass) | |
| DocGroup Int (LHsDoc pass) |
Instances
| ToHie (LocatedA (DocDecl GhcRn)) | |
| (Data pass, Data (IdP pass)) => Data (DocDecl pass) | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DocDecl pass -> c (DocDecl pass) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (DocDecl pass) # toConstr :: DocDecl pass -> Constr # dataTypeOf :: DocDecl pass -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (DocDecl pass)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (DocDecl pass)) # gmapT :: (forall b. Data b => b -> b) -> DocDecl pass -> DocDecl pass # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl pass -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl pass -> r # gmapQ :: (forall d. Data d => d -> u) -> DocDecl pass -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DocDecl pass -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DocDecl pass -> m (DocDecl pass) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl pass -> m (DocDecl pass) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl pass -> m (DocDecl pass) # | |
| type Anno (DocDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
Rule Declaration
Constructors
| HsRule | |
Fields
| |
| XRuleDecl !(XXRuleDecl pass) | |
Rule Declarations
Constructors
| HsRules | |
Fields
| |
| XRuleDecls !(XXRuleDecls pass) | |
type LRuleDecls pass = XRec pass (RuleDecls pass) #
Located Rule Declarations
data ForeignDecl pass #
Foreign Declaration
Constructors
| ForeignImport | |
Fields
| |
| ForeignExport | |
Fields
| |
| XForeignDecl !(XXForeignDecl pass) | |
Instances
| ToHie (LocatedA (ForeignDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (ForeignDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LForeignDecl pass = XRec pass (ForeignDecl pass) #
Located Foreign Declaration
data DefaultDecl pass #
Default Declaration
Constructors
| DefaultDecl (XCDefaultDecl pass) [LHsType pass] | |
| XDefaultDecl !(XXDefaultDecl pass) |
Instances
| ToHie (LocatedA (DefaultDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (DefaultDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LDefaultDecl pass = XRec pass (DefaultDecl pass) #
Located Default Declaration
type LDerivStrategy pass = XRec pass (DerivStrategy pass) #
A Located DerivStrategy.
Stand-alone 'deriving instance' declaration
Constructors
| DerivDecl | |
Fields
| |
| XDerivDecl !(XXDerivDecl pass) | |
type LDerivDecl pass = XRec pass (DerivDecl pass) #
Located stand-alone 'deriving instance' declaration
Instance Declaration
Constructors
| ClsInstD | |
Fields
| |
| DataFamInstD | |
Fields
| |
| TyFamInstD | |
Fields
| |
| XInstDecl !(XXInstDecl pass) | |
data ClsInstDecl pass #
Class Instance Declaration
- AnnKeywordId : AnnInstance,
AnnWhere,
AnnOpen,AnnClose,
For details on above see Note [exact print annotations] in GHC.Parser.Annotation
Constructors
| ClsInstDecl | |
Fields
| |
| XClsInstDecl !(XXClsInstDecl pass) | |
Instances
| ToHie (LocatedA (ClsInstDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (ClsInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LClsInstDecl pass = XRec pass (ClsInstDecl pass) #
Located Class Instance Declaration
Family Equation
One equation in a type family instance declaration, data family instance declaration, or type family default. See Note [Type family instance declarations in HsSyn] See Note [Family instance declaration binders]
Constructors
| FamEqn | |
Fields
| |
| XFamEqn !(XXFamEqn pass rhs) | |
Instances
| ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) | |
| ToHie (TScoped (FamEqn GhcRn (HsDataDefn GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| (ToHie rhs, HasLoc rhs) => ToHie (FamEqn GhcRn rhs) | |
| type Anno (FamEqn (GhcPass p) _1) | |
Defined in GHC.Hs.Decls | |
| type Anno (FamEqn (GhcPass p) _1) | |
Defined in GHC.Hs.Decls | |
| type Anno (FamEqn p (LocatedA (HsType p))) | |
Defined in GHC.Hs.Decls | |
newtype DataFamInstDecl pass #
Data Family Instance Declaration
Constructors
| DataFamInstDecl | |
Fields
| |
Instances
| ToHie (LocatedA (DataFamInstDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (DataFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass) #
Located Data Family Instance Declaration
data TyFamInstDecl pass #
Type Family Instance Declaration
Constructors
| TyFamInstDecl | |
Fields
| |
| XTyFamInstDecl !(XXTyFamInstDecl pass) | |
Instances
| ToHie (LocatedA (TyFamInstDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (TyFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LTyFamInstDecl pass = XRec pass (TyFamInstDecl pass) #
Located Type Family Instance Declaration
type LTyFamDefltDecl pass = XRec pass (TyFamDefltDecl pass) #
Located type family default declarations.
type TyFamDefltDecl = TyFamInstDecl #
Type family default declarations.
A convenient synonym for TyFamInstDecl.
See Note [Type family instance declarations in HsSyn].
type TyFamInstEqn pass = FamEqn pass (LHsType pass) #
Type Family Instance Equation
type HsFamEqnPats pass = [LHsTypeArg pass] #
HsFamEqnPats represents patterns on the left-hand side of a type instance,
e.g. `type instance F k (a :: k) = a` has patterns `k` and `(a :: k)`.
HsFamEqnPats used to be called HsTyPats but it was renamed to avoid confusion with a different notion of type patterns, see #23657.
type LTyFamInstEqn pass #
Arguments
| = XRec pass (TyFamInstEqn pass) | May have |
Located Type Family Instance Equation
type family XXConDeclGADTDetails p #
Instances
| type XXConDeclGADTDetails (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
type family XRecConGADT p #
Instances
| type XRecConGADT GhcPs | |
Defined in GHC.Hs.Decls | |
| type XRecConGADT GhcRn | |
Defined in GHC.Hs.Decls | |
| type XRecConGADT GhcTc | |
Defined in GHC.Hs.Decls | |
type family XPrefixConGADT p #
Instances
| type XPrefixConGADT (GhcPass _1) | |
Defined in GHC.Hs.Decls | |
data HsConDeclGADTDetails pass #
The arguments in a GADT constructor. Unlike Haskell98-style constructors,
GADT constructors cannot be declared with infix syntax. As a result, we do
not use HsConDetails here, as InfixCon would be an unrepresentable
state. (There is a notion of infix GADT constructors for the purposes of
derived Show instances—see Note [Infix GADT constructors] in
GHC.Tc.TyCl—but that is an orthogonal concern.)
Constructors
| PrefixConGADT !(XPrefixConGADT pass) [HsScaled pass (LBangType pass)] | |
| RecConGADT !(XRecConGADT pass) (XRec pass [LConDeclField pass]) | |
| XConDeclGADTDetails !(XXConDeclGADTDetails pass) |
Instances
| ToHie (HsConDeclGADTDetails GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: HsConDeclGADTDetails GhcRn -> HieM [HieAST Type] | |
type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass]) #
The arguments in a Haskell98-style data constructor.
data T b = forall a. Eq a => MkT a b
MkT :: forall b a. Eq a => MkT a b
data T b where
MkT1 :: Int -> T Int
data T = Int MkT Int
| MkT2
data T a where
Int MkT Int :: T Int
AnnKeywordIds :AnnOpen,AnnDotdot,AnnCLose,AnnEqual,AnnVbar,AnnDarrow,AnnDarrow,AnnForall,AnnDot
data Constructor Declaration
Constructors
| ConDeclGADT | |
Fields
| |
| ConDeclH98 | |
Fields
| |
| XConDecl !(XXConDecl pass) | |
Arguments
| = XRec pass (ConDecl pass) | May have |
Located data Constructor Declaration
data DataDefnCons a #
Whether a data-type declaration is data or newtype, and its constructors.
Constructors
| NewTypeCon a | |
| DataTypeCons Bool [a] |
Instances
| Functor DataDefnCons | |
Defined in Language.Haskell.Syntax.Decls Methods fmap :: (a -> b) -> DataDefnCons a -> DataDefnCons b # (<$) :: a -> DataDefnCons b -> DataDefnCons a # | |
| Foldable DataDefnCons | |
Defined in Language.Haskell.Syntax.Decls Methods fold :: Monoid m => DataDefnCons m -> m # foldMap :: Monoid m => (a -> m) -> DataDefnCons a -> m # foldMap' :: Monoid m => (a -> m) -> DataDefnCons a -> m # foldr :: (a -> b -> b) -> b -> DataDefnCons a -> b # foldr' :: (a -> b -> b) -> b -> DataDefnCons a -> b # foldl :: (b -> a -> b) -> b -> DataDefnCons a -> b # foldl' :: (b -> a -> b) -> b -> DataDefnCons a -> b # foldr1 :: (a -> a -> a) -> DataDefnCons a -> a # foldl1 :: (a -> a -> a) -> DataDefnCons a -> a # toList :: DataDefnCons a -> [a] # null :: DataDefnCons a -> Bool # length :: DataDefnCons a -> Int # elem :: Eq a => a -> DataDefnCons a -> Bool # maximum :: Ord a => DataDefnCons a -> a # minimum :: Ord a => DataDefnCons a -> a # sum :: Num a => DataDefnCons a -> a # product :: Num a => DataDefnCons a -> a # | |
| Traversable DataDefnCons | |
Defined in Language.Haskell.Syntax.Decls Methods traverse :: Applicative f => (a -> f b) -> DataDefnCons a -> f (DataDefnCons b) # sequenceA :: Applicative f => DataDefnCons (f a) -> f (DataDefnCons a) # mapM :: Monad m => (a -> m b) -> DataDefnCons a -> m (DataDefnCons b) # sequence :: Monad m => DataDefnCons (m a) -> m (DataDefnCons a) # | |
| ToHie a => ToHie (DataDefnCons a) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: DataDefnCons a -> HieM [HieAST Type] | |
| Data a => Data (DataDefnCons a) | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataDefnCons a -> c (DataDefnCons a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (DataDefnCons a) # toConstr :: DataDefnCons a -> Constr # dataTypeOf :: DataDefnCons a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (DataDefnCons a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (DataDefnCons a)) # gmapT :: (forall b. Data b => b -> b) -> DataDefnCons a -> DataDefnCons a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataDefnCons a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataDefnCons a -> r # gmapQ :: (forall d. Data d => d -> u) -> DataDefnCons a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DataDefnCons a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataDefnCons a -> m (DataDefnCons a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDefnCons a -> m (DataDefnCons a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDefnCons a -> m (DataDefnCons a) # | |
| Eq a => Eq (DataDefnCons a) | |
Defined in Language.Haskell.Syntax.Decls Methods (==) :: DataDefnCons a -> DataDefnCons a -> Bool # (/=) :: DataDefnCons a -> DataDefnCons a -> Bool # | |
type LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass) #
Located Standalone Kind Signature
data DerivClauseTys pass #
The types mentioned in a single deriving clause. This can come in two
forms, DctSingle or DctMulti, depending on whether the types are
surrounded by enclosing parentheses or not. These parentheses are
semantically different than HsParTy. For example, deriving () means
"derive zero classes" rather than "derive an instance of the 0-tuple".
DerivClauseTys use LHsSigType because deriving clauses can mention
type variables that aren't bound by the datatype, e.g.
data T b = ... deriving (C [a])
should produce a derived instance for C [a] (T b).
Constructors
| DctSingle (XDctSingle pass) (LHsSigType pass) | A Example: |
| DctMulti (XDctMulti pass) [LHsSigType pass] | A Example: |
| XDerivClauseTys !(XXDerivClauseTys pass) |
Instances
| ToHie (LocatedC (DerivClauseTys GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| HasHaddock (LocatedC (DerivClauseTys GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedC (DerivClauseTys GhcPs) -> HdkA (LocatedC (DerivClauseTys GhcPs)) | |
| type Anno (DerivClauseTys (GhcPass _1)) | |
Defined in GHC.Hs.Decls | |
type LDerivClauseTys pass = XRec pass (DerivClauseTys pass) #
data HsDerivingClause pass #
A single deriving clause of a data declaration.
Constructors
| HsDerivingClause | |
Fields
| |
| XHsDerivingClause !(XXHsDerivingClause pass) | |
Instances
| ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) | |
Defined in GHC.Iface.Ext.Ast | |
| HasHaddock (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)] -> HdkA (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) | |
| ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedAn NoEpAnns (HsDerivingClause GhcPs) -> HdkA (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) | |
| type Anno (HsDerivingClause (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LHsDerivingClause pass = XRec pass (HsDerivingClause pass) #
type HsDeriving pass #
Arguments
| = [LHsDerivingClause pass] | The optional The list of |
Haskell Deriving clause
data HsDataDefn pass #
Haskell Data type Definition
Constructors
| HsDataDefn | Declares a data type or newtype, giving its constructors
|
Fields
| |
| XHsDataDefn !(XXHsDataDefn pass) | |
Instances
| ToHie (TScoped (FamEqn GhcRn (HsDataDefn GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (HsDataDefn GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: HsDataDefn GhcRn -> HieM [HieAST Type] | |
| HasHaddock (HsDataDefn GhcPs) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsDataDefn GhcPs -> HdkA (HsDataDefn GhcPs) | |
data FamilyInfo pass #
Constructors
| DataFamily | |
| OpenTypeFamily | |
| ClosedTypeFamily (Maybe [LTyFamInstEqn pass]) |
|
Instances
| ToHie (FamilyInfo GhcRn) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: FamilyInfo GhcRn -> HieM [HieAST Type] | |
type LInjectivityAnn pass = XRec pass (InjectivityAnn pass) #
Located Injectivity Annotation
data FamilyDecl pass #
type Family Declaration
Constructors
| FamilyDecl | |
Fields
| |
| XFamilyDecl !(XXFamilyDecl pass) | |
Instances
| ToHie (LocatedA (FamilyDecl GhcRn)) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (FamilyDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LFamilyDecl pass = XRec pass (FamilyDecl pass) #
Located type Family Declaration
data FamilyResultSig pass #
type Family Result Signature
Constructors
| NoSig (XNoSig pass) | |
| KindSig (XCKindSig pass) (LHsKind pass) | |
| TyVarSig (XTyVarSig pass) (LHsTyVarBndr () pass) | |
| XFamilyResultSig !(XXFamilyResultSig pass) |
Instances
| ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) | |
Defined in GHC.Iface.Ext.Ast | |
| type Anno (FamilyResultSig (GhcPass p)) | |
Defined in GHC.Hs.Decls | |
type LFamilyResultSig pass = XRec pass (FamilyResultSig pass) #
Located type Family Result Signature
Type or Class Group
Constructors
| TyClGroup | |
Fields
| |
| XTyClGroup !(XXTyClGroup pass) | |
A type or class declaration.
Constructors
| FamDecl | type/data family T :: *->* |
Fields
| |
| SynDecl |
|
Fields
| |
| DataDecl |
|
Fields
| |
| ClassDecl | |
Fields
| |
| XTyClDecl !(XXTyClDecl pass) | |
data SpliceDecoration #
A splice can appear with various decorations wrapped around it. This data type captures explicitly how it was originally written, for use in the pretty printer.
Constructors
| DollarSplice | $splice |
| BareSplice | bare splice |
Instances
| Data SpliceDecoration | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SpliceDecoration -> c SpliceDecoration # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SpliceDecoration # toConstr :: SpliceDecoration -> Constr # dataTypeOf :: SpliceDecoration -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SpliceDecoration) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SpliceDecoration) # gmapT :: (forall b. Data b => b -> b) -> SpliceDecoration -> SpliceDecoration # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SpliceDecoration -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SpliceDecoration -> r # gmapQ :: (forall d. Data d => d -> u) -> SpliceDecoration -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SpliceDecoration -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SpliceDecoration -> m SpliceDecoration # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SpliceDecoration -> m SpliceDecoration # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SpliceDecoration -> m SpliceDecoration # | |
| Show SpliceDecoration | |
Defined in Language.Haskell.Syntax.Decls Methods showsPrec :: Int -> SpliceDecoration -> ShowS # show :: SpliceDecoration -> String # showList :: [SpliceDecoration] -> ShowS # | |
| Eq SpliceDecoration | |
Defined in Language.Haskell.Syntax.Decls Methods (==) :: SpliceDecoration -> SpliceDecoration -> Bool # (/=) :: SpliceDecoration -> SpliceDecoration -> Bool # | |
type LSpliceDecl pass = XRec pass (SpliceDecl pass) #
Located Splice Declaration
Constructors
| HsGroup | |
Fields
| |
| XHsGroup !(XXHsGroup p) | |
A Haskell Declaration
Constructors
| TyClD (XTyClD p) (TyClDecl p) | Type or Class Declaration |
| InstD (XInstD p) (InstDecl p) | Instance declaration |
| DerivD (XDerivD p) (DerivDecl p) | Deriving declaration |
| ValD (XValD p) (HsBind p) | Value declaration |
| SigD (XSigD p) (Sig p) | Signature declaration |
| KindSigD (XKindSigD p) (StandaloneKindSig p) | Standalone kind signature |
| DefD (XDefD p) (DefaultDecl p) | 'default' declaration |
| ForD (XForD p) (ForeignDecl p) | Foreign declaration |
| WarningD (XWarningD p) (WarnDecls p) | Warning declaration |
| AnnD (XAnnD p) (AnnDecl p) | Annotation declaration |
| RuleD (XRuleD p) (RuleDecls p) | Rule declaration |
| SpliceD (XSpliceD p) (SpliceDecl p) | Splice declaration (Includes quasi-quotes) |
| DocD (XDocD p) (DocDecl p) | Documentation comment declaration |
| RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p) | Role annotation declaration |
| XHsDecl !(XXHsDecl p) |
Instances
| HasHaddock (LocatedA (HsDecl GhcPs)) | |
Defined in GHC.Parser.PostProcess.Haddock | |
| HasHaddock (HsDecl GhcPs) | |
Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsDecl GhcPs -> HdkA (HsDecl GhcPs) | |
| type Anno (HsDecl (GhcPass _1)) | |
Defined in GHC.Hs.Decls | |
hsGroupInstDecls :: HsGroup id -> [LInstDecl id] #
isDataDecl :: TyClDecl pass -> Bool #
True = argument is a data/newtype
declaration.
isClassDecl :: TyClDecl pass -> Bool #
type class
isFamilyDecl :: TyClDecl pass -> Bool #
type/data family declaration
isTypeFamilyDecl :: TyClDecl pass -> Bool #
type family declaration
isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool #
open type family info
isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool #
closed type family info
isDataFamilyDecl :: TyClDecl pass -> Bool #
data family declaration
tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass #
tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass] #
tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass] #
tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass] #
tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass] #
Arguments
| :: Maybe tc | Just cls = this is an associated family of class cls |
| -> FamilyInfo pass | |
| -> TyConFlavour tc |
dataDefnConsNewOrData :: DataDefnCons a -> NewOrData #
isTypeDataDefnCons :: DataDefnCons a -> Bool #
Are the constructors within a type data declaration?
See Note [Type data declarations] in GHC.Rename.Module.
firstDataDefnCon :: DataDefnCons a -> Maybe a #
Retrieve the first data constructor in a DataDefnCons (if one exists).
collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass] #
docDeclDoc :: DocDecl pass -> LHsDoc pass #
annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p) #
data HsArrowMatchContext #
Haskell arrow match context.
Constructors
| ProcExpr | A proc expression |
| ArrowCaseAlt | A case alternative inside arrow notation |
| ArrowLamAlt HsLamVariant | A , case or cases alternative inside arrow notation |
data HsStmtContext fn #
Haskell Statement Context.
Constructors
| HsDoStmt HsDoFlavour | Context for HsDo (do-notation and comprehensions) |
| PatGuard (HsMatchContext fn) | Pattern guard for specified thing |
| ParStmtCtxt (HsStmtContext fn) | A branch of a parallel stmt |
| TransStmtCtxt (HsStmtContext fn) | A branch of a transform stmt |
| ArrowExpr | do-notation in an arrow-command context |
data HsMatchContext fn #
Haskell Match Context
Context of a pattern match. This is more subtle than it would seem. See Note [FunBind vs PatBind].
Constructors
| FunRhs | A pattern matching on an argument of a function binding |
Fields
| |
| CaseAlt | Patterns and guards in a case alternative |
| LamAlt HsLamVariant | Patterns and guards in |
| IfAlt | Guards of a multi-way if alternative |
| ArrowMatchCtxt HsArrowMatchContext | A pattern match inside arrow notation |
| PatBindRhs | A pattern binding eg [y] <- e = e |
| PatBindGuards | Guards of pattern bindings, e.g., (Just b) | Just _ <- x = e | otherwise = e' |
| RecUpd | Record update [used only in GHC.HsToCore.Expr to tell matchWrapper what sort of runtime error message to generate] |
| StmtCtxt (HsStmtContext fn) | Pattern of a do-stmt, list comprehension, pattern guard, etc |
| ThPatSplice | A Template Haskell pattern splice |
| ThPatQuote | A Template Haskell pattern quotation [p| (a,b) |] |
| PatSyn | A pattern synonym declaration |
| LazyPatCtx | An irrefutable pattern |
data ArithSeqInfo id #
Arithmetic Sequence Information
Constructors
| From (LHsExpr id) | |
| FromThen (LHsExpr id) (LHsExpr id) | |
| FromTo (LHsExpr id) (LHsExpr id) | |
| FromThenTo (LHsExpr id) (LHsExpr id) (LHsExpr id) |
Instances
| ToHie (LHsExpr a) => ToHie (ArithSeqInfo a) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: ArithSeqInfo a -> HieM [HieAST Type] | |
Haskell (Untyped) Quote = Expr + Pat + Type + Var
data ApplicativeArg idL #
Applicative Argument
Constructors
| ApplicativeArgOne | |
Fields
| |
| ApplicativeArgMany | |
Fields
| |
| XApplicativeArg !(XXApplicativeArg idL) | |
Instances
| HiePass p => ToHie (RScoped (ApplicativeArg (GhcPass p))) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (ApplicativeArg (GhcPass p)) -> HieM [HieAST Type] | |
type FailOperator id = Maybe (SyntaxExpr id) #
The fail operator
This is used for `.. <-` "bind statements" in do notation, including non-monadic "binds" in applicative.
The fail operator is 'Just expr' if it potentially fail monadically. if the
pattern match cannot fail, or shouldn't fail monadically (regular incomplete
pattern exception), it is Nothing.
See Note [Monad fail : Rebindable syntax, overloaded strings] for the type of
expression in the Just case, and why it is so.
See Note [Failing pattern matches in Stmts] for which contexts for
'BindStmt's should use the monadic fail and which shouldn't.
Instances
| Data TransForm | |
Defined in Language.Haskell.Syntax.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TransForm -> c TransForm # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TransForm # toConstr :: TransForm -> Constr # dataTypeOf :: TransForm -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TransForm) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TransForm) # gmapT :: (forall b. Data b => b -> b) -> TransForm -> TransForm # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TransForm -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TransForm -> r # gmapQ :: (forall d. Data d => d -> u) -> TransForm -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TransForm -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TransForm -> m TransForm # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TransForm -> m TransForm # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TransForm -> m TransForm # | |
Exact print annotations when in qualifier lists or guards
- AnnKeywordId : AnnVbar,
AnnComma,AnnThen,
AnnBy,AnnBy,
AnnGroup,AnnUsing
Constructors
| LastStmt (XLastStmt idL idR body) body (Maybe Bool) (SyntaxExpr idR) | |
| BindStmt | |
Fields | |
| ApplicativeStmt (XApplicativeStmt idL idR body) [(SyntaxExpr idR, ApplicativeArg idL)] (Maybe (SyntaxExpr idR)) |
For full details, see Note [ApplicativeDo] in GHC.Rename.Expr |
| BodyStmt (XBodyStmt idL idR body) body (SyntaxExpr idR) (SyntaxExpr idR) | |
| LetStmt (XLetStmt idL idR body) (HsLocalBindsLR idL idR) |
|
| ParStmt (XParStmt idL idR body) [ParStmtBlock idL idR] (HsExpr idR) (SyntaxExpr idR) | |
| TransStmt | |
| RecStmt | |
Fields
| |
| XStmtLR !(XXStmtLR idL idR body) | |
Instances
| (ToHie (LocatedA (body (GhcPass p))), AnnoBody p body, HiePass p) => ToHie (RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p)))))) | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] | |
Defined in GHC.Hs.Expr | |
| type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
| type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
| type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.Types | |
| type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) | |
Defined in GHC.Hs.Expr | |
type GuardLStmt id = LStmt id (LHsExpr id) #
Guard Located Statement
type LStmtLR idL idR body = XRec idL (StmtLR idL idR body) #
Located Statement with separate Left and Right id's
Guarded Right Hand Side.
Constructors
| GRHS (XCGRHS p body) [GuardLStmt p] body | |
| XGRHS !(XXGRHS p body) |
Instances
| (ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) | |
| type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) | |
| type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
| type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.Types | |
type LMatch id body = XRec id (Match id body) #
Located Match
May have AnnKeywordId : AnnSemi when in a
list
type HsRecordBinds p = HsRecFields p (LHsExpr p) #
Haskell Record Bindings
type LHsCmdTop p = XRec p (HsCmdTop p) #
Top-level command, introducing a new arrow. This may occur inside a proc (where the stack is empty) or as an argument of a command-forming operator.
Located Haskell Top-level Command
data HsArrAppType #
Haskell arrow application type.
Constructors
| HsHigherOrderApp | First order arrow application |
| HsFirstOrderApp | Higher order arrow application |
Instances
| Data HsArrAppType | |
Defined in Language.Haskell.Syntax.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsArrAppType -> c HsArrAppType # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsArrAppType # toConstr :: HsArrAppType -> Constr # dataTypeOf :: HsArrAppType -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsArrAppType) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsArrAppType) # gmapT :: (forall b. Data b => b -> b) -> HsArrAppType -> HsArrAppType # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrAppType -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrAppType -> r # gmapQ :: (forall d. Data d => d -> u) -> HsArrAppType -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrAppType -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrAppType -> m HsArrAppType # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrAppType -> m HsArrAppType # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrAppType -> m HsArrAppType # | |
Haskell Command (e.g. a "statement" in an Arrow proc block)
Constructors
| HsCmdArrApp (XCmdArrApp id) (LHsExpr id) (LHsExpr id) HsArrAppType Bool | |
| HsCmdArrForm (XCmdArrForm id) (LHsExpr id) LexicalFixity (Maybe Fixity) [LHsCmdTop id] |
|
| HsCmdApp (XCmdApp id) (LHsCmd id) (LHsExpr id) | |
| HsCmdLam (XCmdLamCase id) HsLamVariant (MatchGroup id (LHsCmd id)) | Lambda-case
|
| HsCmdPar (XCmdPar id) (LHsCmd id) |
|
| HsCmdCase (XCmdCase id) (LHsExpr id) (MatchGroup id (LHsCmd id)) |
|
| HsCmdIf (XCmdIf id) (SyntaxExpr id) (LHsExpr id) (LHsCmd id) (LHsCmd id) | |
| HsCmdLet (XCmdLet id) (HsLocalBinds id) (LHsCmd id) |
|
| HsCmdDo (XCmdDo id) (XRec id [CmdLStmt id]) | |
| XCmd !(XXCmd id) |
Instances
| HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) | |||||||||||||
| DisambECP (HsCmd GhcPs) | |||||||||||||
Defined in GHC.Parser.PostProcess Associated Types
Methods ecpFromCmd' :: LHsCmd GhcPs -> PV (LocatedA (HsCmd GhcPs)) # ecpFromExp' :: LHsExpr GhcPs -> PV (LocatedA (HsCmd GhcPs)) # mkHsProjUpdatePV :: SrcSpan -> Located [LocatedAn NoEpAnns (DotFieldOcc GhcPs)] -> LocatedA (HsCmd GhcPs) -> Bool -> [AddEpAnn] -> PV (LHsRecProj GhcPs (LocatedA (HsCmd GhcPs))) # mkHsLetPV :: SrcSpan -> EpToken "let" -> HsLocalBinds GhcPs -> EpToken "in" -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) # superInfixOp :: (DisambInfixOp (InfixOp (HsCmd GhcPs)) => PV (LocatedA (HsCmd GhcPs))) -> PV (LocatedA (HsCmd GhcPs)) # mkHsOpAppPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> LocatedN (InfixOp (HsCmd GhcPs)) -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) # mkHsCasePV :: SrcSpan -> LHsExpr GhcPs -> LocatedL [LMatch GhcPs (LocatedA (HsCmd GhcPs))] -> EpAnnHsCase -> PV (LocatedA (HsCmd GhcPs)) # mkHsLamPV :: SrcSpan -> HsLamVariant -> LocatedL [LMatch GhcPs (LocatedA (HsCmd GhcPs))] -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) # superFunArg :: (DisambECP (FunArg (HsCmd GhcPs)) => PV (LocatedA (HsCmd GhcPs))) -> PV (LocatedA (HsCmd GhcPs)) # mkHsAppPV :: SrcSpanAnnA -> LocatedA (HsCmd GhcPs) -> LocatedA (FunArg (HsCmd GhcPs)) -> PV (LocatedA (HsCmd GhcPs)) # mkHsAppTypePV :: SrcSpanAnnA -> LocatedA (HsCmd GhcPs) -> EpToken "@" -> LHsType GhcPs -> PV (LocatedA (HsCmd GhcPs)) # mkHsIfPV :: SrcSpan -> LHsExpr GhcPs -> Bool -> LocatedA (HsCmd GhcPs) -> Bool -> LocatedA (HsCmd GhcPs) -> AnnsIf -> PV (LocatedA (HsCmd GhcPs)) # mkHsDoPV :: SrcSpan -> Maybe ModuleName -> LocatedL [LStmt GhcPs (LocatedA (HsCmd GhcPs))] -> AnnList -> PV (LocatedA (HsCmd GhcPs)) # mkHsParPV :: SrcSpan -> EpToken "(" -> LocatedA (HsCmd GhcPs) -> EpToken ")" -> PV (LocatedA (HsCmd GhcPs)) # mkHsVarPV :: LocatedN RdrName -> PV (LocatedA (HsCmd GhcPs)) # mkHsLitPV :: Located (HsLit GhcPs) -> PV (LocatedA (HsCmd GhcPs)) # mkHsOverLitPV :: LocatedAn a (HsOverLit GhcPs) -> PV (LocatedAn a (HsCmd GhcPs)) # mkHsWildCardPV :: NoAnn a => SrcSpan -> PV (LocatedAn a (HsCmd GhcPs)) # mkHsTySigPV :: SrcSpanAnnA -> LocatedA (HsCmd GhcPs) -> LHsType GhcPs -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) # mkHsExplicitListPV :: SrcSpan -> [LocatedA (HsCmd GhcPs)] -> AnnList -> PV (LocatedA (HsCmd GhcPs)) # mkHsSplicePV :: Located (HsUntypedSplice GhcPs) -> PV (LocatedA (HsCmd GhcPs)) # mkHsRecordPV :: Bool -> SrcSpan -> SrcSpan -> LocatedA (HsCmd GhcPs) -> ([Fbind (HsCmd GhcPs)], Maybe SrcSpan) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) # mkHsNegAppPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) # mkHsSectionR_PV :: SrcSpan -> LocatedA (InfixOp (HsCmd GhcPs)) -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) # mkHsViewPatPV :: SrcSpan -> LHsExpr GhcPs -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) # mkHsAsPatPV :: SrcSpan -> LocatedN RdrName -> EpToken "@" -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) # mkHsLazyPatPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) # mkHsBangPatPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) # mkSumOrTuplePV :: SrcSpanAnnA -> Boxity -> SumOrTuple (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) # mkHsEmbTyPV :: SrcSpan -> EpToken "type" -> LHsType GhcPs -> PV (LocatedA (HsCmd GhcPs)) # | |||||||||||||
| type Body (HsCmd GhcPs) | |||||||||||||
Defined in GHC.Parser.PostProcess | |||||||||||||
| type FunArg (HsCmd GhcPs) | |||||||||||||
| type InfixOp (HsCmd GhcPs) | |||||||||||||
| type Anno (HsCmd (GhcPass p)) | |||||||||||||
Defined in GHC.Hs.Expr | |||||||||||||
| type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] | |||||||||||||
Defined in GHC.Hs.Expr | |||||||||||||
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |||||||||||||
Defined in GHC.Hs.Expr | |||||||||||||
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |||||||||||||
Defined in GHC.Hs.Expr | |||||||||||||
| type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] | |||||||||||||
Defined in GHC.Hs.Expr | |||||||||||||
| type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) | |||||||||||||
| type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) | |||||||||||||
Defined in GHC.Hs.Expr | |||||||||||||
data HsLamVariant #
Which kind of lambda case are we dealing with?
Instances
| Data HsLamVariant | |
Defined in Language.Haskell.Syntax.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsLamVariant -> c HsLamVariant # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsLamVariant # toConstr :: HsLamVariant -> Constr # dataTypeOf :: HsLamVariant -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsLamVariant) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsLamVariant) # gmapT :: (forall b. Data b => b -> b) -> HsLamVariant -> HsLamVariant # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsLamVariant -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsLamVariant -> r # gmapQ :: (forall d. Data d => d -> u) -> HsLamVariant -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsLamVariant -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsLamVariant -> m HsLamVariant # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsLamVariant -> m HsLamVariant # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsLamVariant -> m HsLamVariant # | |
| Eq HsLamVariant | |
Defined in Language.Haskell.Syntax.Expr | |
Haskell Tuple Argument
type LHsTupArg id = XRec id (HsTupArg id) #
Located Haskell Tuple Argument
HsTupArg is used for tuple sections
(,a,) is represented by
ExplicitTuple [Missing ty1, Present a, Missing ty3]
Which in turn stands for (x:ty1 y:ty2. (x,a,y))
A pragma, written as {-# ... #-}, that may appear within an expression.
data DotFieldOcc p #
Constructors
| DotFieldOcc | |
Fields
| |
| XDotFieldOcc !(XXDotFieldOcc p) | |
Instances
| type Anno (DotFieldOcc (GhcPass p)) | |
Defined in GHC.Hs.Expr | |
data LHsRecUpdFields p where #
Haskell Record Update Fields.
Constructors
| RegularRecUpdFields | A regular (non-overloaded) record update. |
Fields
| |
| OverloadedRecUpdFields | An overloaded record update. |
Fields
| |
type LHsRecUpdProj p = XRec p (RecUpdProj p) #
type RecUpdProj p = RecProj p (LHsExpr p) #
type LHsRecProj p arg = XRec p (RecProj p arg) #
type RecProj p arg = HsFieldBind (LFieldLabelStrings p) arg #
newtype FieldLabelStrings p #
Constructors
| FieldLabelStrings [XRec p (DotFieldOcc p)] |
Instances
| type Anno (FieldLabelStrings (GhcPass p)) | |
Defined in GHC.Hs.Expr | |
type LFieldLabelStrings p = XRec p (FieldLabelStrings p) #
RecordDotSyntax field updates
isInfixMatch :: Match id body -> Bool #
isPatSynCtxt :: HsMatchContext fn -> Bool #
isComprehensionContext :: HsStmtContext fn -> Bool #
isMonadStmtContext :: HsStmtContext fn -> Bool #
Is this a monadic context?
isMonadDoStmtContext :: HsDoFlavour -> Bool #
isMonadCompContext :: HsStmtContext fn -> Bool #
isMonadDoCompContext :: HsDoFlavour -> Bool #
Haskell Module
All we actually declare here is the top-level structure for a module.
Constructors
| HsModule | |
Fields
| |
| XModule !(XXModule p) | |
module GHC.Rename.Names
module GHC.Rename.Splice
module GHC.Tc.Instance.Family
module GHC.Tc.Module
module GHC.Tc.Types
See Note [Roles] in GHC.Core.Coercion
Order of constructors matters: the Ord instance coincides with the *super*typing relation on roles.
Constructors
| Nominal | |
| Representational | |
| Phantom |
Instances
| Data Role | |
Defined in Language.Haskell.Syntax.Basic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Role -> c Role # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Role # dataTypeOf :: Role -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Role) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Role) # gmapT :: (forall b. Data b => b -> b) -> Role -> Role # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r # gmapQ :: (forall d. Data d => d -> u) -> Role -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Role -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Role -> m Role # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role # | |
| Eq Role | |
| Ord Role | |
| type Anno (Maybe Role) | |
Defined in GHC.Hs.Decls | |
| type Anno (Maybe Role) | |
Defined in GHC.Hs.Decls | |
data LeftOrRight #
Instances
| Binary LeftOrRight | |
Defined in GHC.Types.Basic Methods put_ :: BinHandle -> LeftOrRight -> IO () # put :: BinHandle -> LeftOrRight -> IO (Bin LeftOrRight) # get :: BinHandle -> IO LeftOrRight # | |
| Outputable LeftOrRight | |
Defined in GHC.Types.Basic Methods ppr :: LeftOrRight -> SDoc # | |
| Data LeftOrRight | |
Defined in GHC.Types.Basic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LeftOrRight -> c LeftOrRight # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LeftOrRight # toConstr :: LeftOrRight -> Constr # dataTypeOf :: LeftOrRight -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LeftOrRight) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LeftOrRight) # gmapT :: (forall b. Data b => b -> b) -> LeftOrRight -> LeftOrRight # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LeftOrRight -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LeftOrRight -> r # gmapQ :: (forall d. Data d => d -> u) -> LeftOrRight -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> LeftOrRight -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LeftOrRight -> m LeftOrRight # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LeftOrRight -> m LeftOrRight # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LeftOrRight -> m LeftOrRight # | |
| Eq LeftOrRight | |
Defined in GHC.Types.Basic | |
pickLR :: LeftOrRight -> (a, a) -> a #
data CoercionHole #
A coercion to be filled in by the type-checker. See Note [Coercion holes]
Instances
| Uniquable CoercionHole | |
Defined in GHC.Core.TyCo.Rep Methods getUnique :: CoercionHole -> Unique # | |
| Outputable CoercionHole | |
Defined in GHC.Core.TyCo.Rep Methods ppr :: CoercionHole -> SDoc # | |
| Data CoercionHole | |
Defined in GHC.Core.TyCo.Rep Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CoercionHole -> c CoercionHole # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CoercionHole # toConstr :: CoercionHole -> Constr # dataTypeOf :: CoercionHole -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CoercionHole) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CoercionHole) # gmapT :: (forall b. Data b => b -> b) -> CoercionHole -> CoercionHole # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CoercionHole -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CoercionHole -> r # gmapQ :: (forall d. Data d => d -> u) -> CoercionHole -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CoercionHole -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CoercionHole -> m CoercionHole # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CoercionHole -> m CoercionHole # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CoercionHole -> m CoercionHole # | |
data QuoteWrapper #
Constructors
| QuoteWrapper EvVar Type |
Instances
| Data QuoteWrapper | |
Defined in GHC.Tc.Types.Evidence Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> QuoteWrapper -> c QuoteWrapper # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c QuoteWrapper # toConstr :: QuoteWrapper -> Constr # dataTypeOf :: QuoteWrapper -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c QuoteWrapper) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c QuoteWrapper) # gmapT :: (forall b. Data b => b -> b) -> QuoteWrapper -> QuoteWrapper # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> QuoteWrapper -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> QuoteWrapper -> r # gmapQ :: (forall d. Data d => d -> u) -> QuoteWrapper -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> QuoteWrapper -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> QuoteWrapper -> m QuoteWrapper # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> QuoteWrapper -> m QuoteWrapper # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> QuoteWrapper -> m QuoteWrapper # | |
data HoleExprRef #
Where to store evidence for expression holes See Note [Holes] in GHC.Tc.Types.Constraint
Constructors
| HER | |
Instances
| Outputable HoleExprRef | |
Defined in GHC.Tc.Types.Evidence Methods ppr :: HoleExprRef -> SDoc # | |
| Data HoleExprRef | |
Defined in GHC.Tc.Types.Evidence Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HoleExprRef -> c HoleExprRef # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HoleExprRef # toConstr :: HoleExprRef -> Constr # dataTypeOf :: HoleExprRef -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HoleExprRef) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HoleExprRef) # gmapT :: (forall b. Data b => b -> b) -> HoleExprRef -> HoleExprRef # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HoleExprRef -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HoleExprRef -> r # gmapQ :: (forall d. Data d => d -> u) -> HoleExprRef -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HoleExprRef -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HoleExprRef -> m HoleExprRef # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HoleExprRef -> m HoleExprRef # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HoleExprRef -> m HoleExprRef # | |
data EvCallStack #
Evidence for CallStack implicit parameters.
Constructors
| EvCsEmpty | |
| EvCsPushCall FastString RealSrcSpan EvExpr |
|
Instances
| Outputable EvCallStack | |
Defined in GHC.Tc.Types.Evidence Methods ppr :: EvCallStack -> SDoc # | |
| Data EvCallStack | |
Defined in GHC.Tc.Types.Evidence Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EvCallStack -> c EvCallStack # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EvCallStack # toConstr :: EvCallStack -> Constr # dataTypeOf :: EvCallStack -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EvCallStack) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EvCallStack) # gmapT :: (forall b. Data b => b -> b) -> EvCallStack -> EvCallStack # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EvCallStack -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EvCallStack -> r # gmapQ :: (forall d. Data d => d -> u) -> EvCallStack -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> EvCallStack -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> EvCallStack -> m EvCallStack # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EvCallStack -> m EvCallStack # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EvCallStack -> m EvCallStack # | |
data EvTypeable #
Instructions on how to make a Typeable dictionary.
See Note [Typeable evidence terms]
Constructors
| EvTypeableTyCon TyCon [EvTerm] | Dictionary for |
| EvTypeableTyApp EvTerm EvTerm | Dictionary for |
| EvTypeableTrFun EvTerm EvTerm EvTerm | Dictionary for |
| EvTypeableTyLit EvTerm | Dictionary for a type literal,
e.g. |
Instances
| Outputable EvTypeable | |
Defined in GHC.Tc.Types.Evidence Methods ppr :: EvTypeable -> SDoc # | |
| Data EvTypeable | |
Defined in GHC.Tc.Types.Evidence Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EvTypeable -> c EvTypeable # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EvTypeable # toConstr :: EvTypeable -> Constr # dataTypeOf :: EvTypeable -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EvTypeable) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EvTypeable) # gmapT :: (forall b. Data b => b -> b) -> EvTypeable -> EvTypeable # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EvTypeable -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EvTypeable -> r # gmapQ :: (forall d. Data d => d -> u) -> EvTypeable -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> EvTypeable -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> EvTypeable -> m EvTypeable # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EvTypeable -> m EvTypeable # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EvTypeable -> m EvTypeable # | |
Constructors
| EvExpr EvExpr | |
| EvTypeable Type EvTypeable | |
| EvFun | |
Instances
| Outputable EvTerm | |
Defined in GHC.Tc.Types.Evidence | |
| Data EvTerm | |
Defined in GHC.Tc.Types.Evidence Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EvTerm -> c EvTerm # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EvTerm # toConstr :: EvTerm -> Constr # dataTypeOf :: EvTerm -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EvTerm) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EvTerm) # gmapT :: (forall b. Data b => b -> b) -> EvTerm -> EvTerm # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EvTerm -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EvTerm -> r # gmapQ :: (forall d. Data d => d -> u) -> EvTerm -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> EvTerm -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> EvTerm -> m EvTerm # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EvTerm -> m EvTerm # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EvTerm -> m EvTerm # | |
Instances
| Outputable EvBind | |
Defined in GHC.Tc.Types.Evidence | |
data EvBindInfo #
Constructors
| EvBindGiven | |
| EvBindWanted | |
Fields | |
Constructors
| EvBindMap | |
Fields | |
Instances
| Outputable EvBindMap | |
Defined in GHC.Tc.Types.Evidence | |
data EvBindsVar #
Constructors
| EvBindsVar | |
| CoEvBindsVar | |
Instances
| Uniquable EvBindsVar | |
Defined in GHC.Tc.Types.Evidence Methods getUnique :: EvBindsVar -> Unique # | |
| Outputable EvBindsVar | |
Defined in GHC.Tc.Types.Evidence Methods ppr :: EvBindsVar -> SDoc # | |
Constructors
| TcEvBinds EvBindsVar | |
| EvBinds (Bag EvBind) |
Instances
| Outputable TcEvBinds | |
Defined in GHC.Tc.Types.Evidence | |
| Data TcEvBinds | |
Defined in GHC.Tc.Types.Evidence Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TcEvBinds -> c TcEvBinds # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TcEvBinds # toConstr :: TcEvBinds -> Constr # dataTypeOf :: TcEvBinds -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TcEvBinds) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TcEvBinds) # gmapT :: (forall b. Data b => b -> b) -> TcEvBinds -> TcEvBinds # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TcEvBinds -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TcEvBinds -> r # gmapQ :: (forall d. Data d => d -> u) -> TcEvBinds -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TcEvBinds -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TcEvBinds -> m TcEvBinds # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TcEvBinds -> m TcEvBinds # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TcEvBinds -> m TcEvBinds # | |
| ToHie (EvBindContext (LocatedA TcEvBinds)) | |
Constructors
| WpHole | |
| WpCompose HsWrapper HsWrapper | |
| WpFun HsWrapper HsWrapper (Scaled TcTypeFRR) | |
| WpCast TcCoercionR | |
| WpEvLam EvVar | |
| WpEvApp EvTerm | |
| WpTyLam TyVar | |
| WpTyApp KindOrType | |
| WpLet TcEvBinds | |
| WpMultCoercion Coercion |
Instances
| Outputable HsWrapper | |
Defined in GHC.Tc.Types.Evidence | |
| Monoid HsWrapper | |
| Semigroup HsWrapper | The Semigroup instance is a bit fishy, since (a <> b) <> c ?= a <> (b <> c) >(a `WpCompose` b) `WpCompose` c /= @ a `WpCompose` (b `WpCompose` c) However these two associations are are "semantically equal" in the sense
that they produce equal functions when passed to
|
| Data HsWrapper | |
Defined in GHC.Tc.Types.Evidence Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsWrapper -> c HsWrapper # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsWrapper # toConstr :: HsWrapper -> Constr # dataTypeOf :: HsWrapper -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsWrapper) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsWrapper) # gmapT :: (forall b. Data b => b -> b) -> HsWrapper -> HsWrapper # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsWrapper -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsWrapper -> r # gmapQ :: (forall d. Data d => d -> u) -> HsWrapper -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsWrapper -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsWrapper -> m HsWrapper # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWrapper -> m HsWrapper # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWrapper -> m HsWrapper # | |
| ToHie (LocatedA HsWrapper) | |
type TcMCoercionR = MCoercionR #
type TcMCoercionN = MCoercionN #
type TcMCoercion = MCoercion #
type TcCoercionP = CoercionP #
type TcCoercionR = CoercionR #
type TcCoercionN = CoercionN #
type TcCoercion = Coercion #
maybeSymCo :: SwapFlag -> TcCoercion -> TcCoercion #
mkWpCastR :: TcCoercionR -> HsWrapper #
mkWpCastN :: TcCoercionN -> HsWrapper #
mkWpTyApps :: [Type] -> HsWrapper #
mkWpEvApps :: [EvTerm] -> HsWrapper #
mkWpEvVarApps :: [EvVar] -> HsWrapper #
mkWpTyLams :: [TyVar] -> HsWrapper #
mkWpVisTyLam :: TyVar -> Type -> HsWrapper #
mkWpEvLams :: [Var] -> HsWrapper #
isIdHsWrapper :: HsWrapper -> Bool #
hsWrapDictBinders :: HsWrapper -> Bag DictId #
Identifies the lambda-bound dictionaries of an HsWrapper. This is used
(only) to allow the pattern-match overlap checker to know what Given
dictionaries are in scope.
We specifically do not collect dictionaries bound in a WpLet. These are
either superclasses of lambda-bound ones, or (extremely numerous) results of
binding Wanted dictionaries. We definitely don't want all those cluttering
up the Given dictionaries for pattern-match overlap checking!
collectHsWrapBinders :: HsWrapper -> ([Var], HsWrapper) #
isCoEvBindsVar :: EvBindsVar -> Bool #
extendEvBinds :: EvBindMap -> EvBind -> EvBindMap #
isEmptyEvBindMap :: EvBindMap -> Bool #
evBindMapBinds :: EvBindMap -> Bag EvBind #
foldEvBindMap :: (EvBind -> a -> a) -> a -> EvBindMap -> a #
nonDetStrictFoldEvBindMap :: (EvBind -> a -> a) -> a -> EvBindMap -> a #
evBindMapToVarSet :: EvBindMap -> VarSet #
varSetMinusEvBindMap :: VarSet -> EvBindMap -> VarSet #
mkGivenEvBind :: EvVar -> EvTerm -> EvBind #
evCoercion :: TcCoercion -> EvTerm #
evCast :: EvExpr -> TcCoercion -> EvTerm #
d |> co
evTypeable :: Type -> EvTypeable -> EvTerm #
mkEvCast :: EvExpr -> TcCoercion -> EvTerm #
mkEvScSelectors :: Class -> [TcType] -> [(TcPredType, EvExpr)] #
isEmptyTcEvBinds :: TcEvBinds -> Bool #
evTermCoercion :: EvTerm -> TcCoercion #
findNeededEvVars :: EvBindMap -> VarSet -> VarSet #
evVarsOfTerm :: EvTerm -> VarSet #
quoteWrapperTyVarTy :: QuoteWrapper -> Type #
applyQuoteWrapper :: QuoteWrapper -> HsWrapper #
Convert the QuoteWrapper into a normal HsWrapper which can be used to apply its contents.
module GHC.Tc.Utils.Env
foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b #
Right-to-left monadic fold over the elements of a structure.
Given a structure t with elements (a, b, c, ..., x, y), the result of
a fold with an operator function f is equivalent to:
foldrM f z t = do
yy <- f y z
xx <- f x yy
...
bb <- f b cc
aa <- f a bb
return aa -- Just @return z@ when the structure is emptyFor a Monad m, given two functions f1 :: a -> m b and f2 :: b -> m c,
their Kleisli composition (f1 >=> f2) :: a -> m c is defined by:
(f1 >=> f2) a = f1 a >>= f2
Another way of thinking about foldrM is that it amounts to an application
to z of a Kleisli composition:
foldrM f z t = f y >=> f x >=> ... >=> f b >=> f a $ z
The monadic effects of foldrM are sequenced from right to left, and e.g.
folds of infinite lists will diverge.
If at some step the bind operator ( short-circuits (as with, e.g.,
>>=)mzero in a MonadPlus), the evaluated effects will be from a tail of the
element sequence. If you want to evaluate the monadic effects in
left-to-right order, or perhaps be able to short-circuit after an initial
sequence of elements, you'll need to use foldlM instead.
If the monadic effects don't short-circuit, the outermost application of
f is to the leftmost element a, so that, ignoring effects, the result
looks like a right fold:
a `f` (b `f` (c `f` (... (x `f` (y `f` z))))).
Examples
Basic usage:
>>>let f i acc = do { print i ; return $ i : acc }>>>foldrM f [] [0..3]3 2 1 0 [0,1,2,3]
foldlM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b #
Left-to-right monadic fold over the elements of a structure.
Given a structure t with elements (a, b, ..., w, x, y), the result of
a fold with an operator function f is equivalent to:
foldlM f z t = do
aa <- f z a
bb <- f aa b
...
xx <- f ww x
yy <- f xx y
return yy -- Just @return z@ when the structure is emptyFor a Monad m, given two functions f1 :: a -> m b and f2 :: b -> m c,
their Kleisli composition (f1 >=> f2) :: a -> m c is defined by:
(f1 >=> f2) a = f1 a >>= f2
Another way of thinking about foldlM is that it amounts to an application
to z of a Kleisli composition:
foldlM f z t =
flip f a >=> flip f b >=> ... >=> flip f x >=> flip f y $ zThe monadic effects of foldlM are sequenced from left to right.
If at some step the bind operator ( short-circuits (as with, e.g.,
>>=)mzero in a MonadPlus), the evaluated effects will be from an initial
segment of the element sequence. If you want to evaluate the monadic
effects in right-to-left order, or perhaps be able to short-circuit after
processing a tail of the sequence of elements, you'll need to use foldrM
instead.
If the monadic effects don't short-circuit, the outermost application of
f is to the rightmost element y, so that, ignoring effects, the result
looks like a left fold:
((((z `f` a) `f` b) ... `f` w) `f` x) `f` y
Examples
Basic usage:
>>>let f a e = do { print e ; return $ e : a }>>>foldlM f [] [0..3]0 1 2 3 [3,2,1,0]
mapAndUnzipM :: Applicative m => (a -> m (b, c)) -> [a] -> m ([b], [c]) #
The mapAndUnzipM function maps its first argument over a list, returning
the result as a pair of lists. This function is mainly used with complicated
data structures or a state monad.
Instances
| ContainsDynFlags (Env gbl lcl) | |
Defined in GHC.Tc.Types Methods extractDynFlags :: Env gbl lcl -> DynFlags # | |
| ContainsHooks (Env gbl lcl) | |
Defined in GHC.Tc.Types Methods extractHooks :: Env gbl lcl -> Hooks # | |
| ContainsModule gbl => ContainsModule (Env gbl lcl) | |
Defined in GHC.Tc.Types Methods extractModule :: Env gbl lcl -> Module # | |
| ContainsLogger (Env gbl lcl) | |
Defined in GHC.Tc.Types Methods extractLogger :: Env gbl lcl -> Logger # | |
readMutVar :: IORef a -> IOEnv env a #
writeMutVar :: IORef a -> a -> IOEnv env () #
partitionM :: Monad m => (a -> m Bool) -> [a] -> m ([a], [a]) #
Monadic version of partition
whenM :: Monad m => m Bool -> m () -> m () #
Monadic version of when, taking the condition in the monad
unlessM :: Monad m => m Bool -> m () -> m () #
Monadic version of unless, taking the condition in the monad
TcGblEnv describes the top-level of the module at the
point at which the typechecker is finished work.
It is this structure that is handed on to the desugarer
For state that needs to be updated during the typechecking
phase and returned at end, use a TcRef (= IORef).
Constructors
| TcGblEnv | |
Fields
| |
Instances
| ContainsModule TcGblEnv | |
Defined in GHC.Tc.Types Methods extractModule :: TcGblEnv -> Module # | |
data ForeignSrcLang #
Foreign formats supported by GHC via TH
Constructors
| LangC | C |
| LangCxx | C++ |
| LangObjc | Objective C |
| LangObjcxx | Objective C++ |
| LangAsm | Assembly language (.s) |
| LangJs | JavaScript |
| RawObject | Object (.o) |
Instances
| Generic ForeignSrcLang | |||||
Defined in GHC.ForeignSrcLang.Type Associated Types
Methods from :: ForeignSrcLang -> Rep ForeignSrcLang x # to :: Rep ForeignSrcLang x -> ForeignSrcLang # | |||||
| Show ForeignSrcLang | |||||
Defined in GHC.ForeignSrcLang.Type Methods showsPrec :: Int -> ForeignSrcLang -> ShowS # show :: ForeignSrcLang -> String # showList :: [ForeignSrcLang] -> ShowS # | |||||
| Eq ForeignSrcLang | |||||
Defined in GHC.ForeignSrcLang.Type Methods (==) :: ForeignSrcLang -> ForeignSrcLang -> Bool # (/=) :: ForeignSrcLang -> ForeignSrcLang -> Bool # | |||||
| type Rep ForeignSrcLang | |||||
Defined in GHC.ForeignSrcLang.Type type Rep ForeignSrcLang = D1 ('MetaData "ForeignSrcLang" "GHC.ForeignSrcLang.Type" "ghc-boot-th-9.10.1-inplace" 'False) ((C1 ('MetaCons "LangC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LangCxx" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LangObjc" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "LangObjcxx" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LangAsm" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LangJs" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RawObject" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||
Constructors
| TcLclEnv | |
Fields
| |
zipWith3M_ :: Monad m => (a -> b -> c -> m d) -> [a] -> [b] -> [c] -> m () #
zipWithAndUnzipM :: Monad m => (a -> b -> m (c, d)) -> [a] -> [b] -> m ([c], [d]) #
zipWith3MNE :: Monad m => (a -> b -> c -> m d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> m (NonEmpty d) #
mapAndUnzip3M :: Monad m => (a -> m (b, c, d)) -> [a] -> m ([b], [c], [d]) #
mapAndUnzipM for triples
mapAndUnzip4M :: Monad m => (a -> m (b, c, d, e)) -> [a] -> m ([b], [c], [d], [e]) #
mapAndUnzip5M :: Monad m => (a -> m (b, c, d, e, f)) -> [a] -> m ([b], [c], [d], [e], [f]) #
Arguments
| :: (Monad m, Traversable t) | |
| => (acc -> x -> m (acc, y)) | combining function |
| -> acc | initial state |
| -> t x | inputs |
| -> m (acc, t y) | final state, outputs |
Monadic version of mapAccumL
mapSndM :: (Applicative m, Traversable f) => (b -> m c) -> f (a, b) -> m (f (a, c)) #
Monadic version of mapSnd
foldlM_ :: (Monad m, Foldable t) => (a -> b -> m a) -> a -> t b -> m () #
Monadic version of foldl that discards its result
filterOutM :: Applicative m => (a -> m Bool) -> [a] -> m [a] #
Like filterM, only it reverses the sense of the test.
Type alias for IORef; the convention is we'll use this for mutable
bits of data in the typechecker which are updated during typechecking and
returned at the end.
writeTcRef :: MonadIO m => TcRef a -> a -> m () #
data PromotionErr #
Constructors
| TyConPE | |
| ClassPE | |
| FamDataConPE | |
| ConstrainedDataConPE ThetaType | |
| PatSynPE | |
| RecDataConPE | |
| TermVariablePE | |
| TypeVariablePE |
Instances
| Outputable PromotionErr | |||||
Defined in GHC.Tc.Errors.Types.PromotionErr Methods ppr :: PromotionErr -> SDoc # | |||||
| Generic PromotionErr | |||||
Defined in GHC.Tc.Errors.Types.PromotionErr Associated Types
| |||||
| type Rep PromotionErr | |||||
Defined in GHC.Tc.Errors.Types.PromotionErr type Rep PromotionErr = D1 ('MetaData "PromotionErr" "GHC.Tc.Errors.Types.PromotionErr" "ghc-9.10.1-inplace" 'False) (((C1 ('MetaCons "TyConPE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ClassPE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FamDataConPE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConstrainedDataConPE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ThetaType)))) :+: ((C1 ('MetaCons "PatSynPE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RecDataConPE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TermVariablePE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TypeVariablePE" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||
pprPECategory :: PromotionErr -> SDoc #
peCategory :: PromotionErr -> String #
data ImportAvails #
ImportAvails summarises what was imported from where, irrespective of
whether the imported things are actually used or not. It is used:
- when processing the export list,
- when constructing usage info for the interface file,
- to identify the list of directly imported modules for initialisation purposes and for optimised overlap checking of family instances,
- when figuring out what things are really unused
Constructors
| ImportAvails | |
Fields
| |
type ClosedTypeId = Bool #
data IsGroupClosed #
IsGroupClosed describes a group of mutually-recursive bindings
Constructors
| IsGroupClosed (NameEnv RhsNames) ClosedTypeId |
data IdBindingInfo #
IdBindingInfo describes how an Id is bound.
It is used for the following purposes:
a) for static forms in checkClosedInStaticForm and
b) to figure out when a nested binding can be generalised,
in decideGeneralisationPlan.
Constructors
| NotLetBound | |
| ClosedLet | |
| NonClosedLet RhsNames ClosedTypeId |
Instances
| Outputable IdBindingInfo | |
Defined in GHC.Tc.Types.BasicTypes Methods ppr :: IdBindingInfo -> SDoc # | |
A typecheckable thing available in a local context. Could be
AGlobal TyThing, but also lexically scoped variables, etc.
See GHC.Tc.Utils.Env for how to retrieve a TyThing given a Name.
Constructors
| AGlobal TyThing | |
| ATcId | |
Fields
| |
| ATyVar Name TcTyVar | |
| ATcTyCon TyCon | |
| APromotionErr PromotionErr | |
Instances
| Outputable TcTyThing | |
Defined in GHC.Tc.Types.BasicTypes | |
data TcIdSigInst #
Constructors
| TISI | |
Fields
| |
Instances
| Outputable TcIdSigInst | |
Defined in GHC.Tc.Types.BasicTypes Methods ppr :: TcIdSigInst -> SDoc # | |
data TcPatSynSig #
Constructors
| PatSig | |
Fields | |
Instances
| Outputable TcPatSynSig | |
Defined in GHC.Tc.Types.BasicTypes Methods ppr :: TcPatSynSig -> SDoc # | |
Constructors
| TcIdSig TcIdSig | |
| TcPatSynSig TcPatSynSig |
Instances
| Outputable TcSigInfo | |
Defined in GHC.Tc.Types.BasicTypes | |
data TcPartialSig #
Constructors
| PSig | |
Fields
| |
Instances
| Outputable TcPartialSig | |
Defined in GHC.Tc.Types.BasicTypes Methods ppr :: TcPartialSig -> SDoc # | |
Constructors
| TcCompleteSig TcCompleteSig | |
| TcPartialSig TcPartialSig |
Instances
| Outputable TcIdSig | |
Defined in GHC.Tc.Types.BasicTypes | |
data TcCompleteSig #
Instances
| Outputable TcCompleteSig | |
Defined in GHC.Tc.Types.BasicTypes Methods ppr :: TcCompleteSig -> SDoc # | |
Constructors
| TcIdBndr TcId TopLevelFlag | |
| TcIdBndr_ExpType Name ExpType TopLevelFlag | |
| TcTvBndr Name TyVar |
Instances
| HasOccName TcBinder | |
Defined in GHC.Tc.Types.BasicTypes | |
| Outputable TcBinder | |
Defined in GHC.Tc.Types.BasicTypes | |
type TcBinderStack = [TcBinder] #
isPartialSig :: TcIdSigInst -> Bool #
hasCompleteSig :: TcSigFun -> Name -> Bool #
No signature or a partial signature
tcSigInfoName :: TcSigInfo -> Name #
tcIdSigLoc :: TcIdSig -> SrcSpan #
pprTcTyThingCategory :: TcTyThing -> SDoc #
tcTyThingCategory :: TcTyThing -> String #
type ErrCtxt = (Bool, TidyEnv -> ZonkM (TidyEnv, SDoc)) #
Additional context to include in an error message, e.g. "In the type signature ...", "In the ambiguity check for ...", etc.
data PendingStuff #
Constructors
| RnPendingUntyped (TcRef [PendingRnSplice]) | |
| RnPendingTyped | |
| TcPending (TcRef [PendingTcSplice]) (TcRef WantedConstraints) QuoteWrapper |
Constructors
| Splice SpliceType | |
| RunSplice (TcRef [ForeignRef (Q ())]) | |
| Comp | |
| Brack ThStage PendingStuff |
Instances
| Outputable ThStage | |
Defined in GHC.Tc.Types.TH | |
data SpliceOrBracket #
data SpliceType #
topAnnStage :: ThStage #
outerLevel :: ThLevel #
data TcRnMessage #
An error which might arise during typechecking/renaming.
Instances
| Generic TcRnMessage | |||||
Defined in GHC.Tc.Errors.Types Associated Types
| |||||
| type DiagnosticOpts TcRnMessage | |||||
Defined in GHC.Tc.Errors.Ppr | |||||
| type Rep TcRnMessage | |||||
Defined in GHC.Tc.Errors.Types type Rep TcRnMessage = D1 ('MetaData "TcRnMessage" "GHC.Tc.Errors.Types" "ghc-9.10.1-inplace" 'False) ((((((((C1 ('MetaCons "TcRnUnknownMessage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (UnknownDiagnostic (DiagnosticOpts TcRnMessage)))) :+: C1 ('MetaCons "TcRnInterfaceError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 IfaceMessage))) :+: (C1 ('MetaCons "TcRnMessageWithInfo" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UnitState) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TcRnMessageDetailed)) :+: C1 ('MetaCons "TcRnWithHsDocContext" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 HsDocContext) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TcRnMessage)))) :+: ((C1 ('MetaCons "TcRnSolverReport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SolverReportWithCtxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DiagnosticReason)) :+: C1 ('MetaCons "TcRnSolverDepthError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 SubGoalDepth))) :+: (C1 ('MetaCons "TcRnRedundantConstraints" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Id]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SkolemInfoAnon, Bool))) :+: (C1 ('MetaCons "TcRnInaccessibleCode" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Implication) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SolverReportWithCtxt)) :+: C1 ('MetaCons "TcRnInaccessibleCoAxBranch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyCon) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CoAxBranch)))))) :+: (((C1 ('MetaCons "TcRnTypeDoesNotHaveFixedRuntimeRep" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 FixedRuntimeRepProvenance) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ErrInfo))) :+: C1 ('MetaCons "TcRnImplicitLift" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ErrInfo))) :+: (C1 ('MetaCons "TcRnUnusedPatternBinds" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsBind GhcRn))) :+: C1 ('MetaCons "TcRnUnusedQuantifiedTypeVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HsDocContext) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HsTyVarBndrExistentialFlag)))) :+: ((C1 ('MetaCons "TcRnDodgyImports" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DodgyImportsReason)) :+: C1 ('MetaCons "TcRnDodgyExports" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GlobalRdrElt))) :+: (C1 ('MetaCons "TcRnMissingImportList" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IE GhcPs))) :+: (C1 ('MetaCons "TcRnUnsafeDueToPlugin" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnModMissingRealSrcSpan" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Module))))))) :+: ((((C1 ('MetaCons "TcRnIdNotExportedFromModuleSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Module)) :+: C1 ('MetaCons "TcRnIdNotExportedFromLocalSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "TcRnShadowedName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OccName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShadowedNameProvenance)) :+: C1 ('MetaCons "TcRnInvalidWarningCategory" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 WarningCategory)))) :+: ((C1 ('MetaCons "TcRnDuplicateWarningDecls" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LocatedN RdrName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RdrName)) :+: C1 ('MetaCons "TcRnSimplifierTooManyIterations" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cts) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 IntWithInf) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WantedConstraints)))) :+: (C1 ('MetaCons "TcRnIllegalPatSynDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LIdP GhcPs))) :+: (C1 ('MetaCons "TcRnLinearPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: C1 ('MetaCons "TcRnEmptyRecordUpdate" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "TcRnIllegalFieldPunning" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Located RdrName))) :+: C1 ('MetaCons "TcRnIllegalWildcardsInRecord" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RecordFieldPart))) :+: (C1 ('MetaCons "TcRnIllegalWildcardInType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Name)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BadAnonWildcardContext)) :+: C1 ('MetaCons "TcRnIllegalNamedWildcardInTypeArgument" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RdrName)))) :+: ((C1 ('MetaCons "TcRnIllegalImplicitTyVarInTypeArgument" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RdrName)) :+: C1 ('MetaCons "TcRnDuplicateFieldName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RecordFieldPart) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty RdrName)))) :+: (C1 ('MetaCons "TcRnIllegalViewPattern" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Pat GhcPs))) :+: (C1 ('MetaCons "TcRnCharLiteralOutOfRange" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Char)) :+: C1 ('MetaCons "TcRnNegativeNumTypeLiteral" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsTyLit GhcPs))))))))) :+: (((((C1 ('MetaCons "TcRnIllegalWildcardsInConstructor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name)) :+: C1 ('MetaCons "TcRnIgnoringAnnotations" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LAnnDecl GhcRn]))) :+: (C1 ('MetaCons "TcRnAnnotationInSafeHaskell" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnInvalidTypeApplication" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LHsWcType GhcRn))))) :+: ((C1 ('MetaCons "TcRnTagToEnumMissingValArg" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnTagToEnumUnspecifiedResTy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons "TcRnTagToEnumResTyNotAnEnum" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: (C1 ('MetaCons "TcRnTagToEnumResTyTypeData" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "TcRnArrowIfThenElsePredDependsOnResultTy" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "TcRnIllegalHsBootOrSigDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 HsBootOrSig) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BadBootDecls)) :+: C1 ('MetaCons "TcRnBootMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 HsBootOrSig) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BootMismatch))) :+: (C1 ('MetaCons "TcRnRecursivePatternSynonym" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LHsBinds GhcRn))) :+: C1 ('MetaCons "TcRnPartialTypeSigTyVarMismatch" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LHsSigWcType GhcRn)))))) :+: ((C1 ('MetaCons "TcRnPartialTypeSigBadQuantifier" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Type)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LHsSigWcType GhcRn)))) :+: C1 ('MetaCons "TcRnMissingSignature" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MissingSignature) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exported))) :+: (C1 ('MetaCons "TcRnPolymorphicBinderMissingSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: (C1 ('MetaCons "TcRnOverloadedSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TcIdSig)) :+: C1 ('MetaCons "TcRnTupleConstraintInst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Class))))))) :+: ((((C1 ('MetaCons "TcRnUserTypeError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: C1 ('MetaCons "TcRnConstraintInKind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type))) :+: (C1 ('MetaCons "TcRnUnboxedTupleOrSumTypeFuncArg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnboxedTupleOrSum) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: C1 ('MetaCons "TcRnLinearFuncInKind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)))) :+: ((C1 ('MetaCons "TcRnForAllEscapeError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Kind)) :+: C1 ('MetaCons "TcRnVDQInTermType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Type)))) :+: (C1 ('MetaCons "TcRnBadQuantPredHead" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: (C1 ('MetaCons "TcRnIllegalTupleConstraint" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: C1 ('MetaCons "TcRnNonTypeVarArgInConstraint" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)))))) :+: (((C1 ('MetaCons "TcRnIllegalImplicitParam" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: C1 ('MetaCons "TcRnIllegalConstraintSynonymOfKind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type))) :+: (C1 ('MetaCons "TcRnOversaturatedVisibleKindArg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: (C1 ('MetaCons "TcRnForAllRankErr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Rank) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: C1 ('MetaCons "TcRnSimplifiableConstraint" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PredType) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 InstanceWhat))))) :+: ((C1 ('MetaCons "TcRnArityMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyThing) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Arity) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Arity))) :+: C1 ('MetaCons "TcRnIllegalInstance" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IllegalInstanceReason))) :+: (C1 ('MetaCons "TcRnMonomorphicBindings" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])) :+: (C1 ('MetaCons "TcRnOrphanInstance" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either ClsInst FamInst))) :+: C1 ('MetaCons "TcRnFunDepConflict" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UnitState) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty ClsInst)))))))))) :+: ((((((C1 ('MetaCons "TcRnDupInstanceDecls" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UnitState) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty ClsInst))) :+: C1 ('MetaCons "TcRnConflictingFamInstDecls" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty FamInst)))) :+: (C1 ('MetaCons "TcRnFamInstNotInjective" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 InjectivityErrReason) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyCon) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty CoAxBranch)))) :+: C1 ('MetaCons "TcRnBangOnUnliftedType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)))) :+: ((C1 ('MetaCons "TcRnLazyBangOnUnliftedType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: C1 ('MetaCons "TcRnMultipleDefaultDeclarations" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LDefaultDecl GhcRn]))) :+: (C1 ('MetaCons "TcRnBadDefaultType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Class])) :+: (C1 ('MetaCons "TcRnPatSynBundledWithNonDataCon" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnPatSynBundledWithWrongType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))) :+: (((C1 ('MetaCons "TcRnDupeModuleExport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)) :+: C1 ('MetaCons "TcRnExportedModNotImported" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName))) :+: (C1 ('MetaCons "TcRnNullExportedModule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)) :+: C1 ('MetaCons "TcRnMissingExportList" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)))) :+: ((C1 ('MetaCons "TcRnExportHiddenComponents" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IE GhcPs))) :+: C1 ('MetaCons "TcRnDuplicateExport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GlobalRdrElt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IE GhcPs)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IE GhcPs))))) :+: (C1 ('MetaCons "TcRnExportedParentChildMismatch" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyThing)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]))) :+: (C1 ('MetaCons "TcRnConflictingExports" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OccName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GlobalRdrElt)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IE GhcPs)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GlobalRdrElt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IE GhcPs))))) :+: C1 ('MetaCons "TcRnDuplicateFieldExport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (GlobalRdrElt, IE GhcPs)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (GlobalRdrElt, IE GhcPs))))))))) :+: ((((C1 ('MetaCons "TcRnAmbiguousRecordUpdate" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsExpr GhcRn)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyCon)) :+: C1 ('MetaCons "TcRnMissingFields" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ConLike) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(FieldLabelString, TcType)]))) :+: (C1 ('MetaCons "TcRnFieldUpdateInvalidType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(FieldLabelString, TcType)])) :+: C1 ('MetaCons "TcRnMissingStrictFields" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ConLike) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(FieldLabelString, TcType)])))) :+: ((C1 ('MetaCons "TcRnAmbiguousFieldInUpdate" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (GlobalRdrElt, GlobalRdrElt, [GlobalRdrElt]))) :+: C1 ('MetaCons "TcRnBadRecordUpdate" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RdrName]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BadRecordUpdateReason))) :+: (C1 ('MetaCons "TcRnStaticFormNotClosed" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NotClosedReason)) :+: (C1 ('MetaCons "TcRnUselessTypeable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnDerivingDefaults" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Class)))))) :+: (((C1 ('MetaCons "TcRnNonUnaryTypeclassConstraint" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LHsSigType GhcRn))) :+: C1 ('MetaCons "TcRnPartialTypeSignatures" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SuggestPartialTypeSignatures) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ThetaType))) :+: (C1 ('MetaCons "TcRnCannotDeriveInstance" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Class) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe (DerivStrategy GhcTc))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UsingGeneralizedNewtypeDeriving) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DeriveInstanceErrReason)))) :+: (C1 ('MetaCons "TcRnLazyGADTPattern" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnArrowProcGADTPattern" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "TcRnCapturedTermName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RdrName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either [GlobalRdrElt] Name))) :+: C1 ('MetaCons "TcRnTypeEqualityOutOfScope" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TcRnTypeEqualityRequiresOperators" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TcRnIllegalTypeOperator" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SDoc) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RdrName)) :+: C1 ('MetaCons "TcRnIllegalTypeOperatorDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RdrName)))))))) :+: (((((C1 ('MetaCons "TcRnGADTMonoLocalBinds" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnNotInScope" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NotInScopeError) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RdrName)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ImportError]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [GhcHint])))) :+: (C1 ('MetaCons "TcRnTermNameInType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RdrName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [GhcHint])) :+: C1 ('MetaCons "TcRnUntickedPromotedThing" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UntickedPromotedThing)))) :+: ((C1 ('MetaCons "TcRnIllegalBuiltinSyntax" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SDoc) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RdrName)) :+: C1 ('MetaCons "TcRnWarnDefaulting" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Ct]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe TyVar)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: (C1 ('MetaCons "TcRnIncorrectNameSpace" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :+: (C1 ('MetaCons "TcRnForeignImportPrimExtNotSet" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ForeignImport GhcRn))) :+: C1 ('MetaCons "TcRnForeignImportPrimSafeAnn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ForeignImport GhcRn))))))) :+: (((C1 ('MetaCons "TcRnForeignFunctionImportAsValue" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ForeignImport GhcRn))) :+: C1 ('MetaCons "TcRnFunPtrImportWithoutAmpersand" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ForeignImport GhcRn)))) :+: (C1 ('MetaCons "TcRnIllegalForeignDeclBackend" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either (ForeignExport GhcRn) (ForeignImport GhcRn))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Backend) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ExpectedBackends))) :+: C1 ('MetaCons "TcRnUnsupportedCallConv" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either (ForeignExport GhcRn) (ForeignImport GhcRn))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnsupportedCallConvention)))) :+: ((C1 ('MetaCons "TcRnIllegalForeignType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe ArgOrResult)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 IllegalForeignTypeReason)) :+: C1 ('MetaCons "TcRnInvalidCIdentifier" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CLabelString))) :+: (C1 ('MetaCons "TcRnExpectedValueId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TcTyThing)) :+: (C1 ('MetaCons "TcRnRecSelectorEscapedTyVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OccName)) :+: C1 ('MetaCons "TcRnPatSynNotBidirectional" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))))))) :+: ((((C1 ('MetaCons "TcRnIllegalDerivingItem" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LHsSigType GhcRn))) :+: C1 ('MetaCons "TcRnUnexpectedAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (HsType GhcRn)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 HsSrcBang))) :+: (C1 ('MetaCons "TcRnIllegalRecordSyntax" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either (HsType GhcPs) (HsType GhcRn)))) :+: C1 ('MetaCons "TcRnInvalidVisibleKindArgument" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LHsType GhcRn)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)))) :+: ((C1 ('MetaCons "TcRnTooManyBinders" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Kind) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [LHsTyVarBndr (HsBndrVis GhcRn) GhcRn])) :+: C1 ('MetaCons "TcRnDifferentNamesForTyVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))) :+: (C1 ('MetaCons "TcRnDisconnectedTyVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name)) :+: (C1 ('MetaCons "TcRnInvalidReturnKind" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataSort) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AllowedDataResKind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Kind) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe SuggestUnliftedTypes)))) :+: C1 ('MetaCons "TcRnUnexpectedKindVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RdrName)))))) :+: (((C1 ('MetaCons "TcRnIllegalKind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsTypeOrSigType GhcPs)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :+: C1 ('MetaCons "TcRnClassKindNotConstraint" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Kind))) :+: (C1 ('MetaCons "TcRnUnpromotableThing" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PromotionErr)) :+: (C1 ('MetaCons "TcRnIllegalTermLevelUse" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TermLevelUseErr)) :+: C1 ('MetaCons "TcRnMatchesHaveDiffNumArgs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 HsMatchContextRn) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 MatchArgBadMatches))))) :+: ((C1 ('MetaCons "TcRnUnexpectedPatSigType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsPatSigType GhcPs))) :+: C1 ('MetaCons "TcRnIllegalKindSignature" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsType GhcPs)))) :+: (C1 ('MetaCons "TcRnDataKindsError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeOrKind) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either (HsType GhcPs) Type))) :+: (C1 ('MetaCons "TcRnCannotBindScopedTyVarInPatSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (Name, TcTyVar)))) :+: C1 ('MetaCons "TcRnCannotBindTyVarsInPatBind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (Name, TcTyVar)))))))))))) :+: (((((((C1 ('MetaCons "TcRnTooManyTyArgsInConPattern" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ConLike) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int))) :+: C1 ('MetaCons "TcRnMultipleInlinePragmas" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Id) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LocatedA InlinePragma)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (LocatedA InlinePragma)))))) :+: (C1 ('MetaCons "TcRnUnexpectedPragmas" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Id) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (LSig GhcRn)))) :+: C1 ('MetaCons "TcRnNonOverloadedSpecialisePragma" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LIdP GhcRn))))) :+: ((C1 ('MetaCons "TcRnSpecialiseNotVisible" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name)) :+: C1 ('MetaCons "TcRnPragmaWarning" 'PrefixI 'True) (S1 ('MetaSel ('Just "pragma_warning_info") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PragmaWarningInfo) :*: S1 ('MetaSel ('Just "pragma_warning_msg") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WarningTxt GhcRn)))) :+: (C1 ('MetaCons "TcRnDifferentExportWarnings" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty SrcSpan))) :+: (C1 ('MetaCons "TcRnIncompleteExportWarnings" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty SrcSpan))) :+: C1 ('MetaCons "TcRnIllegalHsigDefaultMethods" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (LHsBind GhcRn)))))))) :+: (((C1 ('MetaCons "TcRnHsigFixityMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyThing) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Fixity) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Fixity))) :+: C1 ('MetaCons "TcRnHsigShapeMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 HsigShapeMismatchReason))) :+: (C1 ('MetaCons "TcRnHsigMissingModuleExport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OccName) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UnitState) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Module))) :+: C1 ('MetaCons "TcRnBadGenericMethod" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name)))) :+: ((C1 ('MetaCons "TcRnWarningMinimalDefIncomplete" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ClassMinimalDef)) :+: C1 ('MetaCons "TcRnIllegalQuasiQuotes" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TcRnTHError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 THError)) :+: (C1 ('MetaCons "TcRnDefaultMethodForPragmaLacksBinding" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Id) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Sig GhcRn))) :+: C1 ('MetaCons "TcRnIgnoreSpecialisePragmaOnDefMethod" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))))))) :+: ((((C1 ('MetaCons "TcRnBadMethodErr" 'PrefixI 'True) (S1 ('MetaSel ('Just "badMethodErrClassName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Just "badMethodErrMethodName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name)) :+: C1 ('MetaCons "TcRnIllegalNewtype" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DataCon) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IllegalNewtypeReason)))) :+: (C1 ('MetaCons "TcRnIllegalTypeData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnTypeDataForbids" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TypeDataForbids)))) :+: ((C1 ('MetaCons "TcRnUnsatisfiedMinimalDef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ClassMinimalDef)) :+: C1 ('MetaCons "TcRnMisplacedInstSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LHsSigType GhcRn)))) :+: (C1 ('MetaCons "TcRnNoRebindableSyntaxRecordDot" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TcRnNoFieldPunsRecordDot" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnIllegalStaticExpression" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsExpr GhcPs))))))) :+: (((C1 ('MetaCons "TcRnListComprehensionDuplicateBinding" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "TcRnEmptyStmtsGroup" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 EmptyStatementGroupErrReason))) :+: (C1 ('MetaCons "TcRnLastStmtNotExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HsStmtContextRn) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnexpectedStatement)) :+: C1 ('MetaCons "TcRnUnexpectedStatementInContext" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HsStmtContextRn) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnexpectedStatement) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Extension)))))) :+: ((C1 ('MetaCons "TcRnIllegalTupleSection" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnIllegalImplicitParameterBindings" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either (HsLocalBindsLR GhcPs GhcPs) (HsLocalBindsLR GhcRn GhcPs))))) :+: (C1 ('MetaCons "TcRnSectionWithoutParentheses" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsExpr GhcPs))) :+: (C1 ('MetaCons "TcRnBindingOfExistingName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RdrName)) :+: C1 ('MetaCons "TcRnMultipleFixityDecls" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SrcSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RdrName)))))))) :+: (((((C1 ('MetaCons "TcRnIllegalPatternSynonymDecl" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnIllegalClassBinding" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DeclSort) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsBindLR GhcPs GhcPs)))) :+: (C1 ('MetaCons "TcRnOrphanCompletePragma" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnEmptyCase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HsMatchContextRn)))) :+: ((C1 ('MetaCons "TcRnNonStdGuards" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NonStandardGuards)) :+: C1 ('MetaCons "TcRnDuplicateSigDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (LocatedN RdrName, Sig GhcPs))))) :+: (C1 ('MetaCons "TcRnMisplacedSigDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Sig GhcRn))) :+: (C1 ('MetaCons "TcRnUnexpectedDefaultSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Sig GhcPs))) :+: C1 ('MetaCons "TcRnDuplicateMinimalSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LSig GhcPs)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LSig GhcPs)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LSig GhcPs]))))))) :+: (((C1 ('MetaCons "TcRnIllegalInvisTyVarBndr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LHsTyVarBndr (HsBndrVis GhcRn) GhcRn))) :+: C1 ('MetaCons "TcRnInvalidInvisTyVarBndr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LHsTyVarBndr (HsBndrVis GhcRn) GhcRn)))) :+: (C1 ('MetaCons "TcRnInvisBndrWithoutSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LHsTyVarBndr (HsBndrVis GhcRn) GhcRn))) :+: C1 ('MetaCons "TcRnDeprecatedInvisTyArgInConPat" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TcRnUnexpectedStandaloneDerivingDecl" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnUnusedVariableInRuleDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FastString) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "TcRnUnexpectedStandaloneKindSig" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TcRnIllegalRuleLhs" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RuleLhsErrReason) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FastString)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LHsExpr GhcRn)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsExpr GhcRn)))) :+: C1 ('MetaCons "TcRnDuplicateRoleAnnot" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (LRoleAnnotDecl GhcPs))))))))) :+: ((((C1 ('MetaCons "TcRnDuplicateKindSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (LStandaloneKindSig GhcPs)))) :+: C1 ('MetaCons "TcRnIllegalDerivStrategy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (DerivStrategy GhcPs)))) :+: (C1 ('MetaCons "TcRnIllegalMultipleDerivClauses" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnNoDerivStratSpecified" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :+: ((C1 ('MetaCons "TcRnStupidThetaInGadt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HsDocContext)) :+: C1 ('MetaCons "TcRnShadowedTyVarNameInFamResult" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IdP GhcPs)))) :+: (C1 ('MetaCons "TcRnIncorrectTyVarOnLhsOfInjCond" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IdP GhcRn)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LIdP GhcPs))) :+: (C1 ('MetaCons "TcRnUnknownTyVarsOnRhsOfInjCond" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])) :+: C1 ('MetaCons "TcRnLookupInstance" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Class) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Type]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 LookupInstanceErrReason))))))) :+: (((C1 ('MetaCons "TcRnBadlyStaged" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StageCheckReason) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int))) :+: C1 ('MetaCons "TcRnStageRestriction" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StageCheckReason))) :+: (C1 ('MetaCons "TcRnBadlyStagedType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int))) :+: (C1 ('MetaCons "TcRnTyThingUsedWrong" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 WrongThingSort) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TcTyThing) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))) :+: C1 ('MetaCons "TcRnCannotDefaultKindVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyVar) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Kind))))) :+: ((C1 ('MetaCons "TcRnUninferrableTyVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [TyCoVar]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UninferrableTyVarCtx)) :+: C1 ('MetaCons "TcRnSkolemEscape" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [TcTyVar]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TcTyVar) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)))) :+: (C1 ('MetaCons "TcRnPatSynEscapedCoercion" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Id) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty CoVar))) :+: (C1 ('MetaCons "TcRnPatSynExistentialInResult" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TcSigmaType) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [TyVar]))) :+: C1 ('MetaCons "TcRnPatSynArityMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Arity) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Arity)))))))))) :+: ((((((C1 ('MetaCons "TcRnPatSynInvalidRhs" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LPat GhcRn))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [LIdP GhcRn]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PatSynInvalidRhsReason))) :+: C1 ('MetaCons "TcRnZonkerMessage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ZonkerMessage))) :+: (C1 ('MetaCons "TcRnTyFamDepsDisabled" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnAbstractClosedTyFamDecl" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TcRnPartialFieldSelector" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 FieldLabel)) :+: C1 ('MetaCons "TcRnHasFieldResolvedIncomplete" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))) :+: (C1 ('MetaCons "TcRnBadFieldAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataCon) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BadFieldAnnotationReason))) :+: (C1 ('MetaCons "TcRnSuperclassCycle" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SuperclassCycle)) :+: C1 ('MetaCons "TcRnDefaultSigMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Id) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)))))) :+: (((C1 ('MetaCons "TcRnTyFamsDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyFamsDisabledReason)) :+: C1 ('MetaCons "TcRnBadTyConTelescope" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyCon))) :+: (C1 ('MetaCons "TcRnTyFamResultDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LHsTyVarBndr () GhcRn))) :+: C1 ('MetaCons "TcRnRoleValidationFailed" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Role) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RoleValidationFailedReason)))) :+: ((C1 ('MetaCons "TcRnCommonFieldResultTypeMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataCon) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataCon) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 FieldLabelString))) :+: C1 ('MetaCons "TcRnCommonFieldTypeMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataCon) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataCon) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 FieldLabelString)))) :+: (C1 ('MetaCons "TcRnClassExtensionDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Class) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DisabledClassExtension)) :+: (C1 ('MetaCons "TcRnDataConParentTypeMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataCon) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)) :+: C1 ('MetaCons "TcRnGADTsDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))))))) :+: ((((C1 ('MetaCons "TcRnExistentialQuantificationDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataCon)) :+: C1 ('MetaCons "TcRnGADTDataContext" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))) :+: (C1 ('MetaCons "TcRnMultipleConForNewtype" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)) :+: C1 ('MetaCons "TcRnKindSignaturesDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Either (HsType GhcPs) (Name, HsType GhcRn)))))) :+: ((C1 ('MetaCons "TcRnEmptyDataDeclsDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name)) :+: C1 ('MetaCons "TcRnRoleMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Role) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Role)))) :+: (C1 ('MetaCons "TcRnRoleCountMismatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LRoleAnnotDecl GhcRn))) :+: (C1 ('MetaCons "TcRnIllegalRoleAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (RoleAnnotDecl GhcRn))) :+: C1 ('MetaCons "TcRnRoleAnnotationsDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyCon)))))) :+: (((C1 ('MetaCons "TcRnIncoherentRoles" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyCon)) :+: C1 ('MetaCons "TcRnPrecedenceParsingError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OpName, Fixity)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OpName, Fixity)))) :+: (C1 ('MetaCons "TcRnSectionPrecedenceError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OpName, Fixity)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OpName, Fixity)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsExpr GhcPs)))) :+: (C1 ('MetaCons "TcRnTypeSynonymCycle" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TySynCycleTyCons)) :+: C1 ('MetaCons "TcRnSelfImport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ModuleName))))) :+: ((C1 ('MetaCons "TcRnNoExplicitImportList" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ModuleName)) :+: C1 ('MetaCons "TcRnSafeImportsDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ModuleName))) :+: (C1 ('MetaCons "TcRnDeprecatedModule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ModuleName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (WarningTxt GhcRn))) :+: (C1 ('MetaCons "TcRnCompatUnqualifiedImport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ImportDecl GhcPs))) :+: C1 ('MetaCons "TcRnRedundantSourceImport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ModuleName)))))))) :+: (((((C1 ('MetaCons "TcRnImportLookup" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ImportLookupReason)) :+: C1 ('MetaCons "TcRnUnusedImport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ImportDecl GhcRn)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UnusedImportReason))) :+: (C1 ('MetaCons "TcRnDuplicateDecls" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OccName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty Name))) :+: C1 ('MetaCons "TcRnPackageImportsDisabled" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TcRnIllegalDataCon" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RdrName)) :+: C1 ('MetaCons "TcRnNestedForallsContexts" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NestedForallsContextsIn))) :+: (C1 ('MetaCons "TcRnRedundantRecordWildcard" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TcRnUnusedRecordWildcard" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Name])) :+: C1 ('MetaCons "TcRnUnusedName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OccName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UnusedNameProv)))))) :+: (((C1 ('MetaCons "TcRnQualifiedBinder" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RdrName)) :+: C1 ('MetaCons "TcRnTypeApplicationsDisabled" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TypeApplication))) :+: (C1 ('MetaCons "TcRnInvalidRecordField" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 FieldLabelString)) :+: C1 ('MetaCons "TcRnTupleTooLarge" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)))) :+: ((C1 ('MetaCons "TcRnCTupleTooLarge" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)) :+: C1 ('MetaCons "TcRnIllegalInferredTyVars" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (HsTyVarBndr Specificity GhcPs))))) :+: (C1 ('MetaCons "TcRnAmbiguousName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 GlobalRdrEnv) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RdrName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty GlobalRdrElt)))) :+: (C1 ('MetaCons "TcRnBindingNameConflict" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RdrName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty SrcSpan))) :+: C1 ('MetaCons "TcRnNonCanonicalDefinition" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NonCanonicalDefinition) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LHsSigType GhcRn)))))))) :+: ((((C1 ('MetaCons "TcRnImplicitImportOfPrelude" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TcRnMissingMain" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Module) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OccName)))) :+: (C1 ('MetaCons "TcRnGhciUnliftedBind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Id)) :+: C1 ('MetaCons "TcRnGhciMonadLookupFail" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [GlobalRdrElt]))))) :+: ((C1 ('MetaCons "TcRnMissingRoleAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Role])) :+: C1 ('MetaCons "TcRnPatersonCondFailure" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatersonCondFailure) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatersonCondFailureContext)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: (C1 ('MetaCons "TcRnImplicitRhsQuantification" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LocatedN RdrName))) :+: (C1 ('MetaCons "TcRnIllformedTypePattern" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Pat GhcRn))) :+: C1 ('MetaCons "TcRnIllegalTypePattern" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "TcRnIllformedTypeArgument" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LHsExpr GhcRn))) :+: C1 ('MetaCons "TcRnIllegalTypeExpr" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TcRnInvalidDefaultedTyVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Ct]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(TcTyVar, Type)]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty TcTyVar)))) :+: (C1 ('MetaCons "TcRnNamespacedWarningPragmaWithoutFlag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WarnDecl GhcPs))) :+: C1 ('MetaCons "TcRnInvisPatWithNoForAll" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsTyPat GhcRn)))))) :+: ((C1 ('MetaCons "TcRnIllegalInvisibleTypePattern" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsTyPat GhcPs))) :+: C1 ('MetaCons "TcRnNamespacedFixitySigWithoutFlag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FixitySig GhcPs)))) :+: (C1 ('MetaCons "TcRnDefaultedExceptionContext" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CtLoc)) :+: (C1 ('MetaCons "TcRnOutOfArityTyVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "TcRnMisplacedInvisPat" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HsTyPat GhcPs)))))))))))) | |||||
Constructors
| NoArrowCtxt | |
| ArrowCtxt LocalRdrEnv (TcRef WantedConstraints) |
type ThBindEnv = NameEnv (TopLevelFlag, ThLevel) #
Constructors
| TcLclCtxt | |
Fields
| |
setLclEnvTcLevel :: TcLevel -> TcLclEnv -> TcLclEnv #
getLclEnvTcLevel :: TcLclEnv -> TcLevel #
setLclEnvLoc :: RealSrcSpan -> TcLclEnv -> TcLclEnv #
getLclEnvLoc :: TcLclEnv -> RealSrcSpan #
lclEnvInGeneratedCode :: TcLclEnv -> Bool #
type CompleteMatches = [CompleteMatch] #
data CompleteMatch #
A list of conlikes which represents a complete pattern match.
These arise from COMPLETE signatures.
See also Note [Implementation of COMPLETE pragmas].
Instances
| Outputable CompleteMatch | |
Defined in GHC.Types.CompleteMatch Methods ppr :: CompleteMatch -> SDoc # | |
getPlatform :: TcRnIf a b Platform #
Get target platform
addErr :: TcRnMessage -> TcRn () #
data IOEnvFailure #
Constructors
| IOEnvFailure |
Instances
| Exception IOEnvFailure | |
Defined in GHC.Data.IOEnv Methods toException :: IOEnvFailure -> SomeException # fromException :: SomeException -> Maybe IOEnvFailure # displayException :: IOEnvFailure -> String # backtraceDesired :: IOEnvFailure -> Bool # | |
| Show IOEnvFailure | |
Defined in GHC.Data.IOEnv Methods showsPrec :: Int -> IOEnvFailure -> ShowS # show :: IOEnvFailure -> String # showList :: [IOEnvFailure] -> ShowS # | |
Instances
| HasDynFlags BkpM | |
Defined in GHC.Driver.Backpack Methods getDynFlags :: BkpM DynFlags # | |
| GhcMonad BkpM | |
Defined in GHC.Driver.Backpack | |
| HasLogger BkpM | |
Defined in GHC.Driver.Backpack | |
| MonadIO (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
| MonadCatch (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
| MonadMask (IOEnv env) | |
Defined in GHC.Data.IOEnv Methods mask :: HasCallStack => ((forall a. IOEnv env a -> IOEnv env a) -> IOEnv env b) -> IOEnv env b # uninterruptibleMask :: HasCallStack => ((forall a. IOEnv env a -> IOEnv env a) -> IOEnv env b) -> IOEnv env b # generalBracket :: HasCallStack => IOEnv env a -> (a -> ExitCase b -> IOEnv env c) -> (a -> IOEnv env b) -> IOEnv env (b, c) # | |
| MonadThrow (IOEnv env) | |
Defined in GHC.Data.IOEnv Methods throwM :: (HasCallStack, Exception e) => e -> IOEnv env a # | |
| ContainsDynFlags env => HasDynFlags (IOEnv env) | |
Defined in GHC.Data.IOEnv Methods getDynFlags :: IOEnv env DynFlags # | |
| ContainsHooks env => HasHooks (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
| ContainsModule env => HasModule (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
| ContainsLogger env => HasLogger (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
| Alternative (IOEnv env) | |
| Applicative (IOEnv m) | |
| Functor (IOEnv env) | |
| Monad (IOEnv m) | |
| MonadPlus (IOEnv env) | |
| MonadFail (IOEnv m) | |
Defined in GHC.Data.IOEnv | |
| MonadFix (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
unsafeInterleaveM :: IOEnv env a -> IOEnv env a #
uninterruptibleMaskM_ :: IOEnv env a -> IOEnv env a #
atomicUpdMutVar :: IORef a -> (a -> (a, b)) -> IOEnv env b #
Atomically update the reference. Does not force the evaluation of the
new variable contents. For strict update, use atomicUpdMutVar'.
atomicUpdMutVar' :: IORef a -> (a -> (a, b)) -> IOEnv env b #
Strict variant of atomicUpdMutVar.
updEnv :: (env -> env') -> IOEnv env' a -> IOEnv env a #
Perform a computation with an altered environment
getSrcSpanM :: TcRn SrcSpan #
type THDocs = Map DocLoc (HsDoc GhcRn) #
The current collection of docs that Template Haskell has built up via putDoc.
This is a mirror of Template Haskell's DocLoc, but the TH names are resolved to GHC names.
type RoleAnnotEnv = NameEnv (LRoleAnnotDecl GhcRn) #
data DefaultingPlugin #
A plugin for controlling defaulting.
Constructors
| DefaultingPlugin | |
Fields
| |
type FillDefaulting = WantedConstraints -> TcPluginM [DefaultingProposal] #
data DefaultingProposal #
A collection of candidate default types for sets of type variables.
Constructors
| DefaultingProposal | |
Fields
| |
Instances
| Outputable DefaultingProposal | |
Defined in GHC.Tc.Types Methods ppr :: DefaultingProposal -> SDoc # | |
data TcPluginRewriteResult #
Constructors
| TcPluginNoRewrite | The plugin does not rewrite the type family application. |
| TcPluginRewriteTo | The plugin rewrites the type family application
providing a rewriting together with evidence: a The plugin can also emit additional Wanted constraints. |
Fields
| |
data TcPluginSolveResult #
Result of running a solver plugin.
Constructors
| TcPluginSolveResult | |
Fields
| |
Bundled Patterns
| pattern TcPluginOk :: [(EvTerm, Ct)] -> [Ct] -> TcPluginSolveResult | The plugin has not found any contradictions, The first field is for constraints that were solved. The second field contains new work, that should be processed by the constraint solver. |
| pattern TcPluginContradiction :: [Ct] -> TcPluginSolveResult | The plugin found a contradiction. The returned constraints are removed from the inert set, and recorded as insoluble. The returned list of constraints should never be empty. |
Constructors
| TcPlugin | |
Fields
| |
TcPluginM is the monad in which type-checking plugins operate.
Instances
type TcPluginRewriter #
Arguments
| = RewriteEnv | Rewriter environment |
| -> [Ct] | Givens |
| -> [TcType] | type family arguments |
| -> TcPluginM TcPluginRewriteResult |
For rewriting type family applications, a type-checking plugin provides
a function of this type for each type family TyCon.
The function is provided with the current set of Given constraints, together with the arguments to the type family. The type family application will always be fully saturated.
type TcPluginSolver #
Arguments
| = EvBindsVar | |
| -> [Ct] | Givens |
| -> [Ct] | Wanteds |
| -> TcPluginM TcPluginSolveResult |
The solve function of a type-checking plugin takes in Given
and Wanted constraints, and should return a TcPluginSolveResult
indicating which Wanted constraints it could solve, or whether any are
insoluble.
data SelfBootInfo #
Constructors
| NoSelfBoot | |
| SelfBoot | |
Fields
| |
data FrontendResult #
FrontendResult describes the result of running the frontend of a Haskell
module. Currently one always gets a FrontendTypecheck, since running the
frontend involves typechecking a program. hs-sig merges are not handled here.
This data type really should be in GHC.Driver.Env, but it needs to have a TcGblEnv which is only defined here.
Constructors
| FrontendTypecheck TcGblEnv |
Constructors
| IfLclEnv | |
Fields
| |
data RewriteEnv #
A RewriteEnv carries the necessary context for performing rewrites
(i.e. type family reductions and following filled-in metavariables)
in the solver.
Constructors
| RE | |
Fields
| |
A NameShape is a substitution on Names that can be used
to refine the identities of a hole while we are renaming interfaces
(see GHC.Iface.Rename). Specifically, a NameShape for
ns_module_name A, defines a mapping from {A.T}
(for some OccName T) to some arbitrary other Name.
The most intriguing thing about a NameShape, however, is
how it's constructed. A NameShape is *implied* by the
exported AvailInfos of the implementor of an interface:
if an implementor of signature <H> exports M.T, you implicitly
define a substitution from {H.T} to M.T. So a NameShape
is computed from the list of AvailInfos that are exported
by the implementation of a module, or successively merged
together by the export lists of signatures which are joining
together.
It's not the most obvious way to go about doing this, but it does seem to work!
NB: Can't boot this and put it in NameShape because then we start pulling in too many DynFlags things.
Constructors
| NameShape | |
Fields
| |
bootExports :: SelfBootInfo -> NameSet #
removeBindingShadowing :: HasOccName a => [a] -> [a] #
plusImportAvails :: ImportAvails -> ImportAvails -> ImportAvails #
Union two ImportAvails
This function is a key part of Import handling, basically for each import we create a separate ImportAvails structure and then union them all together with this function.
unsafeTcPluginTcM :: TcM a -> TcPluginM a #
This function provides an escape for direct access to
the TcM monad. It should not be used lightly, and
the provided TcPluginM API should be favoured instead.
mkRoleAnnotEnv :: [LRoleAnnotDecl GhcRn] -> RoleAnnotEnv #
lookupRoleAnnot :: RoleAnnotEnv -> Name -> Maybe (LRoleAnnotDecl GhcRn) #
getRoleAnnots :: [Name] -> RoleAnnotEnv -> [LRoleAnnotDecl GhcRn] #
lintGblEnv :: Logger -> DynFlags -> TcGblEnv -> TcM () #
Check the TcGblEnv for consistency. Currently, only checks
axioms, but should check other aspects, too.
data IsExtraConstraint #
Constructors
| YesExtraConstraint | |
| NoExtraConstraint |
Instances
| Outputable IsExtraConstraint | |
Defined in GHC.Tc.Utils.Monad Methods ppr :: IsExtraConstraint -> SDoc # | |
initTc :: HscEnv -> HscSource -> Bool -> Module -> RealSrcSpan -> TcM r -> IO (Messages TcRnMessage, Maybe r) #
Setup the initial typechecking environment
initTcWithGbl :: HscEnv -> TcGblEnv -> RealSrcSpan -> TcM r -> IO (Messages TcRnMessage, Maybe r) #
Run a TcM action in the context of an existing GblEnv.
initTcInteractive :: HscEnv -> TcM a -> IO (Messages TcRnMessage, Maybe a) #
discardResult :: TcM a -> TcM () #
goptM :: GeneralFlag -> TcRnIf gbl lcl Bool #
woptM :: WarningFlag -> TcRnIf gbl lcl Bool #
unsetXOptM :: Extension -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a #
unsetGOptM :: GeneralFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a #
unsetWOptM :: WarningFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a #
whenGOptM :: GeneralFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () #
whenWOptM :: WarningFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () #
unlessXOptM :: Extension -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () #
getGhcMode :: TcRnIf gbl lcl GhcMode #
withoutDynamicNow :: TcRnIf gbl lcl a -> TcRnIf gbl lcl a #
getEpsVar :: TcRnIf gbl lcl (TcRef ExternalPackageState) #
getEps :: TcRnIf gbl lcl ExternalPackageState #
updateEps :: (ExternalPackageState -> (ExternalPackageState, a)) -> TcRnIf gbl lcl a #
Update the external package state. Returns the second result of the modifier function.
This is an atomic operation and forces evaluation of the modified EPS in order to avoid space leaks.
updateEps_ :: (ExternalPackageState -> ExternalPackageState) -> TcRnIf gbl lcl () #
Update the external package state.
This is an atomic operation and forces evaluation of the modified EPS in order to avoid space leaks.
getHpt :: TcRnIf gbl lcl HomePackageTable #
getEpsAndHug :: TcRnIf gbl lcl (ExternalPackageState, HomeUnitGraph) #
withException :: MonadIO m => SDocContext -> m (MaybeErr SDoc a) -> m a #
A convenient wrapper for taking a MaybeErr SDoc a and throwing
an exception if it is an error.
withIfaceErr :: MonadIO m => SDocContext -> m (MaybeErr MissingInterfaceError a) -> m a #
newArrowScope :: TcM a -> TcM a #
escapeArrowScope :: TcM a -> TcM a #
newUniqueSupply :: TcRnIf gbl lcl UniqSupply #
cloneLocalName :: Name -> TcM Name #
newSysName :: OccName -> TcRnIf gbl lcl Name #
newSysLocalId :: FastString -> Mult -> TcType -> TcRnIf gbl lcl TcId #
newSysLocalIds :: FastString -> [Scaled TcType] -> TcRnIf gbl lcl [TcId] #
traceOptTcRn :: DumpFlag -> SDoc -> TcRn () #
dumpOptTcRn :: DumpFlag -> String -> DumpFormat -> SDoc -> TcRn () #
Dump if the given DumpFlag is set.
printForUserTcRn :: SDoc -> TcRn () #
Like logInfoTcRn, but for user consumption
traceOptIf :: DumpFlag -> SDoc -> TcRnIf m n () #
getGHCiMonad :: TcRn Name #
tcIsHsBootOrSig :: TcRn Bool #
getRdrEnvs :: TcRn (GlobalRdrEnv, LocalRdrEnv) #
getDeclaredDefaultTys :: TcRn (Maybe [Type]) #
addDependentFiles :: [FilePath] -> TcRn () #
inGeneratedCode :: TcRn Bool #
setSrcSpan :: SrcSpan -> TcRn a -> TcRn a #
setInGeneratedCode :: TcRn a -> TcRn a #
Mark the inner computation as being done inside generated code.
See Note [Error contexts in generated code]
setSrcSpanA :: EpAnn ann -> TcRn a -> TcRn a #
wrapLocMA :: (a -> TcM b) -> GenLocated (EpAnn ann) a -> TcRn (GenLocated (EpAnn ann) b) #
wrapLocFstMA :: (a -> TcM (b, c)) -> GenLocated (EpAnn ann) a -> TcM (GenLocated (EpAnn ann) b, c) #
wrapLocSndMA :: (a -> TcM (b, c)) -> GenLocated (EpAnn ann) a -> TcM (b, GenLocated (EpAnn ann) c) #
wrapLocMA_ :: (a -> TcM ()) -> LocatedA a -> TcM () #
getErrsVar :: TcRn (TcRef (Messages TcRnMessage)) #
setErrsVar :: TcRef (Messages TcRnMessage) -> TcRn a -> TcRn a #
failWith :: TcRnMessage -> TcRn a #
failAt :: SrcSpan -> TcRnMessage -> TcRn a #
addErrAt :: SrcSpan -> TcRnMessage -> TcRn () #
addErrs :: [(SrcSpan, TcRnMessage)] -> TcRn () #
checkErr :: Bool -> TcRnMessage -> TcRn () #
checkErrAt :: SrcSpan -> Bool -> TcRnMessage -> TcRn () #
addMessages :: Messages TcRnMessage -> TcRn () #
discardWarnings :: TcRn a -> TcRn a #
mkTcRnMessage :: SrcSpan -> TcRnMessage -> TcRn (MsgEnvelope TcRnMessage) #
reportDiagnostics :: [MsgEnvelope TcRnMessage] -> TcM () #
reportDiagnostic :: MsgEnvelope TcRnMessage -> TcRn () #
checkNoErrs :: TcM r -> TcM r #
whenNoErrs :: TcM () -> TcM () #
failIfErrsM :: TcRn () #
getErrCtxt :: TcM [ErrCtxt] #
setErrCtxt :: [ErrCtxt] -> TcM a -> TcM a #
addErrCtxt :: SDoc -> TcM a -> TcM a #
Add a fixed message to the error context. This message should not do any tidying.
addErrCtxtM :: (TidyEnv -> ZonkM (TidyEnv, SDoc)) -> TcM a -> TcM a #
Add a message to the error context. This message may do tidying.
addLandmarkErrCtxt :: SDoc -> TcM a -> TcM a #
Add a fixed landmark message to the error context. A landmark message is always sure to be reported, even if there is a lot of context. It also doesn't count toward the maximum number of contexts reported.
addLandmarkErrCtxtM :: (TidyEnv -> ZonkM (TidyEnv, SDoc)) -> TcM a -> TcM a #
Variant of addLandmarkErrCtxt that allows for monadic operations
and tidying.
popErrCtxt :: TcM a -> TcM a #
mkCtLocEnv :: TcLclEnv -> CtLocEnv #
tryCaptureConstraints :: TcM a -> TcM (Maybe a, WantedConstraints) #
captureConstraints :: TcM a -> TcM (a, WantedConstraints) #
tcCollectingUsage :: TcM a -> TcM (UsageEnv, a) #
tcCollectingUsage thing_inside runs thing_inside and returns the usage
information which was collected as part of the execution of
thing_inside. Careful: tcCollectingUsage thing_inside itself does not
report any usage information, it's up to the caller to incorporate the
returned usage information into the larger context appropriately.
tcScalingUsage :: Mult -> TcM a -> TcM a #
tcScalingUsage mult thing_inside runs thing_inside and scales all the
usage information by mult.
tcEmitBindingUsage :: UsageEnv -> TcM () #
mapAndRecoverM :: (a -> TcRn b) -> [a] -> TcRn [b] #
Drop elements of the input that fail, so the result list can be shorter than the argument list
mapAndReportM :: (a -> TcRn b) -> [a] -> TcRn [b] #
Apply the function to all elements on the input list If all succeed, return the list of results Otherwise fail, propagating all errors
foldAndRecoverM :: (b -> a -> TcRn b) -> b -> [a] -> TcRn b #
The accumulator is not updated if the action fails
discardErrs :: TcRn a -> TcRn a #
tryTcDiscardingErrs :: TcM r -> TcM r -> TcM r #
addErrTc :: TcRnMessage -> TcM () #
addErrTcM :: (TidyEnv, TcRnMessage) -> TcM () #
failWithTc :: TcRnMessage -> TcM a #
failWithTcM :: (TidyEnv, TcRnMessage) -> TcM a #
checkTc :: Bool -> TcRnMessage -> TcM () #
failIfTc :: Bool -> TcRnMessage -> TcM () #
warnIf :: Bool -> TcRnMessage -> TcRn () #
Display a warning if a condition is met.
diagnosticTc :: Bool -> TcRnMessage -> TcM () #
Display a warning if a condition is met.
diagnosticTcM :: Bool -> (TidyEnv, TcRnMessage) -> TcM () #
Display a diagnostic if a condition is met.
addDiagnosticTc :: TcRnMessage -> TcM () #
Display a diagnostic in the current context.
addDiagnosticTcM :: (TidyEnv, TcRnMessage) -> TcM () #
Display a diagnostic in a given context.
addDetailedDiagnostic :: (ErrInfo -> TcRnMessage) -> TcM () #
A variation of addDiagnostic that takes a function to produce a TcRnDsMessage
given some additional context about the diagnostic.
addTcRnDiagnostic :: TcRnMessage -> TcM () #
addDiagnostic :: TcRnMessage -> TcRn () #
Display a diagnostic for the current source location, taken from
the TcRn monad.
addDiagnosticAt :: SrcSpan -> TcRnMessage -> TcRn () #
Display a diagnostic for a given source location.
newNoTcEvBinds :: TcM EvBindsVar #
Creates an EvBindsVar incapable of holding any bindings. It still tracks covar usages (see comments on ebv_tcvs in GHC.Tc.Types.Evidence), thus must be made monadically
cloneEvBindsVar :: EvBindsVar -> TcM EvBindsVar #
getTcEvTyCoVars :: EvBindsVar -> TcM TyCoVarSet #
getTcEvBindsMap :: EvBindsVar -> TcM EvBindMap #
setTcEvBindsMap :: EvBindsVar -> EvBindMap -> TcM () #
addTcEvBind :: EvBindsVar -> EvBind -> TcM () #
setConstraintVar :: TcRef WantedConstraints -> TcM a -> TcM a #
emitStaticConstraints :: WantedConstraints -> TcM () #
emitConstraints :: WantedConstraints -> TcM () #
emitSimple :: Ct -> TcM () #
emitSimples :: Cts -> TcM () #
emitImplication :: Implication -> TcM () #
emitImplications :: Bag Implication -> TcM () #
emitDelayedErrors :: Bag DelayedError -> TcM () #
emitNotConcreteError :: NotConcreteError -> TcM () #
discardConstraints :: TcM a -> TcM a #
Throw out any constraints emitted by the thing_inside
pushLevelAndCaptureConstraints :: TcM a -> TcM (TcLevel, WantedConstraints, a) #
The name says it all. The returned TcLevel is the *inner* TcLevel.
pushTcLevelM_ :: TcM a -> TcM a #
pushTcLevelM :: TcM a -> TcM (TcLevel, a) #
getTcLevel :: TcM TcLevel #
setTcLevel :: TcLevel -> TcM a -> TcM a #
isTouchableTcM :: TcTyVar -> TcM Bool #
setLclTypeEnv :: TcLclEnv -> TcM a -> TcM a #
traceTcConstraints :: String -> TcM () #
emitAnonTypeHole :: IsExtraConstraint -> TcTyVar -> TcM () #
emitNamedTypeHole :: (Name, TcTyVar) -> TcM () #
recordThUse :: TcM () #
recordThSpliceUse :: TcM () #
recordThNeededRuntimeDeps :: [Linkable] -> PkgsLoaded -> TcM () #
getStageAndBindLevel :: Name -> TcRn (Maybe (TopLevelFlag, ThLevel, ThStage)) #
addModFinalizersWithLclEnv :: ThModFinalizers -> TcM () #
Adds the given modFinalizers to the global environment and set them to use the current local environment.
recordUnsafeInfer :: Messages TcRnMessage -> TcM () #
Mark that safe inference has failed See Note [Safe Haskell Overlapping Instances Implementation] although this is used for more than just that failure case.
finalSafeMode :: DynFlags -> TcGblEnv -> IO SafeHaskellMode #
Figure out the final correct safe haskell mode
fixSafeInstances :: SafeHaskellMode -> [ClsInst] -> [ClsInst] #
Switch instances to safe instances if we're in Safe mode.
setLocalRdrEnv :: LocalRdrEnv -> RnM a -> RnM a #
mkIfLclEnv :: Module -> SDoc -> IsBootInterface -> IfLclEnv #
initIfaceTcRn :: IfG a -> TcRn a #
initIfaceLoad :: HscEnv -> IfG a -> IO a #
initIfaceLoad can be used when there's no chance that the action will
call typecheckIface when inside a module loop and hence tcIfaceGlobal.
initIfaceLoadModule :: HscEnv -> Module -> IfG a -> IO a #
This is used when we are doing to call typecheckModule on an ModIface,
if it's part of a loop with some other modules then we need to use their
IORef TypeEnv vars when typechecking but crucially not our own.
initIfaceLcl :: Module -> SDoc -> IsBootInterface -> IfL a -> IfM lcl a #
initIfaceLclWithSubst :: Module -> SDoc -> IsBootInterface -> NameShape -> IfL a -> IfM lcl a #
getIfModule :: IfL Module #
forkM :: SDoc -> IfL a -> IfL a #
Run thing_inside in an interleaved thread. It shares everything with the parent thread, so this is DANGEROUS.
It throws an error if the computation fails
It's used for lazily type-checking interface signatures, which is pretty benign.
See Note [Masking exceptions in forkM]
setImplicitEnvM :: TypeEnv -> IfL a -> IfL a #
getCCIndexM :: (gbl -> TcRef CostCentreState) -> FastString -> TcRnIf gbl lcl CostCentreIndex #
Get the next cost centre index associated with a given name.
getCCIndexTcM :: FastString -> TcM CostCentreIndex #
See getCCIndexM.
module GHC.Types.Basic
module GHC.Types.Id
A unique, unambiguous name for something, containing information about where that thing originated.
Instances
| NFData Name | |
Defined in GHC.Types.Name | |
| ModifyState Name | |
Defined in GHC.Iface.Ext.Ast Methods addSubstitution :: Name -> Name -> HieState -> HieState | |
| NamedThing Name | |
Defined in GHC.Types.Name | |
| HasOccName Name | |
Defined in GHC.Types.Name | |
| Uniquable Name | |
Defined in GHC.Types.Name | |
| Binary Name | Assumes that the |
| Outputable Name | |
Defined in GHC.Types.Name | |
| OutputableBndr Name | |
Defined in GHC.Types.Name Methods pprBndr :: BindingSite -> Name -> SDoc # pprPrefixOcc :: Name -> SDoc # pprInfixOcc :: Name -> SDoc # bndrIsJoin_maybe :: Name -> JoinPointHood # | |
| Data Name | |
Defined in GHC.Types.Name Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name # dataTypeOf :: Name -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) # gmapT :: (forall b. Data b => b -> b) -> Name -> Name # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r # gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name # | |
| Eq Name | |
| Ord Name | Caution: This instance is implemented via See |
| ToHie (LBooleanFormula (LocatedN Name)) | |
Defined in GHC.Iface.Ext.Ast | |
| ToHie (Context (Located Name)) | |
| NFData (UniqFM Name [Name]) # | |
| type Anno Name | |
Defined in GHC.Hs.Extension | |
class HasOccName name where #
Other names in the compiler add additional information to an OccName. This class provides a consistent way to access the underlying OccName.
Instances
| HasOccName IfaceClassOp | |
Defined in GHC.Iface.Syntax Methods occName :: IfaceClassOp -> OccName # | |
| HasOccName IfaceConDecl | |
Defined in GHC.Iface.Syntax Methods occName :: IfaceConDecl -> OccName # | |
| HasOccName IfaceDecl | |
Defined in GHC.Iface.Syntax | |
| HasOccName HoleFitCandidate | |
Defined in GHC.Tc.Errors.Hole.FitTypes Methods occName :: HoleFitCandidate -> OccName # | |
| HasOccName TcBinder | |
Defined in GHC.Tc.Types.BasicTypes | |
| HasOccName FieldLabel | |
Defined in GHC.Types.FieldLabel Methods occName :: FieldLabel -> OccName # | |
| HasOccName Name | |
Defined in GHC.Types.Name | |
| HasOccName OccName | |
Defined in GHC.Types.Name.Occurrence | |
| HasOccName RdrName | |
Defined in GHC.Types.Name.Reader | |
| HasOccName Var | |
Defined in GHC.Types.Var | |
| HasOccName (GlobalRdrEltX info) | |
Defined in GHC.Types.Name.Reader Methods occName :: GlobalRdrEltX info -> OccName # | |
Occurrence Name
In this context that means: "classified (i.e. as a type name, value name, etc) but not qualified and not yet resolved"
Instances
| NFData OccName | |
Defined in GHC.Types.Name.Occurrence | |
| HasOccName OccName | |
Defined in GHC.Types.Name.Occurrence | |
| Binary OccName | |
| Outputable OccName | |
Defined in GHC.Types.Name.Occurrence | |
| OutputableBndr OccName | |
Defined in GHC.Types.Name.Occurrence Methods pprBndr :: BindingSite -> OccName -> SDoc # pprPrefixOcc :: OccName -> SDoc # pprInfixOcc :: OccName -> SDoc # | |
| Data OccName | |
Defined in GHC.Types.Name.Occurrence Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OccName -> c OccName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OccName # toConstr :: OccName -> Constr # dataTypeOf :: OccName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OccName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OccName) # gmapT :: (forall b. Data b => b -> b) -> OccName -> OccName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r # gmapQ :: (forall d. Data d => d -> u) -> OccName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> OccName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> OccName -> m OccName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName # | |
| Show OccName # | |
| Eq OccName | |
| Ord OccName | |
Defined in GHC.Types.Name.Occurrence | |
| Hashable OccName # | |
Defined in Development.IDE.GHC.Orphans | |
mkVarOccFS :: FastString -> OccName #
class NamedThing a where #
A class allowing convenient access to the Name of various datatypes
Minimal complete definition
Instances
| NamedThing Class | |
Defined in GHC.Core.Class | |
| NamedThing ConLike | |
Defined in GHC.Core.ConLike | |
| NamedThing DataCon | |
Defined in GHC.Core.DataCon | |
| NamedThing FamInst | |
Defined in GHC.Core.FamInstEnv | |
| NamedThing ClsInst | |
Defined in GHC.Core.InstEnv | |
| NamedThing PatSyn | |
Defined in GHC.Core.PatSyn | |
| NamedThing TyCon | |
Defined in GHC.Core.TyCon | |
| NamedThing IfaceClassOp | |
Defined in GHC.Iface.Syntax | |
| NamedThing IfaceConDecl | |
Defined in GHC.Iface.Syntax | |
| NamedThing IfaceDecl | |
Defined in GHC.Iface.Syntax | |
| NamedThing HoleFitCandidate | |
Defined in GHC.Tc.Errors.Hole.FitTypes | |
| NamedThing InvalidFamInstQTv | |
Defined in GHC.Tc.Errors.Types | |
| NamedThing Name | |
Defined in GHC.Types.Name | |
| NamedThing TyThing | |
Defined in GHC.Types.TyThing | |
| NamedThing Var | |
Defined in GHC.Types.Var | |
| NamedThing (CoAxiom br) | |
Defined in GHC.Core.Coercion.Axiom | |
| NamedThing e => NamedThing (Located e) | |
Defined in GHC.Types.Name | |
| NamedThing (Located a) => NamedThing (LocatedAn an a) | |
Defined in GHC.Parser.Annotation | |
| NamedThing tv => NamedThing (VarBndr tv flag) | |
Defined in GHC.Types.Var | |
isFieldName :: Name -> Bool #
tidyNameOcc :: Name -> OccName -> Name #
nameOccName :: Name -> OccName #
setNameUnique :: Name -> Unique -> Name #
nameUnique :: Name -> Unique #
type FastStringEnv a = UniqFM FastString a #
A non-deterministic set of FastStrings. See Note [Deterministic UniqFM] in GHC.Types.Unique.DFM for explanation why it's not deterministic and why it matters. Use DFastStringEnv if the set eventually gets converted into a list or folded over in a way where the order changes the generated code.
emptyFsEnv :: FastStringEnv a #
extendFsEnv :: FastStringEnv a -> FastString -> a -> FastStringEnv a #
lookupFsEnv :: FastStringEnv a -> FastString -> Maybe a #
mkFsEnv :: [(FastString, a)] -> FastStringEnv a #
type TidyOccEnv = UniqFM FastString Int #
A map keyed on OccName. See Note [OccEnv].
Instances
| Functor OccEnv | |
| NFData a => NFData (OccEnv a) | |
Defined in GHC.Types.Name.Occurrence | |
| Outputable a => Outputable (OccEnv a) | |
Defined in GHC.Types.Name.Occurrence | |
Instances
| NFData NameSpace | |
Defined in GHC.Types.Name.Occurrence | |
| Uniquable NameSpace | |
Defined in GHC.Types.Name.Occurrence | |
| Binary NameSpace | |
| Eq NameSpace | |
| Ord NameSpace | |
fieldName :: FastString -> NameSpace #
isDataConNameSpace :: NameSpace -> Bool #
isTcClsNameSpace :: NameSpace -> Bool #
isTvNameSpace :: NameSpace -> Bool #
isVarNameSpace :: NameSpace -> Bool #
isTermVarOrFieldNameSpace :: NameSpace -> Bool #
Is this a term variable or field name namespace?
isValNameSpace :: NameSpace -> Bool #
isFieldNameSpace :: NameSpace -> Bool #
pprNameSpace :: NameSpace -> SDoc #
pprNonVarNameSpace :: NameSpace -> SDoc #
pprNameSpaceBrief :: NameSpace -> SDoc #
pprOccName :: IsLine doc => OccName -> doc #
occNameMangledFS :: OccName -> FastString #
Mangle field names to avoid duplicate symbols.
See Note [Mangling OccNames].
mkOccNameFS :: NameSpace -> FastString -> OccName #
mkRecFieldOcc :: FastString -> String -> OccName #
mkRecFieldOccFS :: FastString -> FastString -> OccName #
varToRecFieldOcc :: HasDebugCallStack => FastString -> OccName -> OccName #
recFieldToVarOcc :: HasDebugCallStack => OccName -> OccName #
mkDataOccFS :: FastString -> OccName #
mkTyVarOcc :: String -> OccName #
mkTyVarOccFS :: FastString -> OccName #
mkTcOccFS :: FastString -> OccName #
mkClsOccFS :: FastString -> OccName #
demoteOccName :: OccName -> Maybe OccName #
demoteOccTvName :: OccName -> Maybe OccName #
promoteOccName :: OccName -> Maybe OccName #
emptyOccEnv :: OccEnv a #
The empty OccEnv.
unitOccEnv :: OccName -> a -> OccEnv a #
A singleton OccEnv.
extendOccEnvList :: OccEnv a -> [(OccName, a)] -> OccEnv a #
lookupOccEnv_AllNameSpaces :: OccEnv a -> OccName -> [a] #
lookupOccEnv_WithFields :: OccEnv a -> OccName -> [a] #
Lookup an element in an OccEnv, looking in the record field
namespace for a variable.
lookupFieldsOccEnv :: OccEnv a -> FastString -> [a] #
Look up all the record fields that match with the given FastString
in an OccEnv.
elemOccEnv :: OccName -> OccEnv a -> Bool #
Compute whether there is a value keyed by the given OccName.
nonDetFoldOccEnv :: (a -> b -> b) -> b -> OccEnv a -> b #
Fold over an OccEnv. Non-deterministic, unless the folding function
is commutative (i.e. a1 for all f ( a2 f b ) == a2 f ( a1 f b )a1, a2, b).
nonDetOccEnvElts :: OccEnv a -> [a] #
Obtain the elements of an OccEnv.
The resulting order is non-deterministic.
plusOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccEnv a -> OccEnv a #
Union of two OccEnvs with a combining function.
filterOccEnv :: (a -> Bool) -> OccEnv a -> OccEnv a #
Filter out all elements in an OccEnv using a predicate.
alterOccEnv :: (Maybe a -> Maybe a) -> OccEnv a -> OccName -> OccEnv a #
Alter an OccEnv, adding or removing an element at the given key.
intersectOccEnv_C :: (a -> b -> c) -> OccEnv a -> OccEnv b -> OccEnv c #
minusOccEnv :: OccEnv a -> OccEnv b -> OccEnv a #
minusOccEnv_C :: (a -> b -> Maybe a) -> OccEnv a -> OccEnv b -> OccEnv a #
Alters (replaces or removes) those elements of the first OccEnv that are
mentioned in the second OccEnv.
Same idea as differenceWith.
minusOccEnv_C_Ns :: (UniqFM NameSpace a -> UniqFM NameSpace b -> UniqFM NameSpace a) -> OccEnv a -> OccEnv b -> OccEnv a #
strictMapOccEnv :: (a -> b) -> OccEnv a -> OccEnv b #
Map over an OccEnv strictly.
forceOccEnv :: (a -> ()) -> OccEnv a -> () #
Force an OccEnv with the provided function.
emptyOccSet :: OccSet #
unitOccSet :: OccName -> OccSet #
extendOccSet :: OccSet -> OccName -> OccSet #
extendOccSetList :: OccSet -> [OccName] -> OccSet #
unionOccSets :: OccSet -> OccSet -> OccSet #
unionManyOccSets :: [OccSet] -> OccSet #
elemOccSet :: OccName -> OccSet -> Bool #
isEmptyOccSet :: OccSet -> Bool #
occNameString :: OccName -> String #
setOccNameSpace :: NameSpace -> OccName -> OccName #
isFieldOcc :: OccName -> Bool #
fieldOcc_maybe :: OccName -> Maybe FastString #
Value OccNamess are those that are either in
the variable, field name or data constructor namespaces
isDataSymOcc :: OccName -> Bool #
Test if the OccName is a data constructor that starts with
a symbol (e.g. :, or [])
Test if the OccName is that for any operator (whether
it is a data constructor or variable or whatever)
parenSymOcc :: OccName -> SDoc -> SDoc #
Wrap parens around an operator
startsWithUnderscore :: OccName -> Bool #
Haskell 98 encourages compilers to suppress warnings about unused
names in a pattern if they start with _: this implements that test
isUnderscore :: OccName -> Bool #
isDerivedOccName :: OccName -> Bool #
Test for definitions internally generated by GHC. This predicate is used to suppress printing of internal definitions in some debug prints
isDefaultMethodOcc :: OccName -> Bool #
isTypeableBindOcc :: OccName -> Bool #
Is an OccName one of a Typeable TyCon or Module binding?
This is needed as these bindings are renamed differently.
See Note [Grand plan for Typeable] in GHC.Tc.Instance.Typeable.
mkDataConWrapperOcc :: OccName -> OccName #
mkWorkerOcc :: OccName -> OccName #
mkMatcherOcc :: OccName -> OccName #
mkBuilderOcc :: OccName -> OccName #
mkDefaultMethodOcc :: OccName -> OccName #
mkClassOpAuxOcc :: OccName -> OccName #
mkForeignExportOcc :: OccName -> OccName #
mkRepEqOcc :: OccName -> OccName #
mkClassDataConOcc :: OccName -> OccName #
mkNewTyCoOcc :: OccName -> OccName #
mkInstTyCoOcc :: OccName -> OccName #
mkEqPredCoOcc :: OccName -> OccName #
mkCon2TagOcc :: OccName -> OccName #
mkTag2ConOcc :: OccName -> OccName #
mkMaxTagOcc :: OccName -> OccName #
mkDataTOcc :: OccName -> OccName #
mkDataCOcc :: OccName -> OccName #
mkTyConRepOcc :: OccName -> OccName #
mkDataConWorkerOcc :: OccName -> OccName #
mkSuperDictAuxOcc :: Int -> OccName -> OccName #
Derive a name for the representation type constructor of a
data/newtype instance.
mkMethodOcc :: OccName -> OccName #
initTidyOccEnv :: [OccName] -> TidyOccEnv #
delTidyOccEnvList :: TidyOccEnv -> [FastString] -> TidyOccEnv #
avoidClashesOccEnv :: TidyOccEnv -> [OccName] -> TidyOccEnv #
tidyOccName :: TidyOccEnv -> OccName -> (TidyOccEnv, OccName) #
data BuiltInSyntax #
BuiltInSyntax is for things like (:), [] and tuples,
which have special syntactic forms. They aren't in scope
as such.
Constructors
| BuiltInSyntax | |
| UserSyntax |
nameNameSpace :: Name -> NameSpace #
nameSrcLoc :: Name -> SrcLoc #
nameSrcSpan :: Name -> SrcSpan #
isWiredInName :: Name -> Bool #
isWiredIn :: NamedThing thing => thing -> Bool #
isBuiltInSyntax :: Name -> Bool #
isTupleTyConName :: Name -> Bool #
isSumTyConName :: Name -> Bool #
isUnboxedTupleDataConLikeName :: Name -> Bool #
This matches a datacon as well as its worker and promoted tycon.
isExternalName :: Name -> Bool #
isInternalName :: Name -> Bool #
isHoleName :: Name -> Bool #
isDynLinkName :: Platform -> Module -> Name -> Bool #
Will the Name come from a dynamically linked package?
nameModule :: HasDebugCallStack => Name -> Module #
nameModule_maybe :: Name -> Maybe Module #
namePun_maybe :: Name -> Maybe FastString #
nameIsLocalOrFrom :: Module -> Name -> Bool #
Returns True if the name is
(a) Internal
(b) External but from the specified module
(c) External but from the interactive package
The key idea is that False means: the entity is defined in some other module you can find the details (type, fixity, instances) in some interface file those details will be stored in the EPT or HPT
True means: the entity is defined in this module or earlier in the GHCi session you can find details (type, fixity, instances) in the TcGblEnv or TcLclEnv
The isInteractiveModule part is because successive interactions of a GHCi session
each give rise to a fresh module (Ghci1, Ghci2, etc), but they all come
from the magic interactive package; and all the details are kept in the
TcLclEnv, TcGblEnv, NOT in the HPT or EPT.
See Note [The interactive package] in GHC.Runtime.Context
nameIsExternalOrFrom :: Module -> Name -> Bool #
Returns True if the name is external or from the interactive package
See documentation of nameIsLocalOrFrom function
nameIsHomePackage :: Module -> Name -> Bool #
nameIsHomePackageImport :: Module -> Name -> Bool #
nameIsFromExternalPackage :: HomeUnit -> Name -> Bool #
Returns True if the Name comes from some other package: neither this package nor the interactive package.
isTyVarName :: Name -> Bool #
isTyConName :: Name -> Bool #
isDataConName :: Name -> Bool #
isSystemName :: Name -> Bool #
mkClonedInternalName :: Unique -> Name -> Name #
mkExternalName :: Unique -> Module -> OccName -> SrcSpan -> Name #
Create a name which definitely originates in the given module
mkWiredInName :: Module -> OccName -> Unique -> TyThing -> BuiltInSyntax -> Name #
Create a name which is actually defined by the compiler itself
mkSystemName :: Unique -> OccName -> Name #
Create a name brought into being by the compiler
mkSystemVarName :: Unique -> FastString -> Name #
mkSysTvName :: Unique -> FastString -> Name #
mkFCallName :: Unique -> FastString -> Name #
Make a name for a foreign call
setNameLoc :: Name -> SrcSpan -> Name #
localiseName :: Name -> Name #
Make the Name into an internal name, regardless of what it was to begin with
stableNameCmp :: Name -> Name -> Ordering #
Compare Names lexicographically This only works for Names that originate in the source code or have been tidied.
pprFullName :: Module -> Name -> SDoc #
Print fully qualified name (with unit-id, module and unique)
pprTickyName :: Module -> Name -> SDoc #
Print a ticky ticky styled name
Module argument is the module to use for internal and system names. When printing the name in a ticky profile, the module name is included even for local things. However, ticky uses the format "x (M)" rather than "M.x". Hence, this function provides a separation from normal styling.
pprNameUnqualified :: Name -> SDoc #
Print the string of Name unqualifiedly directly.
pprDefinedAt :: Name -> SDoc #
pprNameDefnLoc :: Name -> SDoc #
nameStableString :: Name -> String #
Get a string representation of a Name that's unique and stable
across recompilations. Used for deterministic generation of binds for
derived instances.
eg. "$aeson_70dylHtv1FFGeai1IoxcQr$Data.Aeson.Types.Internal$String"
getSrcLoc :: NamedThing a => a -> SrcLoc #
getSrcSpan :: NamedThing a => a -> SrcSpan #
getOccString :: NamedThing a => a -> String #
getOccFS :: NamedThing a => a -> FastString #
pprInfixName :: (Outputable a, NamedThing a) => a -> SDoc #
pprPrefixName :: NamedThing a => a -> SDoc #
module GHC.Types.Name.Set
module GHC.Types.Name.Cache
module GHC.Types.Name.Env
Reader Name
Do not use the data constructors of RdrName directly: prefer the family
of functions that creates them, such as mkRdrUnqual
- Note: A Located RdrName will only have API Annotations if it is a compound one, e.g.
`bar` ( ~ )
AnnKeywordId:AnnType,AnnOpen'('or'['or'[:',AnnClose')'or']'or':]',,AnnBackquote'`',AnnValAnnTilde,
Constructors
| Unqual OccName | Unqualified name Used for ordinary, unqualified occurrences, e.g. |
| Qual ModuleName OccName | Qualified name A qualified name written by the user in
source code. The module isn't necessarily
the module where the thing is defined;
just the one from which it is imported.
Examples are |
| Orig Module OccName | Original name An original name; the module is the defining module.
This is used when GHC generates code that will be fed
into the renamer (e.g. from deriving clauses), but where
we want to say "Use Prelude.map dammit". One of these
can be created with |
| Exact Name | Exact name We know exactly the
Such a |
Instances
| DisambInfixOp RdrName | |
| HasOccName RdrName | |
Defined in GHC.Types.Name.Reader | |
| Outputable RdrName | |
Defined in GHC.Types.Name.Reader | |
| OutputableBndr RdrName | |
Defined in GHC.Types.Name.Reader Methods pprBndr :: BindingSite -> RdrName -> SDoc # pprPrefixOcc :: RdrName -> SDoc # pprInfixOcc :: RdrName -> SDoc # | |
| Data RdrName | |
Defined in GHC.Types.Name.Reader Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RdrName -> c RdrName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RdrName # toConstr :: RdrName -> Constr # dataTypeOf :: RdrName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RdrName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RdrName) # gmapT :: (forall b. Data b => b -> b) -> RdrName -> RdrName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RdrName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RdrName -> r # gmapQ :: (forall d. Data d => d -> u) -> RdrName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RdrName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RdrName -> m RdrName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RdrName -> m RdrName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RdrName -> m RdrName # | |
| Eq RdrName | |
| Ord RdrName | |
Defined in GHC.Types.Name.Reader | |
| type Anno RdrName | |
Defined in GHC.Hs.Extension | |
data RecFieldInfo #
Constructors
| RecFieldInfo | |
Fields
| |
Instances
| NFData RecFieldInfo | |
Defined in GHC.Types.GREInfo Methods rnf :: RecFieldInfo -> () # | |
| Outputable RecFieldInfo | |
Defined in GHC.Types.GREInfo Methods ppr :: RecFieldInfo -> SDoc # | |
| Data RecFieldInfo | |
Defined in GHC.Types.GREInfo Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RecFieldInfo -> c RecFieldInfo # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RecFieldInfo # toConstr :: RecFieldInfo -> Constr # dataTypeOf :: RecFieldInfo -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RecFieldInfo) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RecFieldInfo) # gmapT :: (forall b. Data b => b -> b) -> RecFieldInfo -> RecFieldInfo # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RecFieldInfo -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RecFieldInfo -> r # gmapQ :: (forall d. Data d => d -> u) -> RecFieldInfo -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RecFieldInfo -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RecFieldInfo -> m RecFieldInfo # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RecFieldInfo -> m RecFieldInfo # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RecFieldInfo -> m RecFieldInfo # | |
| Eq RecFieldInfo | |
Defined in GHC.Types.GREInfo | |
| ToHie (IEContext (Located RecFieldInfo)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (Located RecFieldInfo) -> HieM [HieAST Type] | |
data ConLikeName #
Useful when we are in the renamer and don't yet have a full DataCon or
PatSyn to hand.
Constructors
| DataConName | |
Fields
| |
| PatSynName | |
Fields
| |
Instances
| NFData ConLikeName | |
Defined in GHC.Types.GREInfo Methods rnf :: ConLikeName -> () # | |
| Uniquable ConLikeName | |
Defined in GHC.Types.GREInfo Methods getUnique :: ConLikeName -> Unique # | |
| Outputable ConLikeName | |
Defined in GHC.Types.GREInfo Methods ppr :: ConLikeName -> SDoc # | |
| Data ConLikeName | |
Defined in GHC.Types.GREInfo Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConLikeName -> c ConLikeName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConLikeName # toConstr :: ConLikeName -> Constr # dataTypeOf :: ConLikeName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ConLikeName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConLikeName) # gmapT :: (forall b. Data b => b -> b) -> ConLikeName -> ConLikeName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConLikeName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConLikeName -> r # gmapQ :: (forall d. Data d => d -> u) -> ConLikeName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ConLikeName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ConLikeName -> m ConLikeName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ConLikeName -> m ConLikeName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ConLikeName -> m ConLikeName # | |
| Eq ConLikeName | |
Defined in GHC.Types.GREInfo | |
Information about a Name that is pertinent to the renamer.
See Note [GREInfo]
Constructors
| Vanilla | No particular information... e.g. a function |
| UnboundGRE | An unbound GRE... could be anything |
| IAmTyCon !(TyConFlavour Name) |
|
| IAmConLike | |
Fields
| |
| IAmRecField !RecFieldInfo | |
Instances
| NFData GREInfo | |
Defined in GHC.Types.GREInfo | |
| Outputable GREInfo | |
Defined in GHC.Types.GREInfo | |
| Data GREInfo | |
Defined in GHC.Types.GREInfo Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GREInfo -> c GREInfo # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c GREInfo # toConstr :: GREInfo -> Constr # dataTypeOf :: GREInfo -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c GREInfo) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GREInfo) # gmapT :: (forall b. Data b => b -> b) -> GREInfo -> GREInfo # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GREInfo -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GREInfo -> r # gmapQ :: (forall d. Data d => d -> u) -> GREInfo -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> GREInfo -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> GREInfo -> m GREInfo # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GREInfo -> m GREInfo # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GREInfo -> m GREInfo # | |
plusGREInfo :: GREInfo -> GREInfo -> GREInfo #
data ImpItemSpec #
Import Item Specification
Describes import info a particular Name
Constructors
| ImpAll | The import had no import list, or had a hiding list |
| ImpSome | The import had an import list.
The import C( T(..) ) Here the constructors of |
Fields
| |
Instances
| Data ImpItemSpec | |
Defined in GHC.Types.Name.Reader Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImpItemSpec -> c ImpItemSpec # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ImpItemSpec # toConstr :: ImpItemSpec -> Constr # dataTypeOf :: ImpItemSpec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ImpItemSpec) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ImpItemSpec) # gmapT :: (forall b. Data b => b -> b) -> ImpItemSpec -> ImpItemSpec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImpItemSpec -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImpItemSpec -> r # gmapQ :: (forall d. Data d => d -> u) -> ImpItemSpec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ImpItemSpec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImpItemSpec -> m ImpItemSpec # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImpItemSpec -> m ImpItemSpec # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImpItemSpec -> m ImpItemSpec # | |
| Eq ImpItemSpec | |
Defined in GHC.Types.Name.Reader | |
data ImpDeclSpec #
Import Declaration Specification
Describes a particular import declaration and is
shared among all the Provenances for that decl
Constructors
| ImpDeclSpec | |
Fields
| |
Instances
| Data ImpDeclSpec | |
Defined in GHC.Types.Name.Reader Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImpDeclSpec -> c ImpDeclSpec # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ImpDeclSpec # toConstr :: ImpDeclSpec -> Constr # dataTypeOf :: ImpDeclSpec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ImpDeclSpec) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ImpDeclSpec) # gmapT :: (forall b. Data b => b -> b) -> ImpDeclSpec -> ImpDeclSpec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImpDeclSpec -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImpDeclSpec -> r # gmapQ :: (forall d. Data d => d -> u) -> ImpDeclSpec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ImpDeclSpec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImpDeclSpec -> m ImpDeclSpec # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImpDeclSpec -> m ImpDeclSpec # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImpDeclSpec -> m ImpDeclSpec # | |
| Eq ImpDeclSpec | |
Defined in GHC.Types.Name.Reader | |
data ImportSpec #
Import Specification
The ImportSpec of something says how it came to be imported
It's quite elaborate so that we can give accurate unused-name warnings.
Constructors
| ImpSpec | |
Fields
| |
Instances
| NFData ImportSpec | |
Defined in GHC.Types.Name.Reader Methods rnf :: ImportSpec -> () # | |
| Outputable ImportSpec | |
Defined in GHC.Types.Name.Reader Methods ppr :: ImportSpec -> SDoc # | |
| Data ImportSpec | |
Defined in GHC.Types.Name.Reader Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImportSpec -> c ImportSpec # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ImportSpec # toConstr :: ImportSpec -> Constr # dataTypeOf :: ImportSpec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ImportSpec) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ImportSpec) # gmapT :: (forall b. Data b => b -> b) -> ImportSpec -> ImportSpec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImportSpec -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImportSpec -> r # gmapQ :: (forall d. Data d => d -> u) -> ImportSpec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ImportSpec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImportSpec -> m ImportSpec # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportSpec -> m ImportSpec # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportSpec -> m ImportSpec # | |
| Eq ImportSpec | |
Defined in GHC.Types.Name.Reader | |
data LookupChild #
Constructors
| LookupChild | |
Fields
| |
Instances
| Outputable LookupChild | |
Defined in GHC.Types.Name.Reader Methods ppr :: LookupChild -> SDoc # | |
How should we look up in a GlobalRdrEnv?
Which NameSpaces are considered relevant for a given lookup?
Constructors
| SameNameSpace :: forall info. WhichGREs info | Only consider |
| RelevantGREs | Allow |
Fields
| |
Bundled Patterns
| pattern RelevantGREsFOS :: FieldsOrSelectors -> WhichGREs GREInfo | Look up relevant GREs, taking into account the interaction between the
variable and field |
| pattern AllRelevantGREs :: WhichGREs GREInfo | Look up as many possibly relevant |
Instances
| Outputable (WhichGREs info) | |
Defined in GHC.Types.Name.Reader | |
What should we look up in a GlobalRdrEnv? Should we only look up
names with the exact same OccName, or do we allow different NameSpaces?
Depending on the answer, we might need more or less information from the
GlobalRdrEnv, e.g. if we want to include matching record fields we need
to know if the corresponding record fields define field selectors, for which
we need to consult the GREInfo. This is why this datatype is a GADT.
See Note [IfGlobalRdrEnv].
Constructors
| LookupOccName | Look for this specific |
| LookupRdrName | Look up the |
| LookupExactName | Look for |
Fields
| |
| LookupChildren | Look up children |
Fields
| |
data FieldsOrSelectors #
When looking up GREs, we may or may not want to include fields that were
defined in modules with NoFieldSelectors enabled. See Note
[NoFieldSelectors].
Constructors
| WantNormal | Include normal names, and fields with selectors, but ignore fields without selectors. |
| WantBoth | Include normal names and all fields (regardless of whether they have selectors). |
| WantField | Include only fields, with or without selectors, ignoring any non-fields in scope. |
Instances
| Show FieldsOrSelectors | |
Defined in GHC.Types.Name.Reader Methods showsPrec :: Int -> FieldsOrSelectors -> ShowS # show :: FieldsOrSelectors -> String # showList :: [FieldsOrSelectors] -> ShowS # | |
| Eq FieldsOrSelectors | |
Defined in GHC.Types.Name.Reader Methods (==) :: FieldsOrSelectors -> FieldsOrSelectors -> Bool # (/=) :: FieldsOrSelectors -> FieldsOrSelectors -> Bool # | |
See Note [Parents]
Instances
| NFData Parent | |
Defined in GHC.Types.Name.Reader | |
| Outputable Parent | |
Defined in GHC.Types.Name.Reader | |
| Data Parent | |
Defined in GHC.Types.Name.Reader Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Parent -> c Parent # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Parent # toConstr :: Parent -> Constr # dataTypeOf :: Parent -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Parent) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Parent) # gmapT :: (forall b. Data b => b -> b) -> Parent -> Parent # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Parent -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Parent -> r # gmapQ :: (forall d. Data d => d -> u) -> Parent -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Parent -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Parent -> m Parent # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Parent -> m Parent # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Parent -> m Parent # | |
| Eq Parent | |
type FieldGlobalRdrElt = GlobalRdrElt #
A FieldGlobalRdrElt is a GlobalRdrElt
in which the gre_info field is IAmRecField.
data GlobalRdrEltX info #
Global Reader Element
Something in scope in the renamer; usually a member of the GlobalRdrEnv.
See Note [GlobalRdrElt provenance].
Why do we parametrise over the gre_info field? See Note [IfGlobalRdrEnv].
Instances
| NFData a => NFData (GlobalRdrEltX a) | |
Defined in GHC.Types.Name.Reader Methods rnf :: GlobalRdrEltX a -> () # | |
| HasOccName (GlobalRdrEltX info) | |
Defined in GHC.Types.Name.Reader Methods occName :: GlobalRdrEltX info -> OccName # | |
| Outputable info => Outputable (GlobalRdrEltX info) | |
Defined in GHC.Types.Name.Reader Methods ppr :: GlobalRdrEltX info -> SDoc # | |
| Data info => Data (GlobalRdrEltX info) | |
Defined in GHC.Types.Name.Reader Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GlobalRdrEltX info -> c (GlobalRdrEltX info) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (GlobalRdrEltX info) # toConstr :: GlobalRdrEltX info -> Constr # dataTypeOf :: GlobalRdrEltX info -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (GlobalRdrEltX info)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (GlobalRdrEltX info)) # gmapT :: (forall b. Data b => b -> b) -> GlobalRdrEltX info -> GlobalRdrEltX info # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GlobalRdrEltX info -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GlobalRdrEltX info -> r # gmapQ :: (forall d. Data d => d -> u) -> GlobalRdrEltX info -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> GlobalRdrEltX info -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> GlobalRdrEltX info -> m (GlobalRdrEltX info) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GlobalRdrEltX info -> m (GlobalRdrEltX info) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GlobalRdrEltX info -> m (GlobalRdrEltX info) # | |
type IfGlobalRdrElt = GlobalRdrEltX () #
A GlobalRdrElt in which we stripped out the GREInfo field,
in order to avoid space leaks.
See Note [IfGlobalRdrEnv].
type GlobalRdrElt = GlobalRdrEltX GREInfo #
Global Reader Element
Something in scope in the renamer; usually a member of the GlobalRdrEnv.
See Note [GlobalRdrElt provenance].
type GlobalRdrEnvX info = OccEnv [GlobalRdrEltX info] #
Parametrises GlobalRdrEnv over the presence or absence of GREInfo.
See Note [IfGlobalRdrEnv].
type IfGlobalRdrEnv = GlobalRdrEnvX () #
A GlobalRdrEnv in which the GlobalRdrElts don't have any GREInfo
attached to them. This is useful to avoid space leaks, see Note [IfGlobalRdrEnv].
type GlobalRdrEnv = GlobalRdrEnvX GREInfo #
Global Reader Environment
Keyed by OccName; when looking up a qualified name
we look up the OccName part, and then check the Provenance
to see if the appropriate qualification is valid. This
saves routinely doubling the size of the env by adding both
qualified and unqualified names to the domain.
The list in the codomain is required because there may be name clashes These only get reported on lookup, not on construction
INVARIANT 1: All the members of the list have distinct
gre_name fields; that is, no duplicate Names
INVARIANT 2: Imported provenance => Name is an ExternalName However LocalDefs can have an InternalName. This happens only when type-checking a [d| ... |] Template Haskell quotation; see this note in GHC.Rename.Names Note [Top-level Names in Template Haskell decl quotes]
INVARIANT 3: If the GlobalRdrEnv maps [occ -> gre], then greOccName gre = occ
data LocalRdrEnv #
Local Reader Environment See Note [LocalRdrEnv]
Instances
| Outputable LocalRdrEnv | |
Defined in GHC.Types.Name.Reader Methods ppr :: LocalRdrEnv -> SDoc # | |
rdrNameOcc :: RdrName -> OccName #
rdrNameSpace :: RdrName -> NameSpace #
demoteRdrName :: RdrName -> Maybe RdrName #
demoteRdrNameTv :: RdrName -> Maybe RdrName #
promoteRdrName :: RdrName -> Maybe RdrName #
mkRdrUnqual :: OccName -> RdrName #
mkRdrQual :: ModuleName -> OccName -> RdrName #
mkUnqual :: NameSpace -> FastString -> RdrName #
mkVarUnqual :: FastString -> RdrName #
mkQual :: NameSpace -> (FastString, FastString) -> RdrName #
Make a qualified RdrName in the given namespace and where the ModuleName and
the OccName are taken from the first and second elements of the tuple respectively
getRdrName :: NamedThing thing => thing -> RdrName #
nameRdrName :: Name -> RdrName #
isRdrDataCon :: RdrName -> Bool #
isRdrTyVar :: RdrName -> Bool #
isSrcRdrName :: RdrName -> Bool #
isQual_maybe :: RdrName -> Maybe (ModuleName, OccName) #
isExact_maybe :: RdrName -> Maybe Name #
extendLocalRdrEnv :: LocalRdrEnv -> Name -> LocalRdrEnv #
extendLocalRdrEnvList :: LocalRdrEnv -> [Name] -> LocalRdrEnv #
lookupLocalRdrEnv :: LocalRdrEnv -> RdrName -> Maybe Name #
lookupLocalRdrOcc :: LocalRdrEnv -> OccName -> Maybe Name #
elemLocalRdrEnv :: RdrName -> LocalRdrEnv -> Bool #
localRdrEnvElts :: LocalRdrEnv -> [Name] #
inLocalRdrEnvScope :: Name -> LocalRdrEnv -> Bool #
minusLocalRdrEnv :: LocalRdrEnv -> OccEnv a -> LocalRdrEnv #
minusLocalRdrEnvList :: LocalRdrEnv -> [OccName] -> LocalRdrEnv #
greName :: GlobalRdrEltX info -> Name #
greNameSpace :: GlobalRdrEltX info -> NameSpace #
greParent :: GlobalRdrEltX info -> Parent #
greInfo :: GlobalRdrElt -> GREInfo #
mkGRE :: (Name -> Maybe ImportSpec) -> GREInfo -> Parent -> Name -> GlobalRdrElt #
mkExactGRE :: Name -> GREInfo -> GlobalRdrElt #
mkLocalGRE :: GREInfo -> Parent -> Name -> GlobalRdrElt #
mkLocalVanillaGRE :: Parent -> Name -> GlobalRdrElt #
mkLocalTyConGRE :: TyConFlavour Name -> Name -> GlobalRdrElt #
Create a local GlobalRdrElt for a TyCon.
mkLocalConLikeGRE :: Parent -> (ConLikeName, ConInfo) -> GlobalRdrElt #
mkLocalFieldGREs :: Parent -> [(ConLikeName, ConInfo)] -> [GlobalRdrElt] #
greOccName :: GlobalRdrEltX info -> OccName #
greDefinitionSrcSpan :: GlobalRdrEltX info -> SrcSpan #
The SrcSpan of the name pointed to by the GRE.
greDefinitionModule :: GlobalRdrEltX info -> Maybe Module #
The module in which the name pointed to by the GRE is defined.
greQualModName :: Outputable info => GlobalRdrEltX info -> ModuleName #
greRdrNames :: GlobalRdrEltX info -> [RdrName] #
greSrcSpan :: Outputable info => GlobalRdrEltX info -> SrcSpan #
availParent :: AvailInfo -> Parent #
greParent_maybe :: GlobalRdrEltX info -> Maybe Name #
gresToNameSet :: [GlobalRdrEltX info] -> NameSet #
gresToAvailInfo :: [GlobalRdrEltX info] -> [AvailInfo] #
Takes a list of distinct GREs and folds them
into AvailInfos. This is more efficient than mapping each individual
GRE to an AvailInfo and then folding using plusAvail, but needs the
uniqueness assumption.
availFromGRE :: GlobalRdrEltX info -> AvailInfo #
emptyGlobalRdrEnv :: GlobalRdrEnvX info #
globalRdrEnvElts :: GlobalRdrEnvX info -> [GlobalRdrEltX info] #
forceGlobalRdrEnv :: GlobalRdrEnvX info -> IfGlobalRdrEnv #
Drop all GREInfo fields in a GlobalRdrEnv in order to
avoid space leaks.
See Note [Forcing GREInfo] in GHC.Types.GREInfo.
hydrateGlobalRdrEnv :: (Name -> IO info) -> GlobalRdrEnvX noInfo -> GlobalRdrEnvX info #
Hydrate a previously dehydrated GlobalRdrEnv,
by (lazily!) looking up the GREInfo using the provided function.
See Note [Forcing GREInfo] in GHC.Types.GREInfo.
pprGlobalRdrEnv :: Bool -> GlobalRdrEnv -> SDoc #
filterFieldGREs :: FieldsOrSelectors -> [GlobalRdrElt] -> [GlobalRdrElt] #
allowGRE :: FieldsOrSelectors -> GlobalRdrElt -> Bool #
Arguments
| :: WhichGREs GREInfo | specification of which |
| -> NameSpace | the |
| -> GlobalRdrElt | the |
| -> Bool |
After looking up something with the given NameSpace, is the resulting
GlobalRdrElt we have obtained relevant, according to the RelevantGREs
specification of which NameSpaces are relevant?
lookupGRE :: GlobalRdrEnvX info -> LookupGRE info -> [GlobalRdrEltX info] #
lookupGRE_Name :: Outputable info => GlobalRdrEnvX info -> Name -> Maybe (GlobalRdrEltX info) #
lookupGRE_FieldLabel :: GlobalRdrEnv -> FieldLabel -> Maybe FieldGlobalRdrElt #
Look for a particular record field selector in the environment.
getGRE_NameQualifier_maybes :: GlobalRdrEnv -> Name -> [Maybe [ModuleName]] #
isLocalGRE :: GlobalRdrEltX info -> Bool #
Is this GlobalRdrElt defined locally?
isImportedGRE :: GlobalRdrEltX info -> Bool #
Is this GlobalRdrElt imported?
Not just the negation of isLocalGRE, because it might be an Exact or
Orig name reference. See Note [GlobalRdrElt provenance].
isRecFldGRE :: GlobalRdrEltX info -> Bool #
Is this a record field GRE?
Important: does not consult the GreInfo field.
isDuplicateRecFldGRE :: GlobalRdrElt -> Bool #
Is this a record field defined with DuplicateRecordFields?
isNoFieldSelectorGRE :: GlobalRdrElt -> Bool #
Is this a record field defined with NoFieldSelectors? (See Note [NoFieldSelectors] in GHC.Rename.Env)
isFieldSelectorGRE :: GlobalRdrElt -> Bool #
Is this a record field defined with FieldSelectors? (See Note [NoFieldSelectors] in GHC.Rename.Env)
greFieldLabel_maybe :: GlobalRdrElt -> Maybe FieldLabel #
Returns the field label of this GRE, if it has one
unQualOK :: GlobalRdrEltX info -> Bool #
Test if an unqualified version of this thing would be in scope
pickGREs :: RdrName -> [GlobalRdrEltX info] -> [GlobalRdrEltX info] #
Takes a list of GREs which have the right OccName x
Pick those GREs that are in scope
* Qualified, as x if want_qual is Qual M _
* Unqualified, as x if want_unqual is Unqual _
Return each such GRE, with its ImportSpecs filtered, to reflect how it is in scope qualified or unqualified respectively. See Note [GRE filtering]
pickGREsModExp :: ModuleName -> [GlobalRdrEltX info] -> [(GlobalRdrEltX info, GlobalRdrEltX info)] #
Pick GREs that are in scope *both* qualified *and* unqualified Return each GRE that is, as a pair (qual_gre, unqual_gre) These two GREs are the original GRE with imports filtered to express how it is in scope qualified an unqualified respectively
Used only for the 'module M' item in export list;
see exports_from_avail
mkGlobalRdrEnv :: [GlobalRdrElt] -> GlobalRdrEnv #
insertGRE :: GlobalRdrElt -> [GlobalRdrElt] -> [GlobalRdrElt] #
plusGRE :: GlobalRdrElt -> GlobalRdrElt -> GlobalRdrElt #
transformGREs :: (GlobalRdrElt -> GlobalRdrElt) -> [OccName] -> GlobalRdrEnv -> GlobalRdrEnv #
Apply a transformation function to the GREs for these OccNames
Arguments
| :: Bool | discard names that are only available qualified? |
| -> GlobalRdrEnv | |
| -> GlobalRdrEnv | |
| -> GlobalRdrEnv |
greClashesWith :: GlobalRdrElt -> GlobalRdrElt -> Bool #
greClashesWith new_gre old_gre computes whether new_gre clashes
with old_gre (assuming they both have the same underlying occNameFS).
bestImport :: NonEmpty ImportSpec -> ImportSpec #
unQualSpecOK :: ImportSpec -> Bool #
Is in scope unqualified?
qualSpecOK :: ModuleName -> ImportSpec -> Bool #
Is in scope qualified with the given module?
importSpecLoc :: ImportSpec -> SrcSpan #
isExplicitItem :: ImpItemSpec -> Bool #
pprNameProvenance :: GlobalRdrEltX info -> SDoc #
Print out one place where the name was define/imported (With -dppr-debug, print them all)
Used to describe warnings and errors
o The message has a file/line/column heading,
plus "warning:" or "error:",
added by mkLocMessage
o With SevIgnore the message is suppressed
o Output is intended for end users
Constructors
| SevIgnore | Ignore this message, for example in case of suppression of warnings users don't want to see. See Note [Suppressing Messages] |
| SevWarning | |
| SevError |
Instances
| ToJson Severity | |
Defined in GHC.Types.Error | |
| Outputable Severity | |
Defined in GHC.Types.Error | |
| Show Severity | |
| Eq Severity | |
| Ord Severity | |
Defined in GHC.Types.Error | |
emptyMessages :: Messages e #
mkPlainErrorMsgEnvelope :: Diagnostic e => SrcSpan -> e -> MsgEnvelope e #
Variant of mkPlainMsgEnvelope which can be used when we are sure we
are constructing a diagnostic with a ErrorWithoutFlag reason.
Constructors
| HsSrcFile | .hs file |
| HsBootOrSig !HsBootOrSig | .hs-boot or .hsig file |
Bundled Patterns
| pattern HsigFile :: HscSource | |
| pattern HsBootFile :: HscSource |
Instances
| Binary HscSource | |
| Show HscSource | |
| Eq HscSource | |
| Ord HscSource | |
module GHC.Types.SourceText
module GHC.Types.TyThing
module GHC.Types.TyThing.Ppr
module GHC.Types.Unique.Supply
Variable
Essentially a typed Name, that may also contain some additional information
about the Var and its use sites.
Instances
| ModifyState Id | |
Defined in GHC.Iface.Ext.Ast Methods addSubstitution :: Id -> Id -> HieState -> HieState | |
| NamedThing Var | |
Defined in GHC.Types.Var | |
| HasOccName Var | |
Defined in GHC.Types.Var | |
| Uniquable Var | |
Defined in GHC.Types.Var | |
| Outputable Var | |
Defined in GHC.Types.Var | |
| Data Var | |
Defined in GHC.Types.Var Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Var -> c Var # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Var # dataTypeOf :: Var -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Var) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Var) # gmapT :: (forall b. Data b => b -> b) -> Var -> Var # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQ :: (forall d. Data d => d -> u) -> Var -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Var -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # | |
| Eq Var | |
| Ord Var | |
| ToHie (Context (Located Var)) | |
| Eq (DeBruijn Var) | |
| OutputableBndr (Id, TagSig) | |
Defined in GHC.Stg.InferTags.TagSig Methods pprBndr :: BindingSite -> (Id, TagSig) -> SDoc # pprPrefixOcc :: (Id, TagSig) -> SDoc # pprInfixOcc :: (Id, TagSig) -> SDoc # bndrIsJoin_maybe :: (Id, TagSig) -> JoinPointHood # | |
| type Anno Id | |
Defined in GHC.Hs.Extension | |
setVarUnique :: Var -> Unique -> Var #
setTyVarUnique :: TyVar -> Unique -> TyVar #
A generic module is a pair of a unit identifier and a ModuleName.
Constructors
| Module !unit !ModuleName |
Instances
| Uniquable Module | |
Defined in GHC.Unit.Types | |
| Outputable InstalledModule | |
Defined in GHC.Unit.Types Methods ppr :: InstalledModule -> SDoc # | |
| Outputable InstantiatedModule | |
Defined in GHC.Unit.Types Methods ppr :: InstantiatedModule -> SDoc # | |
| Outputable Module | |
Defined in GHC.Unit.Types | |
| Functor GenModule | |
| Show Module # | |
| NFData (GenModule a) | |
Defined in GHC.Unit.Types | |
| Binary a => Binary (GenModule a) | |
| Data unit => Data (GenModule unit) | |
Defined in GHC.Unit.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GenModule unit -> c (GenModule unit) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (GenModule unit) # toConstr :: GenModule unit -> Constr # dataTypeOf :: GenModule unit -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (GenModule unit)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (GenModule unit)) # gmapT :: (forall b. Data b => b -> b) -> GenModule unit -> GenModule unit # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GenModule unit -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GenModule unit -> r # gmapQ :: (forall d. Data d => d -> u) -> GenModule unit -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> GenModule unit -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> GenModule unit -> m (GenModule unit) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GenModule unit -> m (GenModule unit) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GenModule unit -> m (GenModule unit) # | |
| Eq unit => Eq (GenModule unit) | |
| Ord unit => Ord (GenModule unit) | |
Defined in GHC.Unit.Types Methods compare :: GenModule unit -> GenModule unit -> Ordering # (<) :: GenModule unit -> GenModule unit -> Bool # (<=) :: GenModule unit -> GenModule unit -> Bool # (>) :: GenModule unit -> GenModule unit -> Bool # (>=) :: GenModule unit -> GenModule unit -> Bool # | |
newtype ModuleName #
A ModuleName is essentially a simple string, e.g. Data.List.
Constructors
| ModuleName FastString |
Instances
| NFData ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name Methods rnf :: ModuleName -> () # | |
| Uniquable ModuleName | |
Defined in GHC.Types.Unique Methods getUnique :: ModuleName -> Unique # | |
| Binary ModuleName | |
Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> ModuleName -> IO () # put :: BinHandle -> ModuleName -> IO (Bin ModuleName) # get :: BinHandle -> IO ModuleName # | |
| Outputable ModuleName | |
Defined in GHC.Utils.Outputable Methods ppr :: ModuleName -> SDoc # | |
| Data ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModuleName -> c ModuleName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ModuleName # toConstr :: ModuleName -> Constr # dataTypeOf :: ModuleName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ModuleName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ModuleName) # gmapT :: (forall b. Data b => b -> b) -> ModuleName -> ModuleName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ModuleName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ModuleName -> r # gmapQ :: (forall d. Data d => d -> u) -> ModuleName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ModuleName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName # | |
| Show ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name Methods showsPrec :: Int -> ModuleName -> ShowS # show :: ModuleName -> String # showList :: [ModuleName] -> ShowS # | |
| Eq ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name | |
| Ord ModuleName | |
Defined in Language.Haskell.Syntax.Module.Name Methods compare :: ModuleName -> ModuleName -> Ordering # (<) :: ModuleName -> ModuleName -> Bool # (<=) :: ModuleName -> ModuleName -> Bool # (>) :: ModuleName -> ModuleName -> Bool # (>=) :: ModuleName -> ModuleName -> Bool # max :: ModuleName -> ModuleName -> ModuleName # min :: ModuleName -> ModuleName -> ModuleName # | |
| Hashable ModuleName # | |
Defined in Development.IDE.GHC.Orphans | |
| ToHie (IEContext (LocatedA ModuleName)) | |
Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type] | |
| type Anno ModuleName | |
Defined in GHC.Hs | |
| type Anno ModuleName | |
Defined in GHC.Hs.ImpExp | |
stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering #
Compares module names lexically, rather than by their Uniques
moduleNameFS :: ModuleName -> FastString #
moduleNameString :: ModuleName -> String #
mkModuleName :: String -> ModuleName #
mkModuleNameFS :: FastString -> ModuleName #
moduleNameSlashes :: ModuleName -> String #
Returns the string version of the module name, with dots replaced by slashes.
moduleNameColons :: ModuleName -> String #
Returns the string version of the module name, with dots replaced by colons.
data IsBootInterface #
Indicates whether a module name is referring to a boot interface (hs-boot file) or regular module (hs file). We need to treat boot modules specially when building compilation graphs, since they break cycles. Regular source files and signature files are treated equivalently.
Instances
| Data IsBootInterface | |
Defined in Language.Haskell.Syntax.ImpExp Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IsBootInterface -> c IsBootInterface # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IsBootInterface # toConstr :: IsBootInterface -> Constr # dataTypeOf :: IsBootInterface -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IsBootInterface) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IsBootInterface) # gmapT :: (forall b. Data b => b -> b) -> IsBootInterface -> IsBootInterface # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IsBootInterface -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IsBootInterface -> r # gmapQ :: (forall d. Data d => d -> u) -> IsBootInterface -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IsBootInterface -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IsBootInterface -> m IsBootInterface # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IsBootInterface -> m IsBootInterface # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IsBootInterface -> m IsBootInterface # | |
| Show IsBootInterface | |
Defined in Language.Haskell.Syntax.ImpExp Methods showsPrec :: Int -> IsBootInterface -> ShowS # show :: IsBootInterface -> String # showList :: [IsBootInterface] -> ShowS # | |
| Eq IsBootInterface | |
Defined in Language.Haskell.Syntax.ImpExp Methods (==) :: IsBootInterface -> IsBootInterface -> Bool # (/=) :: IsBootInterface -> IsBootInterface -> Bool # | |
| Ord IsBootInterface | |
Defined in Language.Haskell.Syntax.ImpExp Methods compare :: IsBootInterface -> IsBootInterface -> Ordering # (<) :: IsBootInterface -> IsBootInterface -> Bool # (<=) :: IsBootInterface -> IsBootInterface -> Bool # (>) :: IsBootInterface -> IsBootInterface -> Bool # (>=) :: IsBootInterface -> IsBootInterface -> Bool # max :: IsBootInterface -> IsBootInterface -> IsBootInterface # min :: IsBootInterface -> IsBootInterface -> IsBootInterface # | |
A unit identifier identifies a (possibly partially) instantiated library.
It is primarily used as part of Module, which in turn is used in Name,
which is used to give names to entities when typechecking.
There are two possible forms for a Unit:
1) It can be a RealUnit, in which case we just have a DefUnitId that
uniquely identifies some fully compiled, installed library we have on disk.
2) It can be an VirtUnit. When we are typechecking a library with missing
holes, we may need to instantiate a library on the fly (in which case we
don't have any on-disk representation.) In that case, you have an
InstantiatedUnit, which explicitly records the instantiation, so that we
can substitute over it.
Constructors
| RealUnit !(Definite uid) | Installed definite unit (either a fully instantiated unit or a closed unit) |
| VirtUnit !(GenInstantiatedUnit uid) | Virtual unit instantiated on-the-fly. It may be definite if all the holes are instantiated but we don't have code objects for it. |
| HoleUnit | Fake hole unit |
Instances
| NFData Unit | |
Defined in GHC.Unit.Types | |
| Uniquable Module | |
Defined in GHC.Unit.Types | |
| Binary Unit | |
| Outputable Module | |
Defined in GHC.Unit.Types | |
| Outputable Unit | |
Defined in GHC.Unit.Types | |
| Data Unit | |
Defined in GHC.Unit.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Unit -> c Unit # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Unit # dataTypeOf :: Unit -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Unit) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Unit) # gmapT :: (forall b. Data b => b -> b) -> Unit -> Unit # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Unit -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Unit -> r # gmapQ :: (forall d. Data d => d -> u) -> Unit -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Unit -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Unit -> m Unit # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Unit -> m Unit # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Unit -> m Unit # | |
| Show Module # | |
| Show Unit | |
| Ord Unit | |
| IsUnitId u => Uniquable (GenUnit u) | |
Defined in GHC.Unit.Types | |
| IsUnitId u => IsUnitId (GenUnit u) | |
Defined in GHC.Unit.Types Methods unitFS :: GenUnit u -> FastString # | |
| IsUnitId u => Eq (GenUnit u) | |
type ModuleWithIsBoot = GenWithIsBoot Module #
data GenWithIsBoot mod #
This data type just pairs a value mod with an IsBootInterface flag. In
practice, mod is usually a Module or ModuleName'.
Constructors
| GWIB | |
Fields
| |
Instances
| Functor GenWithIsBoot | |
Defined in GHC.Unit.Types Methods fmap :: (a -> b) -> GenWithIsBoot a -> GenWithIsBoot b # (<$) :: a -> GenWithIsBoot b -> GenWithIsBoot a # | |
| Foldable GenWithIsBoot | |
Defined in GHC.Unit.Types Methods fold :: Monoid m => GenWithIsBoot m -> m # foldMap :: Monoid m => (a -> m) -> GenWithIsBoot a -> m # foldMap' :: Monoid m => (a -> m) -> GenWithIsBoot a -> m # foldr :: (a -> b -> b) -> b -> GenWithIsBoot a -> b # foldr' :: (a -> b -> b) -> b -> GenWithIsBoot a -> b # foldl :: (b -> a -> b) -> b -> GenWithIsBoot a -> b # foldl' :: (b -> a -> b) -> b -> GenWithIsBoot a -> b # foldr1 :: (a -> a -> a) -> GenWithIsBoot a -> a # foldl1 :: (a -> a -> a) -> GenWithIsBoot a -> a # toList :: GenWithIsBoot a -> [a] # null :: GenWithIsBoot a -> Bool # length :: GenWithIsBoot a -> Int # elem :: Eq a => a -> GenWithIsBoot a -> Bool # maximum :: Ord a => GenWithIsBoot a -> a # minimum :: Ord a => GenWithIsBoot a -> a # sum :: Num a => GenWithIsBoot a -> a # product :: Num a => GenWithIsBoot a -> a # | |
| Traversable GenWithIsBoot | |
Defined in GHC.Unit.Types Methods traverse :: Applicative f => (a -> f b) -> GenWithIsBoot a -> f (GenWithIsBoot b) # sequenceA :: Applicative f => GenWithIsBoot (f a) -> f (GenWithIsBoot a) # mapM :: Monad m => (a -> m b) -> GenWithIsBoot a -> m (GenWithIsBoot b) # sequence :: Monad m => GenWithIsBoot (m a) -> m (GenWithIsBoot a) # | |
| Binary a => Binary (GenWithIsBoot a) | |
Defined in GHC.Unit.Types Methods put_ :: BinHandle -> GenWithIsBoot a -> IO () # put :: BinHandle -> GenWithIsBoot a -> IO (Bin (GenWithIsBoot a)) # get :: BinHandle -> IO (GenWithIsBoot a) # | |
| Outputable a => Outputable (GenWithIsBoot a) | |
Defined in GHC.Unit.Types Methods ppr :: GenWithIsBoot a -> SDoc # | |
| Show mod => Show (GenWithIsBoot mod) | |
Defined in GHC.Unit.Types Methods showsPrec :: Int -> GenWithIsBoot mod -> ShowS # show :: GenWithIsBoot mod -> String # showList :: [GenWithIsBoot mod] -> ShowS # | |
| Eq mod => Eq (GenWithIsBoot mod) | |
Defined in GHC.Unit.Types Methods (==) :: GenWithIsBoot mod -> GenWithIsBoot mod -> Bool # (/=) :: GenWithIsBoot mod -> GenWithIsBoot mod -> Bool # | |
| Ord mod => Ord (GenWithIsBoot mod) | |
Defined in GHC.Unit.Types Methods compare :: GenWithIsBoot mod -> GenWithIsBoot mod -> Ordering # (<) :: GenWithIsBoot mod -> GenWithIsBoot mod -> Bool # (<=) :: GenWithIsBoot mod -> GenWithIsBoot mod -> Bool # (>) :: GenWithIsBoot mod -> GenWithIsBoot mod -> Bool # (>=) :: GenWithIsBoot mod -> GenWithIsBoot mod -> Bool # max :: GenWithIsBoot mod -> GenWithIsBoot mod -> GenWithIsBoot mod # min :: GenWithIsBoot mod -> GenWithIsBoot mod -> GenWithIsBoot mod # | |
A definite unit (i.e. without any free module hole)
Constructors
| Definite | |
Fields
| |
Instances
| Functor Definite | |
| Uniquable unit => Uniquable (Definite unit) | |
Defined in GHC.Unit.Types | |
| IsUnitId unit => IsUnitId (Definite unit) | |
Defined in GHC.Unit.Types Methods unitFS :: Definite unit -> FastString # | |
| Binary unit => Binary (Definite unit) | |
| Outputable unit => Outputable (Definite unit) | |
Defined in GHC.Unit.Types | |
| Eq unit => Eq (Definite unit) | |
| Ord unit => Ord (Definite unit) | |
Defined in GHC.Unit.Types Methods compare :: Definite unit -> Definite unit -> Ordering # (<) :: Definite unit -> Definite unit -> Bool # (<=) :: Definite unit -> Definite unit -> Bool # (>) :: Definite unit -> Definite unit -> Bool # (>=) :: Definite unit -> Definite unit -> Bool # | |
unitIdFS :: UnitId -> FastString #
The full hashed unit identifier, including the component id and the hash.
type Instantiations = GenInstantiations UnitId #
type GenInstantiations unit = [(ModuleName, GenModule (GenUnit unit))] #
data GenInstantiatedUnit unit #
An instantiated unit.
It identifies an indefinite library (with holes) that has been instantiated.
This unit may be indefinite or not (i.e. with remaining holes or not). If it is definite, we don't know if it has already been compiled and installed in a database. Nevertheless, we have a mechanism called "improvement" to try to match a fully instantiated unit with existing compiled and installed units: see Note [VirtUnit to RealUnit improvement].
An indefinite unit identifier pretty-prints to something like
p[H=H,A=aimpl:A>] (p is the UnitId, and the
brackets enclose the module substitution).
Constructors
| InstantiatedUnit | |
Fields
| |
Instances
| Binary InstantiatedUnit | |
Defined in GHC.Unit.Types Methods put_ :: BinHandle -> InstantiatedUnit -> IO () # put :: BinHandle -> InstantiatedUnit -> IO (Bin InstantiatedUnit) # get :: BinHandle -> IO InstantiatedUnit # | |
| Outputable InstantiatedModule | |
Defined in GHC.Unit.Types Methods ppr :: InstantiatedModule -> SDoc # | |
| Outputable InstantiatedUnit | |
Defined in GHC.Unit.Types Methods ppr :: InstantiatedUnit -> SDoc # | |
| Eq (GenInstantiatedUnit unit) | |
Defined in GHC.Unit.Types Methods (==) :: GenInstantiatedUnit unit -> GenInstantiatedUnit unit -> Bool # (/=) :: GenInstantiatedUnit unit -> GenInstantiatedUnit unit -> Bool # | |
| Ord (GenInstantiatedUnit unit) | |
Defined in GHC.Unit.Types Methods compare :: GenInstantiatedUnit unit -> GenInstantiatedUnit unit -> Ordering # (<) :: GenInstantiatedUnit unit -> GenInstantiatedUnit unit -> Bool # (<=) :: GenInstantiatedUnit unit -> GenInstantiatedUnit unit -> Bool # (>) :: GenInstantiatedUnit unit -> GenInstantiatedUnit unit -> Bool # (>=) :: GenInstantiatedUnit unit -> GenInstantiatedUnit unit -> Bool # max :: GenInstantiatedUnit unit -> GenInstantiatedUnit unit -> GenInstantiatedUnit unit # min :: GenInstantiatedUnit unit -> GenInstantiatedUnit unit -> GenInstantiatedUnit unit # | |
A unit key in the database
Constructors
| UnitKey FastString |
Instances
| IsUnitId UnitKey | |
Defined in GHC.Unit.Types Methods unitFS :: UnitKey -> FastString # | |
Class for types that are used as unit identifiers (UnitKey, UnitId, Unit)
We need this class because we create new unit ids for virtual units (see VirtUnit) and they have to to be made from units with different kinds of identifiers.
Methods
unitFS :: u -> FastString #
Instances
| IsUnitId UnitId | |
Defined in GHC.Unit.Types Methods unitFS :: UnitId -> FastString # | |
| IsUnitId UnitKey | |
Defined in GHC.Unit.Types Methods unitFS :: UnitKey -> FastString # | |
| IsUnitId unit => IsUnitId (Definite unit) | |
Defined in GHC.Unit.Types Methods unitFS :: Definite unit -> FastString # | |
| IsUnitId u => IsUnitId (GenUnit u) | |
Defined in GHC.Unit.Types Methods unitFS :: GenUnit u -> FastString # | |
type InstantiatedModule = GenModule InstantiatedUnit #
An InstantiatedModule is a Module whose unit is identified with an InstantiatedUnit.
type HomeUnitModule = GenModule UnitId #
A HomeUnitModule is like an InstalledModule but we expect to find it in
one of the home units rather than the package database.
type InstalledModule = GenModule UnitId #
A InstalledModule is a Module whose unit is identified with an
UnitId.
moduleUnitId :: Module -> UnitId #
mkModule :: u -> ModuleName -> GenModule u #
isHoleUnit :: GenUnit u -> Bool #
stableUnitCmp :: Unit -> Unit -> Ordering #
Compares unit ids lexically, rather than by their Uniques
unitFreeModuleHoles :: GenUnit u -> UniqDSet ModuleName #
Retrieve the set of free module holes of a Unit.
moduleFreeHoles :: GenModule (GenUnit u) -> UniqDSet ModuleName #
Calculate the free holes of a Module. If this set is non-empty,
this module was defined in an indefinite library that had required
signatures.
If a module has free holes, that means that substitutions can operate on it; if it has no free holes, substituting over a module has no effect.
mkInstantiatedUnit :: IsUnitId u => u -> GenInstantiations u -> GenInstantiatedUnit u #
Create a new GenInstantiatedUnit given an explicit module substitution.
mkVirtUnit :: IsUnitId u => u -> [(ModuleName, GenModule (GenUnit u))] -> GenUnit u #
Smart constructor for instantiated GenUnit
mkInstantiatedUnitHash :: IsUnitId u => u -> [(ModuleName, GenModule (GenUnit u))] -> FastString #
Generate a uniquely identifying hash (internal unit-id) for an instantiated unit.
This is a one-way function. If the indefinite unit has not been instantiated at all, we return its unit-id.
This hash is completely internal to GHC and is not used for symbol names or file paths. It is different from the hash Cabal would produce for the same instantiated unit.
fsToUnit :: FastString -> Unit #
Create a new simple unit identifier from a FastString. Internally,
this is primarily used to specify wired-in unit identifiers.
unitString :: IsUnitId u => u -> String #
stringToUnit :: String -> Unit #
mapInstantiations :: IsUnitId v => (u -> v) -> GenInstantiations u -> GenInstantiations v #
Map over the unit identifier of unit instantiations.
virtualUnitId :: InstantiatedUnit -> UnitId #
Return the virtual UnitId of an on-the-fly instantiated unit.
unitIsDefinite :: Unit -> Bool #
A Unit is definite if it has no free holes.
unitIdString :: UnitId -> String #
stringToUnitId :: String -> UnitId #
primUnitId :: UnitId #
bignumUnitId :: UnitId #
baseUnitId :: UnitId #
thisGhcUnitId :: UnitId #
bignumUnit :: Unit #
ghcInternalUnit :: Unit #
thisGhcUnit :: Unit #
interactiveUnit :: Unit #
mainUnitId :: UnitId #
This is the package Id for the current program. It is the default package Id if you don't specify a package name. We don't add this prefix to symbol names, since there can be only one main package per program.
isInteractiveModule :: Module -> Bool #
wiredInUnitIds :: [UnitId] #
addBootSuffix :: FilePath -> FilePath #
Add the -boot suffix to .hs, .hi and .o files
removeBootSuffix :: FilePath -> FilePath #
Remove the -boot suffix to .hs, .hi and .o files
addBootSuffix_maybe :: IsBootInterface -> FilePath -> FilePath #
Add the -boot suffix if the Bool argument is True
addBootSuffixLocn :: ModLocation -> ModLocation #
Add the -boot suffix to all file paths associated with the module
addBootSuffixLocnOut :: ModLocation -> ModLocation #
Add the -boot suffix to all output file paths associated with the
module, not including the input file itself
data InstalledModuleEnv elt #
A map keyed off of InstalledModule
Instances
| Outputable elt => Outputable (InstalledModuleEnv elt) | |
Defined in GHC.Unit.Module.Env Methods ppr :: InstalledModuleEnv elt -> SDoc # | |
type DModuleNameEnv elt = UniqDFM ModuleName elt #
A map keyed off of ModuleNames (actually, their Uniques)
Has deterministic folds and can be deterministically converted to a list
type ModuleNameEnv elt = UniqFM ModuleName elt #
A map keyed off of ModuleNames (actually, their Uniques)
A map keyed off of Modules
Instances
| Outputable a => Outputable (ModuleEnv a) | |
Defined in GHC.Unit.Module.Env | |
elemModuleEnv :: Module -> ModuleEnv a -> Bool #
extendModuleEnv :: ModuleEnv a -> Module -> a -> ModuleEnv a #
extendModuleEnvWith :: (a -> a -> a) -> ModuleEnv a -> Module -> a -> ModuleEnv a #
extendModuleEnvList :: ModuleEnv a -> [(Module, a)] -> ModuleEnv a #
extendModuleEnvList_C :: (a -> a -> a) -> ModuleEnv a -> [(Module, a)] -> ModuleEnv a #
plusModuleEnv_C :: (a -> a -> a) -> ModuleEnv a -> ModuleEnv a -> ModuleEnv a #
delModuleEnvList :: ModuleEnv a -> [Module] -> ModuleEnv a #
delModuleEnv :: ModuleEnv a -> Module -> ModuleEnv a #
plusModuleEnv :: ModuleEnv a -> ModuleEnv a -> ModuleEnv a #
lookupModuleEnv :: ModuleEnv a -> Module -> Maybe a #
lookupWithDefaultModuleEnv :: ModuleEnv a -> a -> Module -> a #
mapModuleEnv :: (a -> b) -> ModuleEnv a -> ModuleEnv b #
mkModuleEnv :: [(Module, a)] -> ModuleEnv a #
emptyModuleEnv :: ModuleEnv a #
moduleEnvKeys :: ModuleEnv a -> [Module] #
moduleEnvElts :: ModuleEnv a -> [a] #
moduleEnvToList :: ModuleEnv a -> [(Module, a)] #
unitModuleEnv :: Module -> a -> ModuleEnv a #
isEmptyModuleEnv :: ModuleEnv a -> Bool #
mkModuleSet :: [Module] -> ModuleSet #
extendModuleSet :: ModuleSet -> Module -> ModuleSet #
extendModuleSetList :: ModuleSet -> [Module] -> ModuleSet #
isEmptyModuleSet :: ModuleSet -> Bool #
moduleSetElts :: ModuleSet -> [Module] #
elemModuleSet :: Module -> ModuleSet -> Bool #
intersectModuleSet :: ModuleSet -> ModuleSet -> ModuleSet #
minusModuleSet :: ModuleSet -> ModuleSet -> ModuleSet #
delModuleSet :: ModuleSet -> Module -> ModuleSet #
unionModuleSet :: ModuleSet -> ModuleSet -> ModuleSet #
unionManyModuleSets :: [ModuleSet] -> ModuleSet #
unitModuleSet :: Module -> ModuleSet #
lookupInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> Maybe a #
extendInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> a -> InstalledModuleEnv a #
filterInstalledModuleEnv :: (InstalledModule -> a -> Bool) -> InstalledModuleEnv a -> InstalledModuleEnv a #
installedModuleEnvElts :: InstalledModuleEnv a -> [(InstalledModule, a)] #
mergeInstalledModuleEnv :: (elta -> eltb -> Maybe eltc) -> (InstalledModuleEnv elta -> InstalledModuleEnv eltc) -> (InstalledModuleEnv eltb -> InstalledModuleEnv eltc) -> InstalledModuleEnv elta -> InstalledModuleEnv eltb -> InstalledModuleEnv eltc #
plusInstalledModuleEnv :: (elt -> elt -> elt) -> InstalledModuleEnv elt -> InstalledModuleEnv elt -> InstalledModuleEnv elt #
class HasModule (m :: Type -> Type) where #
Instances
| HasModule NatM | |
Defined in GHC.CmmToAsm.Monad | |
| HasModule CoreM | |
Defined in GHC.Core.Opt.Monad | |
| HasModule TcS | |
Defined in GHC.Tc.Solver.Monad | |
| ContainsModule env => HasModule (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
class ContainsModule t where #
Methods
extractModule :: t -> Module #
Instances
| ContainsModule DsGblEnv | |
Defined in GHC.HsToCore.Types Methods extractModule :: DsGblEnv -> Module # | |
| ContainsModule TcGblEnv | |
Defined in GHC.Tc.Types Methods extractModule :: TcGblEnv -> Module # | |
| ContainsModule gbl => ContainsModule (Env gbl lcl) | |
Defined in GHC.Tc.Types Methods extractModule :: Env gbl lcl -> Module # | |
moduleIsDefinite :: Module -> Bool #
A Module is definite if it has no free holes.
moduleStableString :: Module -> String #
Get a string representation of a Module that's unique and stable
across recompilations.
eg. "$aeson_70dylHtv1FFGeai1IoxcQr$Data.Aeson.Types.Internal"
stableModuleCmp :: Module -> Module -> Ordering #
This gives a stable ordering, as opposed to the Ord instance which
gives an ordering based on the Uniques of the components, which may
not be stable from run to run of the compiler.
installedModuleEq :: InstalledModule -> Module -> Bool #
Test if a Module corresponds to a given InstalledModule,
modulo instantiation.
getModuleInstantiation :: Module -> (InstalledModule, Maybe InstantiatedModule) #
Given a possibly on-the-fly instantiated module, split it into
a Module that we definitely can find on-disk, as well as an
instantiation if we need to instantiate it on the fly. If the
instantiation is Nothing no on-the-fly renaming is needed.
getUnitInstantiations :: Unit -> (UnitId, Maybe InstantiatedUnit) #
Return the unit-id this unit is an instance of and the module instantiations (if any).
uninstantiateInstantiatedUnit :: InstantiatedUnit -> InstantiatedUnit #
Remove instantiations of the given instantiated unit
uninstantiateInstantiatedModule :: InstantiatedModule -> InstantiatedModule #
Remove instantiations of the given module instantiated unit
isHoleModule :: GenModule (GenUnit u) -> Bool #
Test if a Module is not instantiated
mkHoleModule :: ModuleName -> GenModule (GenUnit u) #
Create a hole Module
module GHC.Unit.Module.Graph
Syntax re-exports
Haskell Module
All we actually declare here is the top-level structure for a module.
Constructors
| HsModule | |
Fields
| |
| XModule !(XXModule p) | |
module GHC.Hs.Binds
module GHC.Parser
mkPrelImports :: ModuleName -> SrcSpan -> Bool -> [LImportDecl GhcPs] -> [LImportDecl GhcPs] #
Arguments
| :: ParserOpts | |
| -> FilePath | Input file |
| -> IO (Messages PsMessage, [Located String]) | Parsed options, if any. |
Parse OPTIONS and LANGUAGE pragmas of the source file.
Throws a SourceError if flag parsing fails (including unsupported flags.)
Arguments
| :: ParserOpts | |
| -> StringBuffer | Input Buffer |
| -> FilePath | Source filename. Used for location info. |
| -> (Messages PsMessage, [Located String]) | warnings and parsed options. |
Parse OPTIONS and LANGUAGE pragmas of the source file.
Throws a SourceError if flag parsing fails (including unsupported flags.)
checkProcessArgsResult :: MonadIO m => [Located String] -> m () #
Complain about non-dynamic flags in OPTIONS pragmas.
Throws a SourceError if the input list is non-empty claiming that the
input flags are unknown.
Constructors
| ITas | |
| ITcase | |
| ITclass | |
| ITdata | |
| ITdefault | |
| ITderiving | |
| ITdo (Maybe FastString) | |
| ITelse | |
| IThiding | |
| ITforeign | |
| ITif | |
| ITimport | |
| ITin | |
| ITinfix | |
| ITinfixl | |
| ITinfixr | |
| ITinstance | |
| ITlet | |
| ITmodule | |
| ITnewtype | |
| ITof | |
| ITqualified | |
| ITthen | |
| ITtype | |
| ITwhere | |
| ITforall IsUnicodeSyntax | |
| ITexport | |
| ITlabel | |
| ITdynamic | |
| ITsafe | |
| ITinterruptible | |
| ITunsafe | |
| ITstdcallconv | |
| ITccallconv | |
| ITcapiconv | |
| ITprimcallconv | |
| ITjavascriptcallconv | |
| ITmdo (Maybe FastString) | |
| ITfamily | |
| ITrole | |
| ITgroup | |
| ITby | |
| ITusing | |
| ITpattern | |
| ITstatic | |
| ITstock | |
| ITanyclass | |
| ITvia | |
| ITunit | |
| ITsignature | |
| ITdependency | |
| ITrequires | |
| ITinline_prag SourceText InlineSpec RuleMatchInfo | |
| ITopaque_prag SourceText | |
| ITspec_prag SourceText | |
| ITspec_inline_prag SourceText Bool | |
| ITsource_prag SourceText | |
| ITrules_prag SourceText | |
| ITwarning_prag SourceText | |
| ITdeprecated_prag SourceText | |
| ITline_prag SourceText | |
| ITcolumn_prag SourceText | |
| ITscc_prag SourceText | |
| ITunpack_prag SourceText | |
| ITnounpack_prag SourceText | |
| ITann_prag SourceText | |
| ITcomplete_prag SourceText | |
| ITclose_prag | |
| IToptions_prag String | |
| ITinclude_prag String | |
| ITlanguage_prag | |
| ITminimal_prag SourceText | |
| IToverlappable_prag SourceText | |
| IToverlapping_prag SourceText | |
| IToverlaps_prag SourceText | |
| ITincoherent_prag SourceText | |
| ITctype SourceText | |
| ITcomment_line_prag | |
| ITdotdot | |
| ITcolon | |
| ITdcolon IsUnicodeSyntax | |
| ITequal | |
| ITlam | |
| ITlcase | |
| ITlcases | |
| ITvbar | |
| ITlarrow IsUnicodeSyntax | |
| ITrarrow IsUnicodeSyntax | |
| ITdarrow IsUnicodeSyntax | |
| ITlolly | |
| ITminus | |
| ITprefixminus | |
| ITbang | |
| ITtilde | |
| ITat | |
| ITtypeApp | |
| ITpercent | |
| ITstar IsUnicodeSyntax | |
| ITdot | |
| ITproj Bool | |
| ITbiglam | |
| ITocurly | |
| ITccurly | |
| ITvocurly | |
| ITvccurly | |
| ITobrack | |
| ITopabrack | |
| ITcpabrack | |
| ITcbrack | |
| IToparen | |
| ITcparen | |
| IToubxparen | |
| ITcubxparen | |
| ITsemi | |
| ITcomma | |
| ITunderscore | |
| ITbackquote | |
| ITsimpleQuote | |
| ITvarid FastString | |
| ITconid FastString | |
| ITvarsym FastString | |
| ITconsym FastString | |
| ITqvarid (FastString, FastString) | |
| ITqconid (FastString, FastString) | |
| ITqvarsym (FastString, FastString) | |
| ITqconsym (FastString, FastString) | |
| ITdupipvarid FastString | |
| ITlabelvarid SourceText FastString | |
| ITchar SourceText Char | |
| ITstring SourceText FastString | |
| ITinteger IntegralLit | |
| ITrational FractionalLit | |
| ITprimchar SourceText Char | |
| ITprimstring SourceText ByteString | |
| ITprimint SourceText Integer | |
| ITprimword SourceText Integer | |
| ITprimint8 SourceText Integer | |
| ITprimint16 SourceText Integer | |
| ITprimint32 SourceText Integer | |
| ITprimint64 SourceText Integer | |
| ITprimword8 SourceText Integer | |
| ITprimword16 SourceText Integer | |
| ITprimword32 SourceText Integer | |
| ITprimword64 SourceText Integer | |
| ITprimfloat FractionalLit | |
| ITprimdouble FractionalLit | |
| ITopenExpQuote HasE IsUnicodeSyntax | |
| ITopenPatQuote | |
| ITopenDecQuote | |
| ITopenTypQuote | |
| ITcloseQuote IsUnicodeSyntax | |
| ITopenTExpQuote HasE | |
| ITcloseTExpQuote | |
| ITdollar | |
| ITdollardollar | |
| ITtyQuote | |
| ITquasiQuote (FastString, FastString, PsSpan) | |
| ITqQuasiQuote (FastString, FastString, FastString, PsSpan) | |
| ITproc | |
| ITrec | |
| IToparenbar IsUnicodeSyntax | (| |
| ITcparenbar IsUnicodeSyntax | |) |
| ITlarrowtail IsUnicodeSyntax | -< |
| ITrarrowtail IsUnicodeSyntax | >- |
| ITLarrowtail IsUnicodeSyntax | -<< |
| ITRarrowtail IsUnicodeSyntax | >>- |
| ITunknown String | Used when the lexer can't make sense of it |
| ITeof | end of file token |
| ITdocComment HsDocString PsSpan | The HsDocString contains more details about what this is and how to pretty print it |
| ITdocOptions String PsSpan | doc options (prune, ignore-exports, etc) |
| ITlineComment String PsSpan | comment starting by "--" |
| ITblockComment String PsSpan | comment in {- -} |
Constructors
| PState | |
Fields
| |
The parsing monad, isomorphic to StateT PState Maybe.
Constructors
| P | |
Fields
| |
Instances
| MonadP P | |
Defined in GHC.Parser.Lexer Methods addError :: MsgEnvelope PsMessage -> P () # addWarning :: MsgEnvelope PsMessage -> P () # addFatalError :: MsgEnvelope PsMessage -> P a # allocateCommentsP :: RealSrcSpan -> P EpAnnComments # | |
| Applicative P | |
| Functor P | |
| Monad P | |
class Monad m => MonadP (m :: Type -> Type) where #
An mtl-style class for monads that support parsing-related operations. For example, sometimes we make a second pass over the parsing results to validate, disambiguate, or rearrange them, and we do so in the PV monad which cannot consume input but can report parsing errors, check for extension bits, and accumulate parsing annotations. Both P and PV are instances of MonadP.
MonadP grants us convenient overloading. The other option is to have separate operations for each monad: addErrorP vs addErrorPV, getBitP vs getBitPV, and so on.
Methods
addError :: MsgEnvelope PsMessage -> m () #
Add a non-fatal error. Use this when the parser can produce a result despite the error.
For example, when GHC encounters a forall in a type,
but -XExplicitForAll is disabled, the parser constructs ForAllTy
as if -XExplicitForAll was enabled, adding a non-fatal error to
the accumulator.
Control flow wise, non-fatal errors act like warnings: they are added to the accumulator and parsing continues. This allows GHC to report more than one parse error per file.
addWarning :: MsgEnvelope PsMessage -> m () #
Add a warning to the accumulator.
Use getPsMessages to get the accumulated warnings.
addFatalError :: MsgEnvelope PsMessage -> m a #
Add a fatal error. This will be the last error reported by the parser, and
the parser will not produce any result, ending in a PFailed state.
Check if a given flag is currently set in the bitmap.
allocateCommentsP :: RealSrcSpan -> m EpAnnComments #
Go through the comment_q in PState and remove all comments
that belong within the given span
allocatePriorCommentsP :: RealSrcSpan -> m EpAnnComments #
Go through the comment_q in PState and remove all comments
that come before or within the given span
allocateFinalCommentsP :: RealSrcSpan -> m EpAnnComments #
Go through the comment_q in PState and remove all comments
that come after the given span
Instances
| MonadP P | |
Defined in GHC.Parser.Lexer Methods addError :: MsgEnvelope PsMessage -> P () # addWarning :: MsgEnvelope PsMessage -> P () # addFatalError :: MsgEnvelope PsMessage -> P a # allocateCommentsP :: RealSrcSpan -> P EpAnnComments # | |
| MonadP PV | |
Defined in GHC.Parser.PostProcess Methods addError :: MsgEnvelope PsMessage -> PV () # addWarning :: MsgEnvelope PsMessage -> PV () # addFatalError :: MsgEnvelope PsMessage -> PV a # getBit :: ExtBits -> PV Bool # allocateCommentsP :: RealSrcSpan -> PV EpAnnComments # | |
Various boolean flags, mostly language extensions, that impact lexing and parsing. Note that a handful of these can change during lexing/parsing.
Constructors
| FfiBit | |
| InterruptibleFfiBit | |
| CApiFfiBit | |
| ArrowsBit | |
| ThBit | |
| ThQuotesBit | |
| IpBit | |
| OverloadedLabelsBit | |
| ExplicitForallBit | |
| BangPatBit | |
| PatternSynonymsBit | |
| HaddockBit | |
| MagicHashBit | |
| RecursiveDoBit | |
| QualifiedDoBit | |
| UnicodeSyntaxBit | |
| UnboxedParensBit | |
| DatatypeContextsBit | |
| MonadComprehensionsBit | |
| TransformComprehensionsBit | |
| QqBit | |
| RawTokenStreamBit | |
| AlternativeLayoutRuleBit | |
| ALRTransitionalBit | |
| RelaxedLayoutBit | |
| NondecreasingIndentationBit | |
| SafeHaskellBit | |
| TraditionalRecordSyntaxBit | |
| ExplicitNamespacesBit | |
| LambdaCaseBit | |
| BinaryLiteralsBit | |
| NegativeLiteralsBit | |
| HexFloatLiteralsBit | |
| StaticPointersBit | |
| NumericUnderscoresBit | |
| StarIsTypeBit | |
| BlockArgumentsBit | |
| NPlusKPatternsBit | |
| DoAndIfThenElseBit | |
| MultiWayIfBit | |
| GadtSyntaxBit | |
| ImportQualifiedPostBit | |
| LinearTypesBit | |
| NoLexicalNegationBit | |
| OverloadedRecordDotBit | |
| OverloadedRecordUpdateBit | |
| ExtendedLiteralsBit | |
| ListTuplePunsBit | |
| InRulePragBit | |
| InNestedCommentBit | |
| UsePosPragsBit | If this is enabled, '{-# LINE ... -#}' and '{-# COLUMN ... #-}' update the internal position. Otherwise, those pragmas are lexed as tokens of their own. |
data HdkComment #
Haddock comment as produced by the lexer. These are accumulated in PState
and then processed in GHC.Parser.PostProcess.Haddock. The location of the
HsDocStrings spans over the contents of the docstring - i.e. it does not
include the decorator ("-- |", "{-|" etc.)
Constructors
| HdkCommentNext HsDocString | |
| HdkCommentPrev HsDocString | |
| HdkCommentNamed String HsDocString | |
| HdkCommentSection Int HsDocString |
Instances
| Show HdkComment | |
Defined in GHC.Parser.Lexer Methods showsPrec :: Int -> HdkComment -> ShowS # show :: HdkComment -> String # showList :: [HdkComment] -> ShowS # | |
data ParserOpts #
Parser options.
See mkParserOpts to construct this.
Constructors
| ParserOpts | |
Fields
| |
data ParseResult a :: TYPE ('SumRep '['TupleRep '[LiftedRep, LiftedRep], LiftedRep]) where #
The result of running a parser.
Bundled Patterns
| pattern PFailed :: PState -> ParseResult a | The parser has consumed a (possibly empty) prefix of the input and failed. The carried parsing state can be used to resume parsing. It is the state
right before failure, including the fatal parse error. |
| pattern POk :: PState -> a -> ParseResult a | The parser has consumed a (possibly empty) prefix of the input and produced
a result. Use The carried parsing state can be used to resume parsing. |
warnopt :: WarningFlag -> ParserOpts -> Bool #
Test whether a WarningFlag is set
failLocMsgP :: RealSrcLoc -> RealSrcLoc -> (SrcSpan -> MsgEnvelope PsMessage) -> P a #
setSrcLoc :: RealSrcLoc -> P () #
setLastToken :: PsSpan -> Int -> P () #
adjustChar :: Char -> Word8 #
pushLexState :: Int -> P () #
popLexState :: P Int #
getLexState :: P Int #
activeContext :: P Bool #
Arguments
| :: EnumSet Extension | permitted language extensions enabled |
| -> DiagOpts | diagnostic options |
| -> [String] | Supported Languages and Extensions |
| -> Bool | are safe imports on? |
| -> Bool | keeping Haddock comment tokens |
| -> Bool | keep regular comment tokens |
| -> Bool | If this is enabled, '{-# LINE ... -#}' and '{-# COLUMN ... #-}' update
the internal position kept by the parser. Otherwise, those pragmas are
lexed as |
| -> ParserOpts |
Given exactly the information needed, set up the ParserOpts
disableHaddock :: ParserOpts -> ParserOpts #
initPragState :: ParserOpts -> StringBuffer -> RealSrcLoc -> PState #
Set parser options for parsing OPTIONS pragmas
getCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments #
getPriorCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments #
getFinalCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments #
getEofPos :: P (Maybe (Pair RealSrcSpan RealSrcSpan)) #
addPsMessage :: SrcSpan -> PsMessage -> P () #
getPsErrorMessages :: PState -> Messages PsMessage #
Get a bag of the errors that have been accumulated so far. Does not take -Werror into account.
popContext :: P () #
pushModuleContext :: P () #
srcParseFail :: P a #
lexTokenStream :: ParserOpts -> StringBuffer -> RealSrcLoc -> ParseResult [Located Token] #
mkParensEpAnn :: RealSrcSpan -> (AddEpAnn, AddEpAnn) #
Given a RealSrcSpan that surrounds a HsPar or HsParTy, generate
AddEpAnn values for the opening and closing bordering on the start
and end of the span
allocateComments :: RealSrcSpan -> [LEpaComment] -> ([LEpaComment], [LEpaComment]) #
allocatePriorComments :: RealSrcSpan -> [LEpaComment] -> Maybe [LEpaComment] -> (Maybe [LEpaComment], [LEpaComment], [LEpaComment]) #
allocateFinalComments :: RealSrcSpan -> [LEpaComment] -> Maybe [LEpaComment] -> (Maybe [LEpaComment], [LEpaComment], [LEpaComment]) #
module GHC.Utils.Panic
data CompileReason #
Constructors
| MustCompile | The .hs file has been touched, or the .o/.hi file does not exist |
| RecompBecause !RecompReason | The .o/.hi files are up to date, but something else has changed to force recompilation; the String says what (one-line summary) |
Instances
| Outputable CompileReason | |
Defined in GHC.Iface.Recomp Methods ppr :: CompileReason -> SDoc # | |
| Eq CompileReason | |
Defined in GHC.Iface.Recomp Methods (==) :: CompileReason -> CompileReason -> Bool # (/=) :: CompileReason -> CompileReason -> Bool # | |
hsc_type_env_vars :: HscEnv -> KnotVars (IORef TypeEnv) #
Used for one-shot compilation only, to initialise
the IfGblEnv. See tcg_type_env_var for
TcGblEnv. See also Note [hsc_type_env_var hack]
hscUpdateHUG :: (HomeUnitGraph -> HomeUnitGraph) -> HscEnv -> HscEnv #
hsc_HUG :: HscEnv -> HomeUnitGraph #
data GhcMessage where #
The umbrella type that encompasses all the different messages that GHC might output during the different compilation stages. See Note [GhcMessage].
Constructors
| GhcPsMessage :: PsMessage -> GhcMessage | A message from the parsing phase. |
| GhcTcRnMessage :: TcRnMessage -> GhcMessage | A message from typecheck/renaming phase. |
| GhcDsMessage :: DsMessage -> GhcMessage | A message from the desugaring (HsToCore) phase. |
| GhcDriverMessage :: DriverMessage -> GhcMessage | A message from the driver. |
| GhcUnknownMessage :: UnknownDiagnostic (DiagnosticOpts GhcMessage) -> GhcMessage | An "escape" hatch which can be used when we don't know the source of
the message or if the message is not one of the typed ones. The
|
Instances
| Generic GhcMessage | |||||
Defined in GHC.Driver.Errors.Types Associated Types
| |||||
| type DiagnosticOpts GhcMessage | |||||
Defined in GHC.Driver.Errors.Ppr | |||||
| type Rep GhcMessage | |||||
Defined in GHC.Driver.Errors.Types type Rep GhcMessage = D1 ('MetaData "GhcMessage" "GHC.Driver.Errors.Types" "ghc-9.10.1-inplace" 'False) ((C1 ('MetaCons "GhcPsMessage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PsMessage)) :+: C1 ('MetaCons "GhcTcRnMessage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TcRnMessage))) :+: (C1 ('MetaCons "GhcDsMessage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DsMessage)) :+: (C1 ('MetaCons "GhcDriverMessage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DriverMessage)) :+: C1 ('MetaCons "GhcUnknownMessage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (UnknownDiagnostic (DiagnosticOpts GhcMessage))))))) | |||||
module GHC.Driver.Env.KnotVars
module GHC.Linker.Types
module GHC.Types.Unique.Map
module GHC.Utils.TmpFs
module GHC.Unit.Finder.Types
module GHC.Unit.Env
module GHC.Driver.Phases
The language extensions known to GHC.
Note that there is an orphan Binary instance for this type supplied by
the GHC.LanguageExtensions module provided by ghc-boot. We can't provide
here as this would require adding transitive dependencies to the
template-haskell package, which must have a minimal dependency set.
Constructors
| OverlappingInstances | |
| UndecidableInstances | |
| IncoherentInstances | |
| UndecidableSuperClasses | |
| MonomorphismRestriction | |
| MonoLocalBinds | |
| DeepSubsumption | |
| RelaxedPolyRec | |
| ExtendedDefaultRules | |
| ForeignFunctionInterface | |
| UnliftedFFITypes | |
| InterruptibleFFI | |
| CApiFFI | |
| GHCForeignImportPrim | |
| JavaScriptFFI | |
| ParallelArrays | |
| Arrows | |
| TemplateHaskell | |
| TemplateHaskellQuotes | |
| QualifiedDo | |
| QuasiQuotes | |
| ImplicitParams | |
| ImplicitPrelude | |
| ScopedTypeVariables | |
| AllowAmbiguousTypes | |
| UnboxedTuples | |
| UnboxedSums | |
| UnliftedNewtypes | |
| UnliftedDatatypes | |
| BangPatterns | |
| TypeFamilies | |
| TypeFamilyDependencies | |
| TypeInType | |
| OverloadedStrings | |
| OverloadedLists | |
| NumDecimals | |
| DisambiguateRecordFields | |
| RecordWildCards | |
| NamedFieldPuns | |
| ViewPatterns | |
| GADTs | |
| GADTSyntax | |
| NPlusKPatterns | |
| DoAndIfThenElse | |
| BlockArguments | |
| RebindableSyntax | |
| ConstraintKinds | |
| PolyKinds | |
| DataKinds | |
| TypeData | |
| InstanceSigs | |
| ApplicativeDo | |
| LinearTypes | |
| RequiredTypeArguments | |
| StandaloneDeriving | |
| DeriveDataTypeable | |
| AutoDeriveTypeable | |
| DeriveFunctor | |
| DeriveTraversable | |
| DeriveFoldable | |
| DeriveGeneric | |
| DefaultSignatures | |
| DeriveAnyClass | |
| DeriveLift | |
| DerivingStrategies | |
| DerivingVia | |
| TypeSynonymInstances | |
| FlexibleContexts | |
| FlexibleInstances | |
| ConstrainedClassMethods | |
| MultiParamTypeClasses | |
| NullaryTypeClasses | |
| FunctionalDependencies | |
| UnicodeSyntax | |
| ExistentialQuantification | |
| MagicHash | |
| EmptyDataDecls | |
| KindSignatures | |
| RoleAnnotations | |
| ParallelListComp | |
| TransformListComp | |
| MonadComprehensions | |
| GeneralizedNewtypeDeriving | |
| RecursiveDo | |
| PostfixOperators | |
| TupleSections | |
| PatternGuards | |
| LiberalTypeSynonyms | |
| RankNTypes | |
| ImpredicativeTypes | |
| TypeOperators | |
| ExplicitNamespaces | |
| PackageImports | |
| ExplicitForAll | |
| AlternativeLayoutRule | |
| AlternativeLayoutRuleTransitional | |
| DatatypeContexts | |
| NondecreasingIndentation | |
| RelaxedLayout | |
| TraditionalRecordSyntax | |
| LambdaCase | |
| MultiWayIf | |
| BinaryLiterals | |
| NegativeLiterals | |
| HexFloatLiterals | |
| DuplicateRecordFields | |
| OverloadedLabels | |
| EmptyCase | |
| PatternSynonyms | |
| PartialTypeSignatures | |
| NamedWildCards | |
| StaticPointers | |
| TypeApplications | |
| Strict | |
| StrictData | |
| EmptyDataDeriving | |
| NumericUnderscores | |
| QuantifiedConstraints | |
| StarIsType | |
| ImportQualifiedPost | |
| CUSKs | |
| StandaloneKindSignatures | |
| LexicalNegation | |
| FieldSelectors | |
| OverloadedRecordDot | |
| OverloadedRecordUpdate | |
| TypeAbstractions | |
| ExtendedLiterals | |
| ListTuplePuns |
Instances
| NFData Extension # | |||||
Defined in Development.IDE.GHC.Orphans | |||||
| Outputable Extension | |||||
Defined in GHC.Utils.Outputable | |||||
| Bounded Extension | |||||
| Enum Extension | |||||
Defined in GHC.LanguageExtensions.Type Methods succ :: Extension -> Extension # pred :: Extension -> Extension # fromEnum :: Extension -> Int # enumFrom :: Extension -> [Extension] # enumFromThen :: Extension -> Extension -> [Extension] # enumFromTo :: Extension -> Extension -> [Extension] # enumFromThenTo :: Extension -> Extension -> Extension -> [Extension] # | |||||
| Generic Extension | |||||
Defined in GHC.LanguageExtensions.Type Associated Types
| |||||
| Show Extension | |||||
| Eq Extension | |||||
| Ord Extension | |||||
| type Rep Extension | |||||
Defined in GHC.LanguageExtensions.Type type Rep Extension = D1 ('MetaData "Extension" "GHC.LanguageExtensions.Type" "ghc-boot-th-9.10.1-inplace" 'False) (((((((C1 ('MetaCons "Cpp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OverlappingInstances" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UndecidableInstances" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IncoherentInstances" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "UndecidableSuperClasses" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MonomorphismRestriction" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MonoLocalBinds" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeepSubsumption" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "RelaxedPolyRec" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExtendedDefaultRules" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ForeignFunctionInterface" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnliftedFFITypes" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "InterruptibleFFI" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CApiFFI" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "GHCForeignImportPrim" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JavaScriptFFI" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "ParallelArrays" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Arrows" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TemplateHaskell" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TemplateHaskellQuotes" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "QualifiedDo" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "QuasiQuotes" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ImplicitParams" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ImplicitPrelude" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "ScopedTypeVariables" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AllowAmbiguousTypes" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UnboxedTuples" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnboxedSums" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "UnliftedNewtypes" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnliftedDatatypes" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BangPatterns" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TypeFamilies" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: (((((C1 ('MetaCons "TypeFamilyDependencies" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TypeInType" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "OverloadedStrings" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OverloadedLists" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "NumDecimals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DisambiguateRecordFields" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RecordWildCards" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NamedFieldPuns" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "ViewPatterns" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GADTs" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "GADTSyntax" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NPlusKPatterns" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "DoAndIfThenElse" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BlockArguments" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RebindableSyntax" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConstraintKinds" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "PolyKinds" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataKinds" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypeData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InstanceSigs" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ApplicativeDo" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LinearTypes" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RequiredTypeArguments" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StandaloneDeriving" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "DeriveDataTypeable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AutoDeriveTypeable" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DeriveFunctor" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeriveTraversable" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "DeriveFoldable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeriveGeneric" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DefaultSignatures" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DeriveAnyClass" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeriveLift" 'PrefixI 'False) (U1 :: Type -> Type)))))))) :+: ((((((C1 ('MetaCons "DerivingStrategies" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DerivingVia" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypeSynonymInstances" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FlexibleContexts" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FlexibleInstances" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConstrainedClassMethods" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MultiParamTypeClasses" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NullaryTypeClasses" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "FunctionalDependencies" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnicodeSyntax" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ExistentialQuantification" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MagicHash" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "EmptyDataDecls" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "KindSignatures" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RoleAnnotations" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ParallelListComp" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "TransformListComp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MonadComprehensions" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "GeneralizedNewtypeDeriving" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RecursiveDo" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PostfixOperators" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TupleSections" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PatternGuards" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiberalTypeSynonyms" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "RankNTypes" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ImpredicativeTypes" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypeOperators" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExplicitNamespaces" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PackageImports" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExplicitForAll" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "AlternativeLayoutRule" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AlternativeLayoutRuleTransitional" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: (((((C1 ('MetaCons "DatatypeContexts" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NondecreasingIndentation" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RelaxedLayout" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TraditionalRecordSyntax" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "LambdaCase" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MultiWayIf" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BinaryLiterals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NegativeLiterals" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "HexFloatLiterals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DuplicateRecordFields" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "OverloadedLabels" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EmptyCase" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PatternSynonyms" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PartialTypeSignatures" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NamedWildCards" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StaticPointers" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "TypeApplications" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Strict" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "StrictData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EmptyDataDeriving" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "NumericUnderscores" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "QuantifiedConstraints" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "StarIsType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ImportQualifiedPost" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "CUSKs" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StandaloneKindSignatures" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LexicalNegation" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FieldSelectors" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "OverloadedRecordDot" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OverloadedRecordUpdate" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypeAbstractions" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ExtendedLiterals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ListTuplePuns" 'PrefixI 'False) (U1 :: Type -> Type))))))))) | |||||
justBytecode :: Linkable -> HomeModLinkable #
justObjects :: Linkable -> HomeModLinkable #
groupOrigin :: MatchGroup GhcRn body -> Origin #
isVisibleFunArg :: FunTyFlag -> Bool #
lookupGlobalRdrEnv :: GlobalRdrEnvX GREInfo -> OccName -> [GlobalRdrEltX GREInfo] #