Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Development.IDE.GHC.Compat.Core
Contents
- Session
- Linear Haskell
- Interface Files
- Fixity
- ModSummary
- HomeModInfo
- ModGuts
- ModDetails
- HsExpr,
- Var
- Specs
- SourceText
- Name
- 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 -> String
- 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 :: FilePath -> DynFlags -> DynFlags
- lookupType :: HscEnv -> Name -> IO (Maybe TyThing)
- needWiredInHomeIface :: TyThing -> Bool
- loadWiredInHomeIface :: Name -> IfM lcl ()
- readIface :: Module -> FilePath -> TcRnIf gbl lcl (MaybeErr SDoc ModIface)
- loadSysInterface :: SDoc -> Module -> IfM lcl ModIface
- importDecl :: Name -> IfM lcl (MaybeErr SDoc 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_WarnWarningsDeprecations
- | Opt_WarnDeprecatedFlags
- | Opt_WarnMissingMonadFailInstances
- | Opt_WarnSemigroup
- | Opt_WarnDodgyExports
- | Opt_WarnDodgyImports
- | Opt_WarnOrphans
- | Opt_WarnAutoOrphans
- | Opt_WarnIdentities
- | Opt_WarnTabs
- | Opt_WarnUnrecognisedPragmas
- | 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_WarnUnicodeBidirectionalFormatCharacters
- data GeneralFlag
- = Opt_DumpToFile
- | Opt_D_faststring_stats
- | 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_WarnIsError
- | Opt_ShowWarnGroups
- | Opt_HideSourcePaths
- | Opt_PrintExplicitForalls
- | Opt_PrintExplicitKinds
- | Opt_PrintExplicitCoercions
- | Opt_PrintExplicitRuntimeReps
- | Opt_PrintEqualityRelations
- | Opt_PrintAxiomIncomps
- | Opt_PrintUnicodeSyntax
- | Opt_PrintExpandedSynonyms
- | Opt_PrintPotentialInstances
- | Opt_PrintTypecheckerElaboration
- | Opt_CallArity
- | Opt_Exitification
- | Opt_Strictness
- | Opt_LateDmdAnal
- | Opt_KillAbsence
- | Opt_KillOneShot
- | Opt_FullLaziness
- | Opt_FloatIn
- | Opt_LateSpecialise
- | Opt_Specialise
- | Opt_SpecialiseAggressively
- | Opt_CrossModuleSpecialise
- | Opt_InlineGenerics
- | Opt_InlineGenericsAggressively
- | Opt_StaticArgumentTransformation
- | Opt_CSE
- | Opt_StgCSE
- | Opt_StgLiftLams
- | Opt_LiberateCase
- | Opt_SpecConstr
- | Opt_SpecConstrKeen
- | Opt_DoLambdaEtaExpansion
- | 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_LlvmTBAA
- | Opt_LlvmFillUndefWithGarbage
- | Opt_IrrefutableTuples
- | Opt_CmmSink
- | Opt_CmmStaticPred
- | Opt_CmmElimCommonBlocks
- | Opt_AsmShortcutting
- | Opt_OmitYields
- | Opt_FunToThunk
- | Opt_DictsStrict
- | Opt_DmdTxDictSel
- | Opt_Loopification
- | Opt_CfgBlocklayout
- | Opt_WeightlessBlocklayout
- | Opt_CprAnal
- | Opt_WorkerWrapper
- | Opt_SolveConstantDicts
- | Opt_AlignmentSanitisation
- | Opt_CatchBottoms
- | Opt_NumConstantFolding
- | Opt_SimplPreInlining
- | Opt_IgnoreInterfacePragmas
- | Opt_OmitInterfacePragmas
- | Opt_ExposeAllUnfoldings
- | Opt_WriteInterface
- | Opt_WriteHie
- | Opt_AutoSccsOnIndividualCafs
- | Opt_ProfCountEntries
- | Opt_Pp
- | Opt_ForceRecomp
- | Opt_IgnoreOptimChanges
- | Opt_IgnoreHpcChanges
- | Opt_ExcessPrecision
- | Opt_EagerBlackHoling
- | 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_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_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_LinkRts
- | Opt_ErrorSpans
- | Opt_DeferDiagnostics
- | 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_SuppressVarKinds
- | Opt_SuppressModulePrefixes
- | Opt_SuppressTypeApplications
- | Opt_SuppressIdInfo
- | Opt_SuppressUnfoldings
- | Opt_SuppressTypeSignatures
- | Opt_SuppressUniques
- | Opt_SuppressStgExts
- | Opt_SuppressTicks
- | Opt_SuppressTimestamps
- | 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_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], [Warn])
- parseDynamicFilePragma :: MonadIO m => DynFlags -> [Located String] -> m (DynFlags, [Located String], [Warn])
- data WarnReason
- = NoReason
- | Reason !WarningFlag
- | ErrReason !(Maybe WarningFlag)
- 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 :: Warnings
- mi_anns :: [IfaceAnnotation]
- mi_decls :: [IfaceDeclExts phase]
- mi_globals :: !(Maybe GlobalRdrEnv)
- 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_doc_hdr :: Maybe HsDocString
- mi_decl_docs :: DeclDocMap
- mi_arg_docs :: ArgDocMap
- mi_final_exts :: !(IfaceBackendExts phase)
- mi_ext_fields :: ExtensibleFields
- data HscSource
- data WhereFrom
- loadInterface :: SDoc -> Module -> WhereFrom -> IfM lcl (MaybeErr SDoc ModIface)
- data SourceModified
- loadModuleInterface :: SDoc -> Module -> TcM ModIface
- data RecompileRequired
- mkPartialIface :: HscEnv -> ModDetails -> ModGuts -> PartialModIface
- mkFullIface :: HscEnv -> PartialModIface -> Maybe CgInfos -> IO ModIface
- checkOldIface :: HscEnv -> ModSummary -> SourceModified -> Maybe ModIface -> IO (RecompileRequired, Maybe 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_date :: UTCTime
- ms_obj_date :: Maybe UTCTime
- ms_iface_date :: Maybe UTCTime
- ms_hie_date :: Maybe UTCTime
- ms_srcimps :: [(Maybe FastString, Located ModuleName)]
- ms_textual_imps :: [(Maybe FastString, Located ModuleName)]
- ms_parsed_mod :: Maybe HsParsedModule
- ms_hspp_file :: FilePath
- ms_hspp_opts :: DynFlags
- ms_hspp_buf :: Maybe StringBuffer
- data HomeModInfo = HomeModInfo {
- hm_iface :: !ModIface
- hm_details :: ModDetails
- hm_linkable :: !(Maybe Linkable)
- 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
- 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_safe_haskell :: SafeHaskellMode
- mg_trust_pkg :: Bool
- mg_doc_hdr :: !(Maybe HsDocString)
- mg_decl_docs :: !DeclDocMap
- mg_arg_docs :: !ArgDocMap
- data CgGuts = CgGuts {
- cg_module :: !Module
- cg_tycons :: [TyCon]
- cg_binds :: CoreProgram
- cg_foreign :: !ForeignStubs
- cg_foreign_files :: ![(ForeignSrcLang, FilePath)]
- cg_dep_pkgs :: ![UnitId]
- cg_hpc_info :: !HpcInfo
- cg_modBreaks :: !(Maybe ModBreaks)
- cg_spt_entries :: [SptEntry]
- data ModDetails = ModDetails {
- md_exports :: [AvailInfo]
- md_types :: !TypeEnv
- md_insts :: ![ClsInst]
- md_fam_insts :: ![FamInst]
- md_rules :: ![CoreRule]
- md_anns :: ![Annotation]
- md_complete_matches :: [CompleteMatch]
- data Type
- pattern FunTy :: 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)
- mkVisFunTys :: [Scaled Type] -> Type -> Type
- data ImpDeclSpec = ImpDeclSpec {
- is_mod :: ModuleName
- is_as :: ModuleName
- is_qual :: Bool
- is_dloc :: SrcSpan
- data ImportSpec = ImpSpec {}
- data SourceText
- tyThingParent_maybe :: TyThing -> Maybe TyThing
- 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]
- availNamesWithSelectors :: 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_field_env :: RecFieldEnv
- tcg_type_env :: TypeEnv
- tcg_type_env_var :: TcRef 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_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
- 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_doc_hdr :: Maybe LHsDocString
- tcg_hpc :: !AnyHpcUsage
- tcg_self_boot :: SelfBootInfo
- tcg_main :: Maybe Name
- tcg_safeInfer :: TcRef (Bool, WarningMessages)
- tcg_tc_plugins :: [TcPluginSolver]
- tcg_hf_plugins :: [HoleFitPlugin]
- tcg_top_loc :: RealSrcSpan
- tcg_static_wc :: TcRef WantedConstraints
- tcg_complete_matches :: !CompleteMatches
- tcg_cc_st :: TcRef CostCentreState
- data HsModule = HsModule {}
- type ParsedSource = Located HsModule
- type RenamedSource = (HsGroup GhcRn, [LImportDecl GhcRn], Maybe [(LIE GhcRn, Avails)], Maybe LHsDocString)
- 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 :: 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 -> Phase -> (FilePath, Maybe Phase) -> IO FilePath
- data Phase
- hscDesugar :: HscEnv -> ModSummary -> TcGblEnv -> IO ModGuts
- hscGenHardCode :: HscEnv -> CgGuts -> ModLocation -> FilePath -> IO (FilePath, Maybe FilePath, [(ForeignSrcLang, FilePath)], CgInfos)
- hscInteractive :: HscEnv -> CgGuts -> ModLocation -> IO (Maybe FilePath, CompiledByteCode, [SptEntry])
- hscSimplify :: HscEnv -> [String] -> ModGuts -> IO ModGuts
- hscTypecheckRename :: HscEnv -> ModSummary -> HsParsedModule -> IO (TcGblEnv, RenamedStuff)
- makeSimpleDetails :: HscEnv -> TcGblEnv -> IO ModDetails
- tcSplitForAllTyVars :: Type -> ([TyVar], Type)
- tcSplitForAllTyVarBinder_maybe :: Type -> Maybe (TyVarBinder, Type)
- typecheckIface :: ModIface -> IfG ModDetails
- mkIfaceTc :: HscEnv -> SafeHaskellMode -> ModDetails -> p -> TcGblEnv -> IO ModIface
- mkBootModDetailsTc :: HscEnv -> TcGblEnv -> IO ModDetails
- initTidyOpts :: HscEnv -> IO TidyOpts
- hscUpdateHPT :: (HomePackageTable -> HomePackageTable) -> HscEnv -> HscEnv
- driverNoStop :: Phase
- tidyProgram :: HscEnv -> 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 :: GenLocated (SrcSpanAnn' a) e -> SrcSpan
- locA :: SrcSpanAnn' a -> SrcSpan
- noLocA :: a -> LocatedAn an a
- unLocA :: forall 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 { }
- | 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
- data SrcSpanAnn' a
- type SrcAnn ann = SrcSpanAnn' (EpAnn ann)
- 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 :: [(Unit, UnusableUnitReason)]
- fr_suggestions :: [ModuleSuggestion]
- mkHomeModLocation :: DynFlags -> ModuleName -> FilePath -> IO ModLocation
- addBootSuffixLocnOut :: ModLocation -> ModLocation
- findObjectLinkableMaybe :: Module -> ModLocation -> IO (Maybe Linkable)
- data InstalledFindResult
- data ModuleOrigin
- newtype PackageName = PackageName {}
- data Unlinked
- data Linkable = LM {}
- 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
- targetContents :: !(Maybe (InputFileBuffer, UTCTime))
- data TargetId
- = TargetModule !ModuleName
- | TargetFile !FilePath !(Maybe Phase)
- mkModuleGraph :: [ExtendedModSummary] -> ModuleGraph
- 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]
- data Warn = Warn {}
- 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
- panic :: String -> a
- panicDoc :: String -> SDoc -> a
- 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]
- zipName :: Name
- zipIdKey :: Unique
- wordTyConKey :: Unique
- wordPrimTyConKey :: Unique
- wordDataConKey :: Unique
- word8X64PrimTyConKey :: Unique
- word8X32PrimTyConKey :: Unique
- word8X16PrimTyConKey :: Unique
- word8TyConName :: Name
- word8TyConKey :: Unique
- word8PrimTyConKey :: Unique
- word8DataConKey :: Unique
- word64X8PrimTyConKey :: Unique
- word64X4PrimTyConKey :: Unique
- word64X2PrimTyConKey :: Unique
- word64TyConName :: Name
- word64TyConKey :: Unique
- word64PrimTyConKey :: Unique
- word32X8PrimTyConKey :: Unique
- word32X4PrimTyConKey :: Unique
- word32X16PrimTyConKey :: Unique
- word32TyConName :: Name
- word32TyConKey :: Unique
- word32PrimTyConKey :: Unique
- word16X8PrimTyConKey :: Unique
- word16X32PrimTyConKey :: Unique
- word16X16PrimTyConKey :: Unique
- word16TyConName :: Name
- word16TyConKey :: Unique
- word16PrimTyConKey :: Unique
- wildCardName :: Name
- wildCardKey :: Unique
- weakPrimTyConKey :: Unique
- voidPrimIdKey :: Unique
- voidArgIdKey :: Unique
- vecRepDataConKey :: Unique
- vecElemTyConKey :: Unique
- vecElemDataConKeys :: [Unique]
- vecCountTyConKey :: Unique
- vecCountDataConKeys :: [Unique]
- varQual_RDR :: Module -> FastString -> RdrName
- varQual :: Module -> FastString -> Unique -> Name
- v1TyConName :: Name
- v1TyConKey :: Unique
- unsafeReflDataConName :: Name
- unsafeReflDataConKey :: Unique
- unsafeRangeSize_RDR :: RdrName
- unsafeIndex_RDR :: RdrName
- unsafeEqualityTyConName :: Name
- unsafeEqualityTyConKey :: Unique
- unsafeEqualityProofName :: Name
- unsafeEqualityProofIdKey :: Unique
- unsafeCoercePrimName :: Name
- unsafeCoercePrimIdKey :: Unique
- unrestrictedFunTyConKey :: Unique
- unpackCString_RDR :: RdrName
- unpackCStringUtf8_RDR :: RdrName
- unpackCStringUtf8Name :: Name
- unpackCStringUtf8IdKey :: Unique
- unpackCStringName :: Name
- unpackCStringIdKey :: Unique
- unpackCStringFoldr_RDR :: RdrName
- unpackCStringFoldrUtf8_RDR :: RdrName
- unpackCStringFoldrUtf8Name :: Name
- unpackCStringFoldrUtf8IdKey :: Unique
- unpackCStringFoldrName :: Name
- unpackCStringFoldrIdKey :: Unique
- unpackCStringAppendIdKey :: Unique
- unliftedTypeKindTyConKey :: Unique
- unliftedRepTyConKey :: Unique
- unliftedDataConKey :: Unique
- unknownTyConKey :: Unique
- unknown3TyConKey :: Unique
- unknown2TyConKey :: Unique
- unknown1TyConKey :: Unique
- unboundKey :: Unique
- unRec1_RDR :: RdrName
- unPar1_RDR :: RdrName
- unK1_RDR :: RdrName
- unComp1_RDR :: RdrName
- uWordTyConName :: Name
- uWordTyConKey :: Unique
- uWordHash_RDR :: RdrName
- uWordDataCon_RDR :: RdrName
- uRecTyConName :: Name
- uRecTyConKey :: Unique
- uNSAFE_COERCE :: Module
- uIntTyConName :: Name
- uIntTyConKey :: Unique
- uIntHash_RDR :: RdrName
- uIntDataCon_RDR :: RdrName
- uFloatTyConName :: Name
- uFloatTyConKey :: Unique
- uFloatHash_RDR :: RdrName
- uFloatDataCon_RDR :: RdrName
- uDoubleTyConName :: Name
- uDoubleTyConKey :: Unique
- uDoubleHash_RDR :: RdrName
- uDoubleDataCon_RDR :: RdrName
- uCharTyConName :: Name
- uCharTyConKey :: Unique
- uCharHash_RDR :: RdrName
- uCharDataCon_RDR :: RdrName
- uAddrTyConName :: Name
- uAddrTyConKey :: Unique
- uAddrHash_RDR :: RdrName
- uAddrDataCon_RDR :: RdrName
- u1TyConName :: Name
- u1TyConKey :: Unique
- u1DataCon_RDR :: RdrName
- typeableClassName :: Name
- typeableClassKey :: Unique
- typeUnconsSymbolTyFamNameKey :: Unique
- typeSymbolTypeRepName :: Name
- typeSymbolTypeRepKey :: Unique
- typeSymbolKindConNameKey :: Unique
- typeSymbolCmpTyFamNameKey :: Unique
- typeSymbolAppendFamNameKey :: Unique
- typeRepTyConName :: Name
- typeRepTyConKey :: Unique
- typeRepIdName :: Name
- typeRepIdKey :: Unique
- typeNatTypeRepName :: Name
- typeNatTypeRepKey :: Unique
- typeNatToCharTyFamNameKey :: Unique
- typeNatSubTyFamNameKey :: Unique
- typeNatMulTyFamNameKey :: Unique
- typeNatModTyFamNameKey :: Unique
- typeNatLogTyFamNameKey :: Unique
- typeNatExpTyFamNameKey :: Unique
- typeNatDivTyFamNameKey :: Unique
- typeNatCmpTyFamNameKey :: Unique
- typeNatAddTyFamNameKey :: Unique
- typeLitSymbolDataConName :: Name
- typeLitSymbolDataConKey :: Unique
- typeLitSortTyConName :: Name
- typeLitSortTyConKey :: Unique
- typeLitNatDataConName :: Name
- typeLitNatDataConKey :: Unique
- typeLitCharDataConName :: Name
- typeLitCharDataConKey :: Unique
- typeLeqCharTyFamNameKey :: Unique
- typeErrorVAppendDataConName :: Name
- typeErrorVAppendDataConKey :: Unique
- typeErrorTextDataConName :: Name
- typeErrorTextDataConKey :: Unique
- typeErrorShowTypeDataConName :: Name
- typeErrorShowTypeDataConKey :: Unique
- typeErrorIdKey :: Unique
- typeErrorAppendDataConName :: Name
- typeErrorAppendDataConKey :: Unique
- typeConsSymbolTyFamNameKey :: Unique
- typeConKey :: Unique
- typeCharTypeRepName :: Name
- typeCharTypeRepKey :: Unique
- typeCharToNatTyFamNameKey :: Unique
- typeCharKindConNameKey :: Unique
- typeCharCmpTyFamNameKey :: Unique
- tupleRepDataConKey :: Unique
- trueDataConKey :: Unique
- traverse_RDR :: RdrName
- traversableClassName :: Name
- traversableClassKey :: Unique
- traceName :: Name
- traceKey :: Unique
- trTyConTyConName :: Name
- trTyConTyConKey :: Unique
- trTyConDataConName :: Name
- trTyConDataConKey :: Unique
- trTYPEKey :: Unique
- trTYPE'PtrRepLiftedKey :: Unique
- trRuntimeRepKey :: Unique
- trNameTyConName :: Name
- trNameTyConKey :: Unique
- trNameSDataConName :: Name
- trNameSDataConKey :: Unique
- trNameDDataConName :: Name
- trNameDDataConKey :: Unique
- trModuleTyConName :: Name
- trModuleTyConKey :: Unique
- trModuleDataConName :: Name
- trModuleDataConKey :: Unique
- trLiftedRepKey :: Unique
- trGhcPrimModuleName :: Name
- trGhcPrimModuleKey :: Unique
- tr'PtrRepLiftedKey :: Unique
- to_RDR :: RdrName
- toRational_RDR :: RdrName
- toRationalName :: Name
- toRationalClassOpKey :: Unique
- toList_RDR :: RdrName
- toListName :: Name
- toListClassOpKey :: Unique
- toInteger_RDR :: RdrName
- toIntegerName :: Name
- toIntegerClassOpKey :: Unique
- toEnum_RDR :: RdrName
- toDynName :: Name
- toDynIdKey :: Unique
- toAnnotationWrapperName :: Name
- toAnnotationWrapperIdKey :: Unique
- to1_RDR :: RdrName
- times_RDR :: RdrName
- threadIdPrimTyConKey :: Unique
- thenMName :: Name
- thenMClassOpKey :: Unique
- thenIOName :: Name
- thenIOIdKey :: Unique
- thenAName :: Name
- thenAClassOpKey :: Unique
- tcQual_RDR :: Module -> FastString -> RdrName
- tcQual :: Module -> FastString -> Unique -> Name
- tYPETyConKey :: Unique
- tYPEABLE_INTERNAL :: Module
- tYPEABLE :: Module
- tVarPrimTyConKey :: Unique
- symbol_RDR :: RdrName
- sumTyConName :: Name
- sumTyConKey :: Unique
- sumRepDataConKey :: Unique
- succ_RDR :: RdrName
- stringTyConKey :: Unique
- step_RDR :: RdrName
- staticPtrTyConName :: Name
- staticPtrTyConKey :: Unique
- staticPtrInfoTyConName :: Name
- staticPtrInfoTyConKey :: Unique
- staticPtrInfoDataConName :: Name
- staticPtrInfoDataConKey :: Unique
- staticPtrDataConName :: Name
- staticPtrDataConKey :: Unique
- statePrimTyConKey :: Unique
- starKindRepName :: Name
- starKindRepKey :: Unique
- starArrStarKindRepName :: Name
- starArrStarKindRepKey :: Unique
- starArrStarArrStarKindRepName :: Name
- starArrStarArrStarKindRepKey :: Unique
- standardClassKeys :: [Unique]
- stablePtrTyConName :: Name
- stablePtrTyConKey :: Unique
- stablePtrPrimTyConKey :: Unique
- stableNameTyConKey :: Unique
- stableNamePrimTyConKey :: Unique
- stableNameDataConKey :: Unique
- srcLocDataConName :: Name
- srcLocDataConKey :: Unique
- specTyConName :: Name
- specTyConKey :: Unique
- sourceUnpackDataConName :: Name
- sourceUnpackDataConKey :: Unique
- sourceStrictDataConName :: Name
- sourceStrictDataConKey :: Unique
- sourceNoUnpackDataConName :: Name
- sourceNoUnpackDataConKey :: Unique
- sourceLazyDataConName :: Name
- sourceLazyDataConKey :: Unique
- someTypeRepTyConName :: Name
- someTypeRepTyConKey :: Unique
- someTypeRepDataConName :: Name
- someTypeRepDataConKey :: Unique
- sndName :: Name
- sndIdKey :: Unique
- smallMutableArrayPrimTyConKey :: Unique
- smallArrayPrimTyConKey :: Unique
- shows_RDR :: RdrName
- showsPrec_RDR :: RdrName
- showString_RDR :: RdrName
- showSpace_RDR :: RdrName
- showParen_RDR :: RdrName
- showCommaSpace_RDR :: RdrName
- showClassName :: Name
- showClassKey :: Unique
- setFieldName :: Name
- setFieldClassOpKey :: Unique
- seqIdKey :: Unique
- semigroupClassName :: Name
- semigroupClassKey :: Unique
- selectorClassName :: Name
- selectorClassKey :: Unique
- selName_RDR :: RdrName
- sappendName :: Name
- sappendClassOpKey :: Unique
- sYSTEM_IO :: Module
- sTyConName :: Name
- sTyConKey :: Unique
- s1TyConName :: Name
- s1TyConKey :: Unique
- runtimeRepTyConKey :: Unique
- runtimeRepSimpleDataConKeys :: [Unique]
- runtimeErrorIdKey :: Unique
- runRWName :: Name
- runRWKey :: Unique
- runMainKey :: Unique
- runMainIOName :: Name
- rootMainKey :: Unique
- right_RDR :: RdrName
- rightSectionKey :: Unique
- rightDataConName :: Name
- rightDataConKey :: Unique
- rightAssociativeDataConName :: Name
- rightAssociativeDataConKey :: Unique
- rightAssocDataCon_RDR :: RdrName
- returnM_RDR :: RdrName
- returnMName :: Name
- returnMClassOpKey :: Unique
- returnIO_RDR :: RdrName
- returnIOName :: Name
- returnIOIdKey :: Unique
- reset_RDR :: RdrName
- replace_RDR :: RdrName
- repTyConName :: Name
- repTyConKey :: Unique
- rep1TyConName :: Name
- rep1TyConKey :: Unique
- recSelErrorIdKey :: Unique
- recConErrorIdKey :: Unique
- rec1TyConName :: Name
- rec1TyConKey :: Unique
- rec1DataCon_RDR :: RdrName
- rec0TyConName :: Name
- rec0TyConKey :: Unique
- realWorldTyConKey :: Unique
- realWorldPrimIdKey :: Unique
- realToFracName :: Name
- realToFracIdKey :: Unique
- realFracClassName :: Name
- realFracClassKey :: Unique
- realFloatClassName :: Name
- realFloatClassKey :: Unique
- realClassName :: Name
- realClassKey :: Unique
- readSymField_RDR :: RdrName
- readPrec_RDR :: RdrName
- readList_RDR :: RdrName
- readListPrec_RDR :: RdrName
- readListPrecDefault_RDR :: RdrName
- readListDefault_RDR :: RdrName
- readField_RDR :: RdrName
- readFieldHash_RDR :: RdrName
- readClassName :: Name
- readClassKey :: Unique
- rationalTyConName :: Name
- rationalTyConKey :: Unique
- rationalToFloatName :: Name
- rationalToFloatIdKey :: Unique
- rationalToDoubleName :: Name
- rationalToDoubleIdKey :: Unique
- ratioTyConName :: Name
- ratioTyConKey :: Unique
- ratioDataCon_RDR :: RdrName
- ratioDataConName :: Name
- ratioDataConKey :: Unique
- range_RDR :: RdrName
- randomGenClassName :: Name
- randomGenClassKey :: Unique
- randomClassName :: Name
- randomClassKey :: Unique
- raiseUnderflowIdKey :: Unique
- raiseOverflowIdKey :: Unique
- raiseDivZeroIdKey :: Unique
- rTyConName :: Name
- rTyConKey :: Unique
- rOOT_MAIN :: Module
- rEAD_PREC :: Module
- rANDOM :: Module
- r1DataCon_RDR :: RdrName
- pushCallStackName :: Name
- pushCallStackKey :: Unique
- pure_RDR :: RdrName
- pureAName :: Name
- pureAClassOpKey :: Unique
- punc_RDR :: RdrName
- ptrTyConName :: Name
- ptrTyConKey :: Unique
- proxyPrimTyConKey :: Unique
- proxyHashKey :: Unique
- prodTyConName :: Name
- prodTyConKey :: Unique
- prodDataCon_RDR :: RdrName
- printIdKey :: Unique
- pretendNameIsInScope :: Name -> Bool
- prefixIDataConName :: Name
- prefixIDataConKey :: Unique
- prefixDataCon_RDR :: RdrName
- pred_RDR :: RdrName
- prec_RDR :: RdrName
- plus_RDR :: RdrName
- pluginTyConName :: Name
- pluginTyConKey :: Unique
- pfail_RDR :: RdrName
- patErrorIdKey :: Unique
- parens_RDR :: RdrName
- par1TyConName :: Name
- par1TyConKey :: Unique
- par1DataCon_RDR :: RdrName
- packageName_RDR :: RdrName
- pRELUDE_NAME :: ModuleName
- pRELUDE :: Module
- pLUGINS :: Module
- otherwiseIdName :: Name
- otherwiseIdKey :: Unique
- orderingTyConName :: Name
- orderingTyConKey :: Unique
- ordLTDataConName :: Name
- ordLTDataConKey :: Unique
- ordGTDataConName :: Name
- ordGTDataConKey :: Unique
- ordEQDataConName :: Name
- ordEQDataConKey :: Unique
- ordClass_RDR :: RdrName
- ordClassName :: Name
- ordClassKey :: Unique
- opaqueTyConName :: Name
- opaqueTyConKey :: Unique
- oneShotKey :: Unique
- oneDataConKey :: Unique
- numericClassKeys :: [Unique]
- numClass_RDR :: RdrName
- numClassName :: Name
- numClassKey :: Unique
- null_RDR :: RdrName
- nullAddrIdKey :: Unique
- nothingDataConKey :: Unique
- not_RDR :: RdrName
- notAssociativeDataConName :: Name
- notAssociativeDataConKey :: Unique
- notAssocDataCon_RDR :: RdrName
- nonExhaustiveGuardsErrorIdKey :: Unique
- nonEmptyTyConKey :: Unique
- nonEmptyDataConKey :: Unique
- noinlineIdKey :: Unique
- noSourceUnpackednessDataConName :: Name
- noSourceUnpackednessDataConKey :: Unique
- noSourceStrictnessDataConName :: Name
- noSourceStrictnessDataConKey :: Unique
- noSelTyConName :: Name
- noSelTyConKey :: Unique
- noMethodBindingErrorIdKey :: Unique
- nilDataConKey :: Unique
- newStablePtr_RDR :: RdrName
- newStablePtrName :: Name
- newStablePtrIdKey :: Unique
- negateName :: Name
- negateClassOpKey :: Unique
- naturalXorName :: Name
- naturalXorIdKey :: Unique
- naturalTyConKey :: Unique
- naturalToWordName :: Name
- naturalToWordIdKey :: Unique
- naturalToWordClampName :: Name
- naturalToWordClampIdKey :: Unique
- naturalToFloatName :: Name
- naturalToFloatIdKey :: Unique
- naturalToDoubleName :: Name
- naturalToDoubleIdKey :: Unique
- naturalTestBitName :: Name
- naturalTestBitIdKey :: Unique
- naturalSubUnsafeName :: Name
- naturalSubUnsafeIdKey :: Unique
- naturalSubThrowName :: Name
- naturalSubThrowIdKey :: Unique
- naturalSubName :: Name
- naturalSubIdKey :: Unique
- naturalSizeInBaseName :: Name
- naturalSizeInBaseIdKey :: Unique
- naturalSignumName :: Name
- naturalSignumIdKey :: Unique
- naturalShiftRName :: Name
- naturalShiftRIdKey :: Unique
- naturalShiftLName :: Name
- naturalShiftLIdKey :: Unique
- naturalRemName :: Name
- naturalRemIdKey :: Unique
- naturalQuotRemName :: Name
- naturalQuotRemIdKey :: Unique
- naturalQuotName :: Name
- naturalQuotIdKey :: Unique
- naturalPowModName :: Name
- naturalPowModIdKey :: Unique
- naturalPopCountName :: Name
- naturalPopCountIdKey :: Unique
- naturalOrName :: Name
- naturalOrIdKey :: Unique
- naturalNegateName :: Name
- naturalNegateIdKey :: Unique
- naturalNeName :: Name
- naturalNeIdKey :: Unique
- naturalNSDataConKey :: Unique
- naturalNBDataConKey :: Unique
- naturalMulName :: Name
- naturalMulIdKey :: Unique
- naturalLtName :: Name
- naturalLtIdKey :: Unique
- naturalLogBaseWordName :: Name
- naturalLogBaseWordIdKey :: Unique
- naturalLogBaseName :: Name
- naturalLogBaseIdKey :: Unique
- naturalLog2Name :: Name
- naturalLog2IdKey :: Unique
- naturalLeName :: Name
- naturalLeIdKey :: Unique
- naturalLcmName :: Name
- naturalLcmIdKey :: Unique
- naturalGtName :: Name
- naturalGtIdKey :: Unique
- naturalGeName :: Name
- naturalGeIdKey :: Unique
- naturalGcdName :: Name
- naturalGcdIdKey :: Unique
- naturalEqName :: Name
- naturalEqIdKey :: Unique
- naturalCompareName :: Name
- naturalCompareIdKey :: Unique
- naturalBitName :: Name
- naturalBitIdKey :: Unique
- naturalAndNotName :: Name
- naturalAndNotIdKey :: Unique
- naturalAndName :: Name
- naturalAndIdKey :: Unique
- naturalAddName :: Name
- naturalAddIdKey :: Unique
- mzipName :: Name
- mzipIdKey :: Unique
- mutableByteArrayPrimTyConKey :: Unique
- mutableArrayPrimTyConKey :: Unique
- mutableArrayArrayPrimTyConKey :: Unique
- mutVarPrimTyConKey :: Unique
- multiplicityTyConKey :: Unique
- multMulTyConKey :: Unique
- monoidClassName :: Name
- monoidClassKey :: Unique
- monadPlusClassName :: Name
- monadPlusClassKey :: Unique
- monadFixClassName :: Name
- monadFixClassKey :: Unique
- monadFailClassName :: Name
- monadFailClassKey :: Unique
- monadClass_RDR :: RdrName
- monadClassName :: Name
- monadClassKey :: Unique
- moduleName_RDR :: RdrName
- modIntName :: Name
- modIntIdKey :: Unique
- mk_known_key_name :: NameSpace -> Module -> FastString -> Unique -> Name
- mkUnboundName :: OccName -> Name
- mkTyConKey :: Unique
- mkTrTypeName :: Name
- mkTrTypeKey :: Unique
- mkTrFunName :: Name
- mkTrFunKey :: Unique
- mkTrConName :: Name
- mkTrConKey :: Unique
- mkTrAppName :: Name
- mkTrAppKey :: Unique
- mkThisGhcModule_ :: ModuleName -> Module
- mkThisGhcModule :: FastString -> Module
- mkRationalBase2Name :: Name
- mkRationalBase2IdKey :: Unique
- mkRationalBase10Name :: Name
- mkRationalBase10IdKey :: Unique
- mkPrimModule :: FastString -> Module
- mkMainModule_ :: ModuleName -> Module
- mkMainModule :: FastString -> Module
- mkInteractiveModule :: Int -> Module
- mkBignumModule :: FastString -> Module
- mkBaseModule_ :: ModuleName -> Module
- mkBaseModule :: FastString -> Module
- minus_RDR :: RdrName
- minusName :: Name
- minusClassOpKey :: Unique
- minBound_RDR :: RdrName
- mfixName :: Name
- mfixIdKey :: Unique
- metaSelDataConName :: Name
- metaSelDataConKey :: Unique
- metaDataDataConName :: Name
- metaDataDataConKey :: Unique
- metaConsDataConName :: Name
- metaConsDataConKey :: Unique
- mempty_RDR :: RdrName
- memptyName :: Name
- memptyClassOpKey :: Unique
- mconcatName :: Name
- mconcatClassOpKey :: Unique
- maybeTyConKey :: Unique
- maxBound_RDR :: RdrName
- mappend_RDR :: RdrName
- mappendName :: Name
- mappendClassOpKey :: Unique
- map_RDR :: RdrName
- mapName :: Name
- mapIdKey :: Unique
- manyDataConKey :: Unique
- makeStaticName :: Name
- makeStaticKey :: Unique
- main_RDR_Unqual :: RdrName
- magicDictKey :: Unique
- mVarPrimTyConKey :: Unique
- mONAD_ZIP :: Module
- mONAD_FIX :: Module
- mONAD_FAIL :: Module
- mONAD :: Module
- mAIN_NAME :: ModuleName
- m1TyConName :: Name
- m1TyConKey :: Unique
- m1DataCon_RDR :: RdrName
- lt_RDR :: RdrName
- ltTag_RDR :: RdrName
- loopAName :: Name
- loopAIdKey :: Unique
- listTyConKey :: Unique
- liftedTypeKindTyConKey :: Unique
- liftedRepTyConKey :: Unique
- liftedDataConKey :: Unique
- liftMName :: Name
- liftMIdKey :: Unique
- liftA2_RDR :: RdrName
- lexP_RDR :: RdrName
- levityTyConKey :: Unique
- left_RDR :: RdrName
- leftSectionKey :: Unique
- leftDataConName :: Name
- leftDataConKey :: Unique
- leftAssociativeDataConName :: Name
- leftAssociativeDataConKey :: Unique
- leftAssocDataCon_RDR :: RdrName
- le_RDR :: RdrName
- lazyIdKey :: Unique
- lEX :: Module
- l1DataCon_RDR :: RdrName
- knownSymbolClassNameKey :: Unique
- knownSymbolClassName :: Name
- knownNatClassNameKey :: Unique
- knownNatClassName :: Name
- knownCharClassNameKey :: Unique
- knownCharClassName :: Name
- kindRepVarDataConName :: Name
- kindRepVarDataConKey :: Unique
- kindRepTypeLitSDataConName :: Name
- kindRepTypeLitSDataConKey :: Unique
- kindRepTypeLitDDataConName :: Name
- kindRepTypeLitDDataConKey :: Unique
- kindRepTyConName :: Name
- kindRepTyConKey :: Unique
- kindRepTyConAppDataConName :: Name
- kindRepTyConAppDataConKey :: Unique
- kindRepTYPEDataConName :: Name
- kindRepTYPEDataConKey :: Unique
- kindRepFunDataConName :: Name
- kindRepFunDataConKey :: Unique
- kindRepAppDataConName :: Name
- kindRepAppDataConKey :: Unique
- kindConKey :: Unique
- k1TyConName :: Name
- k1TyConKey :: Unique
- k1DataCon_RDR :: RdrName
- justDataConKey :: Unique
- joinMName :: Name
- joinMIdKey :: Unique
- ixClassName :: Name
- ixClassKey :: Unique
- itName :: Unique -> SrcSpan -> Name
- isUnboundName :: Name -> Bool
- isStringClassName :: Name
- isStringClassKey :: Unique
- isNewtypeName_RDR :: RdrName
- isListClassName :: Name
- isListClassKey :: Unique
- ipClassName :: Name
- ipClassKey :: Unique
- ioTyConName :: Name
- ioTyConKey :: Unique
- ioPortPrimTyConKey :: Unique
- ioDataCon_RDR :: RdrName
- ioDataConName :: Name
- ioDataConKey :: Unique
- interactiveClassNames :: [Name]
- interactiveClassKeys :: [Unique]
- integralClassName :: Name
- integralClassKey :: Unique
- integerXorName :: Name
- integerXorIdKey :: Unique
- integerTyConKey :: Unique
- integerToWordName :: Name
- integerToWordIdKey :: Unique
- integerToWord64Name :: Name
- integerToWord64IdKey :: Unique
- integerToNaturalThrowName :: Name
- integerToNaturalThrowIdKey :: Unique
- integerToNaturalName :: Name
- integerToNaturalIdKey :: Unique
- integerToNaturalClampName :: Name
- integerToNaturalClampIdKey :: Unique
- integerToIntName :: Name
- integerToIntIdKey :: Unique
- integerToInt64Name :: Name
- integerToInt64IdKey :: Unique
- integerToFloatName :: Name
- integerToFloatIdKey :: Unique
- integerToDoubleName :: Name
- integerToDoubleIdKey :: Unique
- integerTestBitName :: Name
- integerTestBitIdKey :: Unique
- integerSubName :: Name
- integerSubIdKey :: Unique
- integerSignumName :: Name
- integerSignumIdKey :: Unique
- integerShiftRName :: Name
- integerShiftRIdKey :: Unique
- integerShiftLName :: Name
- integerShiftLIdKey :: Unique
- integerRemName :: Name
- integerRemIdKey :: Unique
- integerQuotRemName :: Name
- integerQuotRemIdKey :: Unique
- integerQuotName :: Name
- integerQuotIdKey :: Unique
- integerPopCountName :: Name
- integerPopCountIdKey :: Unique
- integerOrName :: Name
- integerOrIdKey :: Unique
- integerNegateName :: Name
- integerNegateIdKey :: Unique
- integerNeName :: Name
- integerNeIdKey :: Unique
- integerMul_RDR :: RdrName
- integerMulName :: Name
- integerMulIdKey :: Unique
- integerModName :: Name
- integerModIdKey :: Unique
- integerLtName :: Name
- integerLtIdKey :: Unique
- integerLeName :: Name
- integerLeIdKey :: Unique
- integerLcmName :: Name
- integerLcmIdKey :: Unique
- integerISDataConKey :: Unique
- integerIPDataConKey :: Unique
- integerINDataConKey :: Unique
- integerGtName :: Name
- integerGtIdKey :: Unique
- integerGeName :: Name
- integerGeIdKey :: Unique
- integerGcdName :: Name
- integerGcdIdKey :: Unique
- integerFromWordName :: Name
- integerFromWordIdKey :: Unique
- integerFromWord64Name :: Name
- integerFromWord64IdKey :: Unique
- integerFromNaturalName :: Name
- integerFromNaturalIdKey :: Unique
- integerFromInt64Name :: Name
- integerFromInt64IdKey :: Unique
- integerEqName :: Name
- integerEqIdKey :: Unique
- integerEncodeFloatName :: Name
- integerEncodeFloatIdKey :: Unique
- integerEncodeDoubleName :: Name
- integerEncodeDoubleIdKey :: Unique
- integerDivName :: Name
- integerDivModName :: Name
- integerDivModIdKey :: Unique
- integerDivIdKey :: Unique
- integerComplementName :: Name
- integerComplementIdKey :: Unique
- integerCompareName :: Name
- integerCompareIdKey :: Unique
- integerBitName :: Name
- integerBitIdKey :: Unique
- integerAndName :: Name
- integerAndIdKey :: Unique
- integerAdd_RDR :: RdrName
- integerAddName :: Name
- integerAddIdKey :: Unique
- integerAbsName :: Name
- integerAbsIdKey :: Unique
- intTyConKey :: Unique
- intPrimTyConKey :: Unique
- intDataConKey :: Unique
- int8X64PrimTyConKey :: Unique
- int8X32PrimTyConKey :: Unique
- int8X16PrimTyConKey :: Unique
- int8TyConName :: Name
- int8TyConKey :: Unique
- int8PrimTyConKey :: Unique
- int64X8PrimTyConKey :: Unique
- int64X4PrimTyConKey :: Unique
- int64X2PrimTyConKey :: Unique
- int64TyConName :: Name
- int64TyConKey :: Unique
- int64PrimTyConKey :: Unique
- int32X8PrimTyConKey :: Unique
- int32X4PrimTyConKey :: Unique
- int32X16PrimTyConKey :: Unique
- int32TyConName :: Name
- int32TyConKey :: Unique
- int32PrimTyConKey :: Unique
- int16X8PrimTyConKey :: Unique
- int16X32PrimTyConKey :: Unique
- int16X16PrimTyConKey :: Unique
- int16TyConName :: Name
- int16TyConKey :: Unique
- int16PrimTyConKey :: Unique
- inrDataConKey :: Unique
- inlineIdName :: Name
- inlineIdKey :: Unique
- inlDataConKey :: Unique
- infixIDataConName :: Name
- infixIDataConKey :: Unique
- infixDataCon_RDR :: RdrName
- index_RDR :: RdrName
- inRange_RDR :: RdrName
- ident_RDR :: RdrName
- heqTyConKey :: Unique
- heqSCSelIdKey :: Unique
- heqDataConKey :: Unique
- hasFieldClassNameKey :: Unique
- hasFieldClassName :: Name
- guardMName :: Name
- guardMIdKey :: Unique
- gt_RDR :: RdrName
- gtTag_RDR :: RdrName
- groupWithName :: Name
- groupWithIdKey :: Unique
- ghciStepIoMName :: Name
- ghciStepIoMClassOpKey :: Unique
- ghciIoClassName :: Name
- ghciIoClassKey :: Unique
- getTag_RDR :: RdrName
- getFieldName :: Name
- getFieldClassOpKey :: Unique
- genericTyConNames :: [Name]
- genericClassNames :: [Name]
- genUnitDataConKey :: Unique
- genClassName :: Name
- genClassKey :: Unique
- gen1ClassName :: Name
- gen1ClassKey :: Unique
- ge_RDR :: RdrName
- geName :: Name
- geClassOpKey :: Unique
- gHC_WORD :: Module
- gHC_TYPES :: Module
- gHC_TYPENATS_INTERNAL :: Module
- gHC_TYPENATS :: Module
- gHC_TYPELITS_INTERNAL :: Module
- gHC_TYPELITS :: Module
- gHC_TUPLE :: Module
- gHC_TOP_HANDLER :: Module
- gHC_STATICPTR_INTERNAL :: Module
- gHC_STATICPTR :: Module
- gHC_STACK_TYPES :: Module
- gHC_STACK :: Module
- gHC_STABLE :: Module
- gHC_ST :: Module
- gHC_SRCLOC :: Module
- gHC_SHOW :: Module
- gHC_RECORDS :: Module
- gHC_REAL :: Module
- gHC_READ :: Module
- gHC_PTR :: Module
- gHC_PRIM_PANIC :: Module
- gHC_PRIM_EXCEPTION :: Module
- gHC_PRIMOPWRAPPERS :: Module
- gHC_PRIM :: Module
- gHC_OVER_LABELS :: Module
- gHC_NUM_NATURAL :: Module
- gHC_NUM_INTEGER :: Module
- gHC_NUM_BIGNAT :: Module
- gHC_NUM :: Module
- gHC_MAYBE :: Module
- gHC_MAGIC :: Module
- gHC_LIST :: Module
- gHC_IX :: Module
- gHC_IO_Exception :: Module
- gHC_IO :: Module
- gHC_INT :: Module
- gHC_GHCI_HELPERS :: Module
- gHC_GHCI :: Module
- gHC_GENERICS :: Module
- gHC_FLOAT :: Module
- gHC_FINGERPRINT_TYPE :: Module
- gHC_EXTS :: Module
- gHC_ERR :: Module
- gHC_ENUM :: Module
- gHC_DESUGAR :: Module
- gHC_CSTRING :: Module
- gHC_CONC :: Module
- gHC_CLASSES :: Module
- gHC_BASE :: Module
- gENERICS :: Module
- functorClassName :: Name
- functorClassKey :: Unique
- funTyConKey :: Unique
- funPtrTyConName :: Name
- funPtrTyConKey :: Unique
- fstName :: Name
- fstIdKey :: Unique
- frontendPluginTyConName :: Name
- frontendPluginTyConKey :: Unique
- from_RDR :: RdrName
- fromString_RDR :: RdrName
- fromStringName :: Name
- fromStringClassOpKey :: Unique
- fromStaticPtrName :: Name
- fromStaticPtrClassOpKey :: Unique
- fromRational_RDR :: RdrName
- fromRationalName :: Name
- fromRationalClassOpKey :: Unique
- fromList_RDR :: RdrName
- fromListName :: Name
- fromListN_RDR :: RdrName
- fromListNName :: Name
- fromListNClassOpKey :: Unique
- fromListClassOpKey :: Unique
- fromLabelClassOpName :: Name
- fromLabelClassOpKey :: Unique
- fromIntegral_RDR :: RdrName
- fromIntegralName :: Name
- fromIntegralIdKey :: Unique
- fromInteger_RDR :: RdrName
- fromIntegerName :: Name
- fromIntegerClassOpKey :: Unique
- fromEnum_RDR :: RdrName
- from1_RDR :: RdrName
- fractionalClassName :: Name
- fractionalClassKeys :: [Unique]
- fractionalClassKey :: Unique
- foreignObjPrimTyConKey :: Unique
- foldr_RDR :: RdrName
- foldrName :: Name
- foldrIdKey :: Unique
- foldable_foldr_RDR :: RdrName
- foldableClassName :: Name
- foldableClassKey :: Unique
- foldMap_RDR :: RdrName
- fmap_RDR :: RdrName
- fmapName :: Name
- fmapClassOpKey :: Unique
- floatingClassName :: Name
- floatingClassKey :: Unique
- floatX8PrimTyConKey :: Unique
- floatX4PrimTyConKey :: Unique
- floatX16PrimTyConKey :: Unique
- floatTyConKey :: Unique
- floatPrimTyConKey :: Unique
- floatDataConKey :: Unique
- firstAName :: Name
- firstAIdKey :: Unique
- fingerprintDataConName :: Name
- fingerprintDataConKey :: Unique
- filterName :: Name
- filterIdKey :: Unique
- falseDataConKey :: Unique
- failM_RDR :: RdrName
- failMName :: Name
- failMClassOpKey :: Unique
- failIOName :: Name
- failIOIdKey :: Unique
- expectP_RDR :: RdrName
- error_RDR :: RdrName
- errorMessageTypeErrorFamName :: Name
- errorMessageTypeErrorFamKey :: Unique
- errorIdKey :: Unique
- eq_RDR :: RdrName
- eqTyConKey :: Unique
- eqTag_RDR :: RdrName
- eqString_RDR :: RdrName
- eqStringName :: Name
- eqStringIdKey :: Unique
- eqSCSelIdKey :: Unique
- eqReprPrimTyConKey :: Unique
- eqPrimTyConKey :: Unique
- eqPhantPrimTyConKey :: Unique
- eqName :: Name
- eqDataConKey :: Unique
- eqClass_RDR :: RdrName
- eqClassOpKey :: Unique
- eqClassName :: Name
- eqClassKey :: Unique
- enumFrom_RDR :: RdrName
- enumFromTo_RDR :: RdrName
- enumFromToName :: Name
- enumFromToClassOpKey :: Unique
- enumFromThen_RDR :: RdrName
- enumFromThenTo_RDR :: RdrName
- enumFromThenToName :: Name
- enumFromThenToClassOpKey :: Unique
- enumFromThenName :: Name
- enumFromThenClassOpKey :: Unique
- enumFromName :: Name
- enumFromClassOpKey :: Unique
- enumClass_RDR :: RdrName
- enumClassName :: Name
- enumClassKey :: Unique
- emptyCallStackName :: Name
- emptyCallStackKey :: Unique
- eitherTyConName :: Name
- eitherTyConKey :: Unique
- doubleX8PrimTyConKey :: Unique
- doubleX4PrimTyConKey :: Unique
- doubleX2PrimTyConKey :: Unique
- doubleTyConKey :: Unique
- doublePrimTyConKey :: Unique
- doubleDataConKey :: Unique
- dollarName :: Name
- dollarIdKey :: Unique
- divIntName :: Name
- divIntIdKey :: Unique
- derivableClassKeys :: [Unique]
- decidedUnpackDataConName :: Name
- decidedUnpackDataConKey :: Unique
- decidedStrictDataConName :: Name
- decidedStrictDataConKey :: Unique
- decidedLazyDataConName :: Name
- decidedLazyDataConKey :: Unique
- dcQual :: Module -> FastString -> Unique -> Name
- datatypeName_RDR :: RdrName
- datatypeClassName :: Name
- datatypeClassKey :: Unique
- dataToTag_RDR :: RdrName
- dataQual_RDR :: Module -> FastString -> RdrName
- dataClassName :: Name
- dataClassKey :: Unique
- dYNAMIC :: Module
- dTyConName :: Name
- dTyConKey :: Unique
- dEBUG_TRACE :: Module
- dATA_TYPE_EQUALITY :: Module
- dATA_TUPLE :: Module
- dATA_TRAVERSABLE :: Module
- dATA_STRING :: Module
- dATA_LIST :: Module
- dATA_FOLDABLE :: Module
- dATA_EITHER :: Module
- dATA_COERCE :: Module
- dATA_ARRAY_PARALLEL_PRIM_NAME :: ModuleName
- dATA_ARRAY_PARALLEL_NAME :: ModuleName
- d1TyConName :: Name
- d1TyConKey :: Unique
- cstringLengthName :: Name
- cstringLengthIdKey :: Unique
- crossDataConKey :: Unique
- constructorClassName :: Name
- constructorClassKey :: Unique
- constraintKindTyConKey :: Unique
- considerAccessibleName :: Name
- considerAccessibleIdKey :: Unique
- consDataConKey :: Unique
- concatName :: Name
- concatIdKey :: Unique
- conName_RDR :: RdrName
- conIsRecord_RDR :: RdrName
- conFixity_RDR :: RdrName
- compose_RDR :: RdrName
- composeAName :: Name
- composeAIdKey :: Unique
- compare_RDR :: RdrName
- compactPrimTyConKey :: Unique
- compTyConName :: Name
- compTyConKey :: Unique
- comp1DataCon_RDR :: RdrName
- coercionTokenIdKey :: Unique
- coercibleTyConKey :: Unique
- coercibleSCSelIdKey :: Unique
- coercibleDataConKey :: Unique
- coerceKey :: Unique
- clsQual_RDR :: Module -> FastString -> RdrName
- clsQual :: Module -> FastString -> Unique -> Name
- choose_RDR :: RdrName
- choiceAName :: Name
- choiceAIdKey :: Unique
- charTyConKey :: Unique
- charPrimTyConKey :: Unique
- charDataConKey :: Unique
- callStackTyConName :: Name
- callStackTyConKey :: Unique
- cTyConName :: Name
- cTyConKey :: Unique
- cONTROL_EXCEPTION_BASE :: Module
- cONTROL_APPLICATIVE :: Module
- c1TyConName :: Name
- c1TyConKey :: Unique
- byteArrayPrimTyConKey :: Unique
- build_RDR :: RdrName
- buildName :: Name
- buildIdKey :: Unique
- breakpointName :: Name
- breakpointIdKey :: Unique
- breakpointCondName :: Name
- breakpointCondIdKey :: Unique
- boxityConKey :: Unique
- boxedRepDataConKey :: Unique
- boundedClassName :: Name
- boundedClassKey :: Unique
- boolTyConKey :: Unique
- bnnVarQual :: String -> Unique -> Name
- bniVarQual :: String -> Unique -> Name
- bnbVarQual :: String -> Unique -> Name
- bitIntegerIdKey :: Unique
- bindM_RDR :: RdrName
- bindMName :: Name
- bindMClassOpKey :: Unique
- bindIO_RDR :: RdrName
- bindIOName :: Name
- bindIOIdKey :: Unique
- bignatFromWordListName :: Name
- bignatFromWordListIdKey :: Unique
- bcoPrimTyConKey :: Unique
- basicKnownKeyNames :: [Name]
- augmentName :: Name
- augmentIdKey :: Unique
- assertName :: Name
- assertIdKey :: Unique
- assertErrorName :: Name
- assertErrorIdKey :: Unique
- arrayPrimTyConKey :: Unique
- arrayArrayPrimTyConKey :: Unique
- arrAName :: Name
- arrAIdKey :: Unique
- applicativeClassName :: Name
- applicativeClassKey :: Unique
- append_RDR :: RdrName
- appendName :: Name
- appendIdKey :: Unique
- appAName :: Name
- appAIdKey :: Unique
- ap_RDR :: RdrName
- apAName :: Name
- apAClassOpKey :: Unique
- anyTyConKey :: Unique
- anyBoxConKey :: Unique
- and_RDR :: RdrName
- alternativeClassName :: Name
- alternativeClassKey :: Unique
- alt_RDR :: RdrName
- all_RDR :: RdrName
- allNameStrings :: [String]
- addrPrimTyConKey :: Unique
- absentSumFieldErrorIdKey :: Unique
- absentErrorIdKey :: Unique
- aRROW :: Module
- class Uniquable a where
- hasKey :: Uniquable a => a -> Unique -> Bool
- 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 StrictnessMark
- data SrcUnpackedness
- data SrcStrictness
- data HsSrcBang = HsSrcBang SourceText SrcUnpackedness SrcStrictness
- data HsImplBang
- substEqSpec :: TCvSubst -> EqSpec -> EqSpec
- splitDataProductType_maybe :: Type -> Maybe (TyCon, [Type], DataCon, [Scaled Type])
- specialPromotedDc :: DataCon -> Bool
- mkEqSpec :: TyVar -> Type -> EqSpec
- mkDataCon :: Name -> Bool -> TyConRepName -> [HsSrcBang] -> [FieldLabel] -> [TyVar] -> [TyCoVar] -> [InvisTVBinder] -> [EqSpec] -> KnotTied ThetaType -> [KnotTied (Scaled Type)] -> KnotTied Type -> RuntimeRepInfo -> KnotTied TyCon -> ConTag -> ThetaType -> Id -> DataConRep -> DataCon
- isVanillaDataCon :: DataCon -> Bool
- isUnboxedTupleDataCon :: DataCon -> Bool
- isTupleDataCon :: DataCon -> Bool
- isSrcUnpacked :: SrcUnpackedness -> Bool
- isSrcStrict :: SrcStrictness -> Bool
- isNullarySrcDataCon :: DataCon -> Bool
- isNullaryRepDataCon :: DataCon -> Bool
- isNewDataCon :: DataCon -> Bool
- isMarkedStrict :: StrictnessMark -> Bool
- isBoxedTupleDataCon :: DataCon -> Bool
- isBanged :: HsImplBang -> Bool
- filterEqSpec :: [EqSpec] -> [TyVar] -> [TyVar]
- eqSpecType :: EqSpec -> Type
- eqSpecTyVar :: EqSpec -> TyVar
- eqSpecPreds :: [EqSpec] -> ThetaType
- eqSpecPair :: EqSpec -> (TyVar, Type)
- eqHsBang :: HsImplBang -> HsImplBang -> Bool
- dataConWrapperType :: DataCon -> Type
- dataConWrapId_maybe :: DataCon -> Maybe Id
- dataConUserTyVarsArePermuted :: DataCon -> Bool
- dataConUnivTyVars :: DataCon -> [TyVar]
- dataConUnivAndExTyCoVars :: DataCon -> [TyCoVar]
- dataConTheta :: DataCon -> ThetaType
- dataConTagZ :: DataCon -> ConTagZ
- dataConTag :: DataCon -> ConTag
- dataConSrcBangs :: DataCon -> [HsSrcBang]
- dataConRepType :: DataCon -> Type
- dataConRepStrictness :: DataCon -> [StrictnessMark]
- dataConRepArity :: DataCon -> Arity
- dataConRepArgTys :: DataCon -> [Scaled Type]
- dataConOtherTheta :: DataCon -> ThetaType
- dataConOrigTyCon :: DataCon -> TyCon
- dataConOrigResTy :: DataCon -> Type
- dataConOrigArgTys :: DataCon -> [Scaled Type]
- dataConNonlinearType :: DataCon -> Type
- dataConIsInfix :: DataCon -> Bool
- dataConInstSig :: DataCon -> [Type] -> ([TyCoVar], ThetaType, [Type])
- dataConInstArgTys :: DataCon -> [Type] -> [Scaled Type]
- dataConImplicitTyThings :: DataCon -> [TyThing]
- dataConImplBangs :: DataCon -> [HsImplBang]
- dataConIdentity :: DataCon -> ByteString
- dataConFieldType_maybe :: DataCon -> FieldLabelString -> Maybe (FieldLabel, Type)
- dataConFieldType :: DataCon -> FieldLabelString -> Type
- dataConEqSpec :: DataCon -> [EqSpec]
- dataConDisplayType :: Bool -> DataCon -> Type
- dataConCannotMatch :: [Type] -> DataCon -> Bool
- dataConBoxer :: DataCon -> Maybe DataConBoxer
- classDataCon :: Class -> DataCon
- 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
- isUnboxedSumDataCon :: DataCon -> Bool
- dataConWrapId :: DataCon -> Id
- dataConWorkId :: DataCon -> Id
- dataConUserTyVars :: DataCon -> [TyVar]
- dataConUserTyVarBinders :: DataCon -> [InvisTVBinder]
- dataConTyCon :: DataCon -> TyCon
- dataConStupidTheta :: DataCon -> ThetaType
- dataConSourceArity :: DataCon -> Arity
- dataConName :: DataCon -> Name
- dataConInstOrigArgTys :: DataCon -> [Type] -> [Scaled Type]
- dataConFullSig :: DataCon -> ([TyVar], [TyCoVar], [EqSpec], ThetaType, [Scaled Type], Type)
- dataConFieldLabels :: DataCon -> [FieldLabel]
- type ConTag = Int
- fIRST_TAG :: ConTag
- type FieldLabelString = FastString
- data FieldLabel = FieldLabel {}
- data InjectivityCheckResult
- data FamInstMatch = FamInstMatch {}
- type FamInstEnvs = (FamInstEnv, FamInstEnv)
- type FamInstEnv = UniqDFM TyCon FamilyInstEnv
- data FamInst = FamInst {}
- data FamFlavor
- topReduceTyFamApp_maybe :: FamInstEnvs -> TyCon -> [Type] -> Maybe (Coercion, Type, MCoercion)
- topNormaliseType_maybe :: FamInstEnvs -> Type -> Maybe (Coercion, Type)
- topNormaliseType :: FamInstEnvs -> Type -> Type
- reduceTyFamApp_maybe :: FamInstEnvs -> Role -> TyCon -> [Type] -> Maybe (Coercion, Type)
- pprFamInsts :: [FamInst] -> SDoc
- normaliseType :: FamInstEnvs -> Role -> Type -> (Coercion, Type)
- normaliseTcApp :: FamInstEnvs -> Role -> TyCon -> [Type] -> (Coercion, Type)
- 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
- mkImportedFamInst :: Name -> [RoughMatchTc] -> CoAxiom Unbranched -> FamInst
- mkCoAxBranch :: [TyVar] -> [TyVar] -> [CoVar] -> [Type] -> Type -> [Role] -> SrcSpan -> CoAxBranch
- mkBranchedCoAxiom :: Name -> TyCon -> [CoAxBranch] -> CoAxiom Branched
- lookupFamInstEnvInjectivityConflicts :: [Bool] -> FamInstEnvs -> FamInst -> [CoAxBranch]
- lookupFamInstEnvConflicts :: FamInstEnvs -> FamInst -> [FamInstMatch]
- lookupFamInstEnvByTyCon :: FamInstEnvs -> TyCon -> [FamInst]
- lookupFamInstEnv :: FamInstEnvs -> TyCon -> [Type] -> [FamInstMatch]
- isDominatedBy :: CoAxBranch -> [CoAxBranch] -> Bool
- injectiveBranches :: [Bool] -> CoAxBranch -> CoAxBranch -> InjectivityCheckResult
- familyInstances :: (FamInstEnv, FamInstEnv) -> TyCon -> [FamInst]
- famInstsRepTyCons :: [FamInst] -> [TyCon]
- famInstTyCon :: FamInst -> TyCon
- famInstRepTyCon_maybe :: FamInst -> Maybe TyCon
- famInstRHS :: FamInst -> Type
- famInstEnvSize :: FamInstEnv -> Int
- famInstEnvElts :: FamInstEnv -> [FamInst]
- famInstAxiom :: FamInst -> CoAxiom Unbranched
- extendFamInstEnvList :: FamInstEnv -> [FamInst] -> FamInstEnv
- extendFamInstEnv :: FamInstEnv -> FamInst -> FamInstEnv
- emptyFamInstEnvs :: (FamInstEnv, FamInstEnv)
- emptyFamInstEnv :: FamInstEnv
- dataFamInstRepTyCon :: FamInst -> TyCon
- apartnessCheck :: [Type] -> CoAxBranch -> Bool
- 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
- data XViaStrategyPs = XViaStrategyPs (EpAnn [AddEpAnn]) (LHsSigType GhcPs)
- data HsRuleAnn = HsRuleAnn {}
- 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)
- standaloneKindSigName :: forall (p :: Pass). StandaloneKindSig (GhcPass p) -> IdP (GhcPass p)
- roleAnnotDeclName :: forall (p :: Pass). RoleAnnotDecl (GhcPass p) -> IdP (GhcPass p)
- resultVariableName :: forall (a :: Pass). FamilyResultSig (GhcPass a) -> Maybe (IdP (GhcPass a))
- pprTyFamInstDecl :: forall (p :: Pass). OutputableBndrId p => TopLevelFlag -> TyFamInstDecl (GhcPass p) -> SDoc
- pprTyClDeclFlavour :: forall (p :: Pass). TyClDecl (GhcPass p) -> SDoc
- pprHsFamInstLHS :: forall (p :: Pass). OutputableBndrId p => IdP (GhcPass p) -> HsOuterFamEqnTyVarBndrs (GhcPass p) -> HsTyPats (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc
- pprDataFamInstFlavour :: forall (p :: Pass). DataFamInstDecl (GhcPass p) -> SDoc
- partitionBindsAndSigs :: [LHsDecl GhcPs] -> (LHsBinds GhcPs, [LSig GhcPs], [LFamilyDecl GhcPs], [LTyFamInstDecl GhcPs], [LDataFamInstDecl GhcPs], [LDocDecl GhcPs])
- mapDerivStrategy :: forall p (pass :: Pass). p ~ GhcPass pass => (XViaStrategy p -> XViaStrategy p) -> DerivStrategy p -> DerivStrategy p
- instDeclDataFamInsts :: forall (p :: Pass). [LInstDecl (GhcPass p)] -> [DataFamInstDecl (GhcPass p)]
- hsGroupTopLevelFixitySigs :: forall (p :: Pass). HsGroup (GhcPass p) -> [LFixitySig (GhcPass p)]
- hsDeclHasCusk :: TyClDecl GhcRn -> Bool
- hsConDeclTheta :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> [LHsType (GhcPass p)]
- getRecConArgs_maybe :: ConDecl GhcRn -> Maybe (LocatedL [LConDeclField GhcRn])
- getConNames :: ConDecl GhcRn -> [LocatedN Name]
- foldDerivStrategy :: forall p (pass :: Pass) r. p ~ GhcPass pass => r -> (XViaStrategy p -> r) -> DerivStrategy p -> r
- flattenRuleDecls :: forall (p :: Pass). [LRuleDecls (GhcPass p)] -> [LRuleDecl (GhcPass p)]
- familyDeclName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> IdP (GhcPass p)
- familyDeclLName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> XRec (GhcPass p) (IdP (GhcPass p))
- famResultKindSignature :: forall (p :: Pass). FamilyResultSig (GhcPass p) -> Maybe (LHsKind (GhcPass p))
- emptyRnGroup :: forall (p :: Pass). HsGroup (GhcPass p)
- emptyRdrGroup :: forall (p :: Pass). HsGroup (GhcPass p)
- appendGroups :: forall (p :: Pass). HsGroup (GhcPass p) -> HsGroup (GhcPass p) -> HsGroup (GhcPass p)
- data WarnDecls pass
- = Warnings {
- wd_ext :: XWarnings pass
- wd_src :: SourceText
- wd_warnings :: [LWarnDecl pass]
- | XWarnDecls !(XXWarnDecls pass)
- = Warnings {
- data WarnDecl pass
- = Warning (XWarning pass) [LIdP pass] WarningTxt
- | XWarnDecl !(XXWarnDecl pass)
- type TyFamInstEqn pass = FamEqn pass (LHsType pass)
- data TyFamInstDecl pass
- = TyFamInstDecl {
- tfid_xtn :: XCTyFamInstDecl pass
- tfid_eqn :: TyFamInstEqn pass
- | XTyFamInstDecl !(XXTyFamInstDecl pass)
- = TyFamInstDecl {
- type TyFamDefltDecl = TyFamInstDecl
- 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 {
- 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 {
- data StandaloneKindSig pass
- = StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass)
- | XStandaloneKindSig !(XXStandaloneKindSig pass)
- data SpliceDecl p
- = SpliceDecl (XSpliceDecl p) (XRec p (HsSplice p)) SpliceExplicitFlag
- | XSpliceDecl !(XXSpliceDecl p)
- data RuleDecls pass
- = HsRules {
- rds_ext :: XCRuleDecls pass
- rds_src :: SourceText
- rds_rules :: [LRuleDecl pass]
- | XRuleDecls !(XXRuleDecls pass)
- = HsRules {
- data RuleDecl pass
- data RuleBndr pass
- = RuleBndr (XCRuleBndr pass) (LIdP pass)
- | RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass)
- | XRuleBndr !(XXRuleBndr pass)
- data RoleAnnotDecl pass
- = RoleAnnotDecl (XCRoleAnnotDecl pass) (LIdP pass) [XRec pass (Maybe Role)]
- | XRoleAnnotDecl !(XXRoleAnnotDecl pass)
- data NewOrData
- type LWarnDecls pass = XRec pass (WarnDecls pass)
- type LWarnDecl pass = XRec pass (WarnDecl pass)
- type LTyFamInstEqn pass = XRec pass (TyFamInstEqn pass)
- type LTyFamInstDecl pass = XRec pass (TyFamInstDecl pass)
- type LTyFamDefltDecl pass = XRec pass (TyFamDefltDecl pass)
- type LTyClDecl pass = XRec pass (TyClDecl pass)
- type LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass)
- type LSpliceDecl pass = XRec pass (SpliceDecl pass)
- type LRuleDecls pass = XRec pass (RuleDecls pass)
- type LRuleDecl pass = XRec pass (RuleDecl pass)
- type LRuleBndr pass = XRec pass (RuleBndr pass)
- type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass)
- type LInstDecl pass = XRec pass (InstDecl pass)
- type LInjectivityAnn pass = XRec pass (InjectivityAnn pass)
- type LHsFunDep pass = XRec pass (FunDep pass)
- type LHsDerivingClause pass = XRec pass (HsDerivingClause pass)
- type LHsDecl p = XRec p (HsDecl p)
- type LForeignDecl pass = XRec pass (ForeignDecl pass)
- type LFamilyResultSig pass = XRec pass (FamilyResultSig pass)
- type LFamilyDecl pass = XRec pass (FamilyDecl pass)
- type LDocDecl pass = XRec pass DocDecl
- type LDerivStrategy pass = XRec pass (DerivStrategy pass)
- type LDerivDecl pass = XRec pass (DerivDecl pass)
- type LDerivClauseTys pass = XRec pass (DerivClauseTys pass)
- type LDefaultDecl pass = XRec pass (DefaultDecl pass)
- type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass)
- type LConDecl pass = XRec pass (ConDecl pass)
- type LClsInstDecl pass = XRec pass (ClsInstDecl pass)
- type LAnnDecl pass = XRec pass (AnnDecl 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 {
- data InjectivityAnn pass
- = InjectivityAnn (XCInjectivityAnn pass) (LIdP pass) [LIdP pass]
- | XInjectivityAnn !(XXInjectivityAnn pass)
- type HsTyPats pass = [LHsTypeArg pass]
- data HsRuleRn = HsRuleRn NameSet NameSet
- 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 HsDerivingClause pass
- = HsDerivingClause {
- deriv_clause_ext :: XCHsDerivingClause pass
- deriv_clause_strategy :: Maybe (LDerivStrategy pass)
- deriv_clause_tys :: LDerivClauseTys pass
- | XHsDerivingClause !(XXHsDerivingClause pass)
- = HsDerivingClause {
- type HsDeriving pass = [LHsDerivingClause pass]
- 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
- | RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p)
- | XHsDecl !(XXHsDecl p)
- data HsDataDefn pass
- = HsDataDefn {
- dd_ext :: XCHsDataDefn pass
- dd_ND :: NewOrData
- dd_ctxt :: Maybe (LHsContext pass)
- dd_cType :: Maybe (XRec pass CType)
- dd_kindSig :: Maybe (LHsKind pass)
- dd_cons :: [LConDecl pass]
- dd_derivs :: HsDeriving pass
- | XHsDataDefn !(XXHsDataDefn pass)
- = HsDataDefn {
- type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass])
- data HsConDeclGADTDetails pass
- = PrefixConGADT [HsScaled pass (LBangType pass)]
- | RecConGADT (XRec pass [LConDeclField pass])
- pattern XFunDep :: !(XXFunDep pass) -> FunDep pass
- data ForeignImport = CImport (Located CCallConv) (Located Safety) (Maybe Header) CImportSpec (Located SourceText)
- data ForeignExport = CExport (Located CExportSpec) (Located SourceText)
- data ForeignDecl pass
- = ForeignImport {
- fd_i_ext :: XForeignImport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fi :: ForeignImport
- | ForeignExport {
- fd_e_ext :: XForeignExport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fe :: ForeignExport
- | XForeignDecl !(XXForeignDecl pass)
- = ForeignImport {
- data FamilyResultSig pass
- = NoSig (XNoSig pass)
- | KindSig (XCKindSig pass) (LHsKind pass)
- | TyVarSig (XTyVarSig pass) (LHsTyVarBndr () pass)
- | XFamilyResultSig !(XXFamilyResultSig pass)
- data FamilyInfo pass
- = DataFamily
- | OpenTypeFamily
- | ClosedTypeFamily (Maybe [LTyFamInstEqn 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 {
- data FamEqn pass rhs
- = FamEqn {
- feqn_ext :: XCFamEqn pass rhs
- feqn_tycon :: LIdP pass
- feqn_bndrs :: HsOuterFamEqnTyVarBndrs pass
- feqn_pats :: HsTyPats pass
- feqn_fixity :: LexicalFixity
- feqn_rhs :: rhs
- | XFamEqn !(XXFamEqn pass rhs)
- = FamEqn {
- data DocDecl
- data DerivStrategy pass
- = StockStrategy (XStockStrategy pass)
- | AnyclassStrategy (XAnyClassStrategy pass)
- | NewtypeStrategy (XNewtypeStrategy pass)
- | ViaStrategy (XViaStrategy 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 {
- data DerivClauseTys pass
- = DctSingle (XDctSingle pass) (LHsSigType pass)
- | DctMulti (XDctMulti pass) [LHsSigType pass]
- | XDerivClauseTys !(XXDerivClauseTys pass)
- data DefaultDecl pass
- = DefaultDecl (XCDefaultDecl pass) [LHsType pass]
- | XDefaultDecl !(XXDefaultDecl pass)
- newtype DataFamInstDecl pass = DataFamInstDecl {
- dfid_eqn :: FamEqn pass (HsDataDefn pass)
- data DataDeclRn = DataDeclRn {
- tcdDataCusk :: Bool
- tcdFVs :: NameSet
- data ConDecl pass
- = ConDeclGADT {
- con_g_ext :: XConDeclGADT pass
- con_names :: [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 LHsDocString
- | 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 LHsDocString
- | XConDecl !(XXConDecl pass)
- = ConDeclGADT {
- 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 {
- data CImportSpec
- data AnnProvenance pass
- = ValueAnnProvenance (LIdP pass)
- | TypeAnnProvenance (LIdP pass)
- | ModuleAnnProvenance
- data AnnDecl pass
- = HsAnnotation (XHsAnnotation pass) SourceText (AnnProvenance pass) (XRec pass (HsExpr pass))
- | XAnnDecl !(XXAnnDecl pass)
- tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass]
- tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass]
- tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass]
- tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass]
- tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass
- pprFullRuleName :: Located (SourceText, RuleName) -> SDoc
- newOrDataToFlavour :: NewOrData -> TyConFlavour
- isTypeFamilyDecl :: TyClDecl pass -> Bool
- isSynDecl :: TyClDecl pass -> Bool
- isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool
- isFamilyDecl :: TyClDecl pass -> Bool
- isDataFamilyDecl :: TyClDecl pass -> Bool
- isDataDecl :: TyClDecl pass -> Bool
- isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool
- isClassDecl :: TyClDecl pass -> Bool
- hsGroupInstDecls :: HsGroup id -> [LInstDecl id]
- docDeclDoc :: DocDecl -> HsDocString
- derivStrategyName :: DerivStrategy a -> SDoc
- countTyClDecls :: [TyClDecl pass] -> (Int, Int, Int, Int, Int)
- collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass]
- annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p)
- data SpliceExplicitFlag
- module GHC.Hs.Expr
- module GHC.Hs.Doc
- module GHC.Hs.Extension
- module GHC.Hs.ImpExp
- module GHC.Hs.Pat
- module GHC.Hs.Type
- class UnXRec p => CollectPass p where
- collectXXPat :: Proxy p -> CollectFlag p -> XXPat p -> [IdP p] -> [IdP p]
- data CollectFlag p where
- CollNoDictBinders :: forall p. CollectFlag p
- CollWithDictBinders :: CollectFlag (GhcPass 'Typechecked)
- unitRecStmtTc :: RecStmtTc
- unguardedRHS :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan => EpAnn GrhsAnn -> SrcSpan -> LocatedA (body (GhcPass p)) -> [LGRHS (GhcPass p) (LocatedA (body (GhcPass p)))]
- unguardedGRHSs :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan => SrcSpan -> LocatedA (body (GhcPass p)) -> EpAnn GrhsAnn -> GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))
- spanHsLocaLBinds :: forall (p :: Pass). Data (HsLocalBinds (GhcPass p)) => HsLocalBinds (GhcPass p) -> SrcSpan
- nl_HsVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> HsExpr (GhcPass p)
- nlWildPatName :: LPat GhcRn
- nlWildPat :: LPat GhcPs
- nlWildConPat :: DataCon -> LPat GhcPs
- nlVarPat :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LPat (GhcPass p)
- nlTuplePat :: [LPat GhcPs] -> Boxity -> LPat GhcPs
- nlParPat :: forall (name :: Pass). LPat (GhcPass name) -> LPat (GhcPass name)
- nlNullaryConPat :: RdrName -> LPat GhcPs
- nlLitPat :: HsLit GhcPs -> LPat GhcPs
- nlList :: [LHsExpr GhcPs] -> LHsExpr GhcPs
- nlInfixConPat :: RdrName -> LPat GhcPs -> LPat GhcPs -> LPat GhcPs
- nlHsVarApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [IdP (GhcPass p)] -> LHsExpr (GhcPass p)
- nlHsVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LHsExpr (GhcPass p)
- nlHsTyVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LHsType (GhcPass p)
- nlHsTyConApp :: forall (p :: Pass) a. IsSrcSpanAnn p a => LexicalFixity -> IdP (GhcPass p) -> [LHsTypeArg (GhcPass p)] -> LHsType (GhcPass p)
- nlHsTyApps :: Id -> [Type] -> [LHsExpr GhcTc] -> LHsExpr GhcTc
- nlHsTyApp :: Id -> [Type] -> LHsExpr GhcTc
- nlHsSyntaxApps :: SyntaxExprTc -> [LHsExpr GhcTc] -> LHsExpr GhcTc
- nlHsParTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p)
- nlHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- nlHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs
- nlHsLit :: forall (p :: Pass). HsLit (GhcPass p) -> LHsExpr (GhcPass p)
- nlHsLam :: LMatch GhcPs (LHsExpr GhcPs) -> LHsExpr GhcPs
- nlHsIntLit :: forall (p :: Pass). Integer -> LHsExpr (GhcPass p)
- nlHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs
- nlHsFunTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- nlHsDo :: HsStmtContext GhcRn -> [LStmt GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs
- nlHsDataCon :: DataCon -> LHsExpr GhcTc
- nlHsCase :: LHsExpr GhcPs -> [LMatch GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs
- nlHsApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [LHsExpr (GhcPass p)] -> LHsExpr (GhcPass p)
- nlHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- nlHsAppKindTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsKind (GhcPass p) -> LHsType (GhcPass p)
- nlHsApp :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- nlConVarPatName :: Name -> [Name] -> LPat GhcRn
- nlConVarPat :: RdrName -> [RdrName] -> LPat GhcPs
- nlConPatName :: Name -> [LPat GhcRn] -> LPat GhcRn
- nlConPat :: RdrName -> [LPat GhcPs] -> LPat GhcPs
- mkVarBind :: forall (p :: Pass). IdP (GhcPass p) -> LHsExpr (GhcPass p) -> LHsBind (GhcPass p)
- mkUntypedSplice :: EpAnn [AddEpAnn] -> SpliceDecoration -> LHsExpr GhcPs -> HsSplice GhcPs
- mkTypedSplice :: EpAnn [AddEpAnn] -> SpliceDecoration -> LHsExpr GhcPs -> HsSplice GhcPs
- mkTransformStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- mkTransformByStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- mkTopFunBind :: Origin -> LocatedN Name -> [LMatch GhcRn (LHsExpr GhcRn)] -> HsBind GhcRn
- mkTcBindStmt :: LPat GhcTc -> LocatedA (bodyR GhcTc) -> StmtLR GhcTc GhcTc (LocatedA (bodyR GhcTc))
- mkSimpleMatch :: forall (p :: Pass) body. (Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA, Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan) => HsMatchContext (NoGhcTc (GhcPass p)) -> [LPat (GhcPass p)] -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p)))
- mkSimpleGeneratedFunBind :: SrcSpan -> RdrName -> [LPat GhcPs] -> LHsExpr GhcPs -> LHsBind GhcPs
- mkRnBindStmt :: LPat GhcRn -> LocatedA (bodyR GhcRn) -> StmtLR GhcRn GhcRn (LocatedA (bodyR GhcRn))
- mkRecStmt :: forall (idL :: Pass) bodyR. Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL => EpAnn AnnList -> LocatedL [LStmtLR (GhcPass idL) GhcPs bodyR] -> StmtLR (GhcPass idL) GhcPs bodyR
- mkPsBindStmt :: EpAnn [AddEpAnn] -> LPat GhcPs -> LocatedA (bodyR GhcPs) -> StmtLR GhcPs GhcPs (LocatedA (bodyR GhcPs))
- mkPrefixFunRhs :: LIdP p -> HsMatchContext p
- mkPatSynBind :: LocatedN RdrName -> HsPatSynDetails GhcPs -> LPat GhcPs -> HsPatSynDir GhcPs -> EpAnn [AddEpAnn] -> HsBind GhcPs
- mkParPat :: forall (p :: Pass). IsPass p => LPat (GhcPass p) -> LPat (GhcPass p)
- mkNPlusKPat :: LocatedN RdrName -> Located (HsOverLit GhcPs) -> EpAnn EpaLocation -> Pat GhcPs
- mkNPat :: Located (HsOverLit GhcPs) -> Maybe (SyntaxExpr GhcPs) -> EpAnn [AddEpAnn] -> Pat GhcPs
- 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)))
- mkMatch :: forall (p :: Pass). IsPass p => HsMatchContext (NoGhcTc (GhcPass p)) -> [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> HsLocalBinds (GhcPass p) -> LMatch (GhcPass p) (LHsExpr (GhcPass p))
- mkLocatedList :: Semigroup a => [GenLocated (SrcAnn a) e2] -> LocatedAn an [GenLocated (SrcAnn a) e2]
- mkLetStmt :: EpAnn [AddEpAnn] -> HsLocalBinds GhcPs -> StmtLR GhcPs GhcPs (LocatedA b)
- mkLastStmt :: forall (idR :: Pass) bodyR (idL :: Pass). IsPass idR => LocatedA (bodyR (GhcPass idR)) -> StmtLR (GhcPass idL) (GhcPass idR) (LocatedA (bodyR (GhcPass idR)))
- mkLHsWrapCo :: TcCoercionN -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkLHsWrap :: HsWrapper -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkLHsVarTuple :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p)
- mkLHsTupleExpr :: forall (p :: Pass). [LHsExpr (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p)
- mkLHsPar :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkLHsCmdWrap :: HsWrapper -> LHsCmd GhcTc -> LHsCmd GhcTc
- mkHsWrapPatCo :: TcCoercionN -> Pat GhcTc -> Type -> Pat GhcTc
- mkHsWrapPat :: HsWrapper -> Pat GhcTc -> Type -> Pat GhcTc
- mkHsWrapCoR :: TcCoercionR -> HsExpr GhcTc -> HsExpr GhcTc
- mkHsWrapCo :: TcCoercionN -> HsExpr GhcTc -> HsExpr GhcTc
- mkHsWrap :: HsWrapper -> HsExpr GhcTc -> HsExpr GhcTc
- mkHsVarBind :: SrcSpan -> RdrName -> LHsExpr GhcPs -> LHsBind GhcPs
- mkHsStringPrimLit :: forall (p :: Pass). FastString -> HsLit (GhcPass p)
- mkHsString :: forall (p :: Pass). String -> HsLit (GhcPass p)
- mkHsSigEnv :: (LSig GhcRn -> Maybe ([LocatedN Name], a)) -> [LSig GhcRn] -> NameEnv a
- mkHsQuasiQuote :: RdrName -> SrcSpan -> FastString -> HsSplice GhcPs
- mkHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> HsExpr GhcPs
- mkHsLams :: [TyVar] -> [EvVar] -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkHsLam :: forall (p :: Pass). (IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ NoExtField) => [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- mkHsIsString :: SourceText -> FastString -> HsOverLit GhcPs
- mkHsIntegral :: IntegralLit -> HsOverLit GhcPs
- mkHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> EpAnn AnnsIf -> HsExpr GhcPs
- mkHsFractional :: FractionalLit -> HsOverLit GhcPs
- mkHsDoAnns :: HsStmtContext GhcRn -> LocatedL [ExprLStmt GhcPs] -> EpAnn AnnList -> HsExpr GhcPs
- mkHsDo :: HsStmtContext GhcRn -> LocatedL [ExprLStmt GhcPs] -> HsExpr GhcPs
- mkHsDictLet :: TcEvBinds -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkHsCompAnns :: HsStmtContext GhcRn -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> EpAnn AnnList -> HsExpr GhcPs
- mkHsComp :: HsStmtContext GhcRn -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> HsExpr GhcPs
- mkHsCmdWrap :: HsWrapper -> HsCmd GhcTc -> HsCmd GhcTc
- mkHsCmdIf :: LHsExpr GhcPs -> LHsCmd GhcPs -> LHsCmd GhcPs -> EpAnn AnnsIf -> HsCmd GhcPs
- mkHsCharPrimLit :: forall (p :: Pass). Char -> HsLit (GhcPass p)
- mkHsCaseAlt :: forall (p :: Pass) body. (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan, Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA) => LPat (GhcPass p) -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p)))
- 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)
- mkHsApps :: 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)
- mkHsAppTypes :: LHsExpr GhcRn -> [LHsWcType GhcRn] -> LHsExpr GhcRn
- mkHsAppType :: LHsExpr GhcRn -> LHsWcType GhcRn -> LHsExpr GhcRn
- mkHsApp :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkGroupUsingStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- mkGroupByUsingStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- mkFunBind :: Origin -> LocatedN RdrName -> [LMatch GhcPs (LHsExpr GhcPs)] -> HsBind GhcPs
- mkClassOpSigs :: [LSig GhcPs] -> [LSig GhcPs]
- mkChunkified :: ([a] -> a) -> [a] -> a
- mkBodyStmt :: forall bodyR (idL :: Pass). LocatedA (bodyR GhcPs) -> StmtLR (GhcPass idL) GhcPs (LocatedA (bodyR GhcPs))
- mkBigLHsVarTup :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p)
- mkBigLHsVarPatTup :: [IdP GhcRn] -> LPat GhcRn
- mkBigLHsTup :: forall (id :: Pass). [LHsExpr (GhcPass id)] -> XExplicitTuple (GhcPass id) -> LHsExpr (GhcPass id)
- mkBigLHsPatTup :: [LPat GhcRn] -> LPat GhcRn
- missingTupArg :: EpAnn EpaLocation -> HsTupArg GhcPs
- lStmtsImplicits :: forall (idR :: Pass) (body :: Type -> Type). [LStmtLR GhcRn (GhcPass idR) (LocatedA (body (GhcPass idR)))] -> [(SrcSpan, [Name])]
- lPatImplicits :: LPat GhcRn -> [(SrcSpan, [Name])]
- isUnliftedHsBind :: HsBind GhcTc -> Bool
- isInfixFunBind :: forall id1 id2. UnXRec id2 => HsBindLR id1 id2 -> Bool
- isBangedHsBind :: HsBind GhcTc -> Bool
- hsValBindsImplicits :: forall (idR :: Pass). HsValBindsLR GhcRn (GhcPass idR) -> [(SrcSpan, [Name])]
- hsTypeToHsSigWcType :: LHsType GhcPs -> LHsSigWcType GhcPs
- hsTypeToHsSigType :: LHsType GhcPs -> LHsSigType GhcPs
- hsTyClForeignBinders :: [TyClGroup GhcRn] -> [LForeignDecl GhcRn] -> [Name]
- hsPatSynSelectors :: forall (p :: Pass). IsPass p => HsValBinds (GhcPass p) -> [FieldOcc (GhcPass p)]
- hsLTyClDeclBinders :: forall (p :: Pass). IsPass p => LocatedA (TyClDecl (GhcPass p)) -> ([LocatedA (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
- hsGroupBinders :: HsGroup GhcRn -> [Name]
- hsForeignDeclsBinders :: forall (p :: Pass) a. (UnXRec (GhcPass p), IsSrcSpanAnn p a) => [LForeignDecl (GhcPass p)] -> [LIdP (GhcPass p)]
- hsDataFamInstBinders :: forall (p :: Pass). IsPass p => DataFamInstDecl (GhcPass p) -> ([LocatedA (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
- getPatSynBinds :: UnXRec id => [(RecFlag, LHsBinds id)] -> [PatSynBind id id]
- emptyTransStmt :: EpAnn [AddEpAnn] -> StmtLR GhcPs GhcPs (LHsExpr GhcPs)
- emptyRecStmtName :: Anno [GenLocated (Anno (StmtLR GhcRn GhcRn bodyR)) (StmtLR GhcRn GhcRn bodyR)] ~ SrcSpanAnnL => StmtLR GhcRn GhcRn bodyR
- emptyRecStmtId :: Stmt GhcTc (LocatedA (HsCmd 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
- collectStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [StmtLR (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)]
- collectPatsBinders :: CollectPass p => CollectFlag p -> [LPat p] -> [IdP p]
- collectPatBinders :: CollectPass p => CollectFlag p -> LPat p -> [IdP p]
- collectMethodBinders :: UnXRec idL => LHsBindsLR idL idR -> [LIdP idL]
- collectLocalBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)]
- collectLStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [LStmtLR (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)]
- collectHsValBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (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)]
- collectHsBindListBinders :: CollectPass p => CollectFlag p -> [LHsBindLR p idR] -> [IdP p]
- collectHsBindBinders :: CollectPass p => CollectFlag p -> HsBindLR p idR -> [IdP p]
- chunkify :: [a] -> [[a]]
- 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 UntypedSpliceFlavour
- data TransForm
- newtype ThModFinalizers = ThModFinalizers [ForeignRef (Q ())]
- 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 Stmt id body = StmtLR id id body
- type SplicePointName = Name
- data SpliceDecoration
- type RecUpdProj p = RecProj p (LHsExpr p)
- type RecProj p arg = HsRecField' (FieldLabelStrings p) arg
- type family PendingTcSplice' p
- type family PendingRnSplice' p
- data ParStmtBlock idL idR
- = ParStmtBlock (XParStmtBlock idL idR) [ExprLStmt idL] [IdP idR] (SyntaxExpr idR)
- | XParStmtBlock !(XXParStmtBlock idL idR)
- data MatchGroupTc = MatchGroupTc {
- mg_arg_tys :: [Scaled Type]
- mg_res_ty :: Type
- data Match p body
- type LStmtLR idL idR body = XRec idL (StmtLR idL idR body)
- type LStmt id body = XRec id (StmtLR id id body)
- type LMatch id body = XRec id (Match id body)
- type LHsTupArg id = XRec id (HsTupArg id)
- type LHsRecUpdProj p = XRec p (RecUpdProj p)
- type LHsRecProj p arg = XRec p (RecProj p arg)
- type LHsCmdTop p = XRec p (HsCmdTop p)
- type LHsCmd id = XRec id (HsCmd id)
- type LGRHS id body = XRec id (GRHS id body)
- data HsTupArg id
- data HsStmtContext p
- = ListComp
- | MonadComp
- | DoExpr (Maybe ModuleName)
- | MDoExpr (Maybe ModuleName)
- | ArrowExpr
- | GhciStmtCtxt
- | PatGuard (HsMatchContext p)
- | ParStmtCtxt (HsStmtContext p)
- | TransStmtCtxt (HsStmtContext p)
- data HsSplicedThing id
- = HsSplicedExpr (HsExpr id)
- | HsSplicedTy (HsType id)
- | HsSplicedPat (Pat id)
- type HsRecordBinds p = HsRecFields p (LHsExpr p)
- data HsPragE p
- = HsPragSCC (XSCC p) SourceText StringLiteral
- | XHsPragE !(XXPragE p)
- data HsMatchContext p
- data HsFieldLabel p
- = HsFieldLabel { }
- | XHsFieldLabel !(XXHsFieldLabel p)
- type family HsDoRn p
- data HsCmdTop p
- 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 (XCmdLam id) (MatchGroup id (LHsCmd id))
- | HsCmdPar (XCmdPar id) (LHsCmd id)
- | HsCmdCase (XCmdCase id) (LHsExpr id) (MatchGroup id (LHsCmd id))
- | HsCmdLamCase (XCmdLamCase 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 family HsBracketRn p
- data HsBracket p
- data HsArrowMatchContext
- data HsArrAppType
- type GuardStmt id = Stmt id (LHsExpr id)
- type GuardLStmt id = LStmt id (LHsExpr id)
- type GhciStmt id = Stmt id (LHsExpr id)
- type GhciLStmt id = LStmt id (LHsExpr id)
- data GRHS p body
- = GRHS (XCGRHS p body) [GuardLStmt p] body
- | XGRHS !(XXGRHS p body)
- newtype FieldLabelStrings p = FieldLabelStrings [Located (HsFieldLabel p)]
- type FailOperator id = Maybe (SyntaxExpr id)
- type ExprStmt id = Stmt id (LHsExpr id)
- type ExprLStmt id = LStmt id (LHsExpr id)
- type CmdSyntaxTable p = [(Name, HsExpr p)]
- type CmdStmt id = Stmt id (LHsCmd id)
- type CmdLStmt id = LStmt id (LHsCmd id)
- data ArithSeqInfo id
- type family ApplicativeArgStmCtxPass idL
- 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 :: HsStmtContext (ApplicativeArgStmCtxPass idL)
- | XApplicativeArg !(XXApplicativeArg idL)
- = ApplicativeArgOne {
- qualifiedDoModuleName_maybe :: HsStmtContext p -> Maybe ModuleName
- prependQualified :: Maybe ModuleName -> SDoc -> SDoc
- pprStmtContext :: (Outputable (IdP p), UnXRec p) => HsStmtContext p -> SDoc
- pprMatchContextNoun :: (Outputable (IdP p), UnXRec p) => HsMatchContext p -> SDoc
- pprMatchContext :: (Outputable (IdP p), UnXRec p) => HsMatchContext p -> SDoc
- pprFieldLabelStrings :: FieldLabelStrings p -> SDoc
- pprExternalSrcLoc :: (StringLiteral, (Int, Int), (Int, Int)) -> SDoc
- pprArrowMatchContextNoun :: HsArrowMatchContext -> SDoc
- pprAStmtContext :: (Outputable (IdP p), UnXRec p) => HsStmtContext p -> SDoc
- matchSeparator :: HsMatchContext p -> SDoc
- isTypedSplice :: HsSplice id -> Bool
- isTypedBracket :: HsBracket id -> Bool
- isPatSynCtxt :: HsMatchContext p -> Bool
- isMonadStmtContext :: HsStmtContext id -> Bool
- isMonadCompContext :: HsStmtContext id -> Bool
- isInfixMatch :: Match id body -> Bool
- isComprehensionContext :: HsStmtContext id -> Bool
- data WarnDecls pass
- = Warnings {
- wd_ext :: XWarnings pass
- wd_src :: SourceText
- wd_warnings :: [LWarnDecl pass]
- | XWarnDecls !(XXWarnDecls pass)
- = Warnings {
- data WarnDecl pass
- = Warning (XWarning pass) [LIdP pass] WarningTxt
- | XWarnDecl !(XXWarnDecl pass)
- type TyFamInstEqn pass = FamEqn pass (LHsType pass)
- data TyFamInstDecl pass
- = TyFamInstDecl {
- tfid_xtn :: XCTyFamInstDecl pass
- tfid_eqn :: TyFamInstEqn pass
- | XTyFamInstDecl !(XXTyFamInstDecl pass)
- = TyFamInstDecl {
- type TyFamDefltDecl = TyFamInstDecl
- 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 {
- 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 {
- data StandaloneKindSig pass
- = StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass)
- | XStandaloneKindSig !(XXStandaloneKindSig pass)
- data SpliceDecl p
- = SpliceDecl (XSpliceDecl p) (XRec p (HsSplice p)) SpliceExplicitFlag
- | XSpliceDecl !(XXSpliceDecl p)
- data RuleDecls pass
- = HsRules {
- rds_ext :: XCRuleDecls pass
- rds_src :: SourceText
- rds_rules :: [LRuleDecl pass]
- | XRuleDecls !(XXRuleDecls pass)
- = HsRules {
- data RuleDecl pass
- data RuleBndr pass
- = RuleBndr (XCRuleBndr pass) (LIdP pass)
- | RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass)
- | XRuleBndr !(XXRuleBndr pass)
- data RoleAnnotDecl pass
- = RoleAnnotDecl (XCRoleAnnotDecl pass) (LIdP pass) [XRec pass (Maybe Role)]
- | XRoleAnnotDecl !(XXRoleAnnotDecl pass)
- data NewOrData
- type LWarnDecls pass = XRec pass (WarnDecls pass)
- type LWarnDecl pass = XRec pass (WarnDecl pass)
- type LTyFamInstEqn pass = XRec pass (TyFamInstEqn pass)
- type LTyFamInstDecl pass = XRec pass (TyFamInstDecl pass)
- type LTyFamDefltDecl pass = XRec pass (TyFamDefltDecl pass)
- type LTyClDecl pass = XRec pass (TyClDecl pass)
- type LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass)
- type LSpliceDecl pass = XRec pass (SpliceDecl pass)
- type LRuleDecls pass = XRec pass (RuleDecls pass)
- type LRuleDecl pass = XRec pass (RuleDecl pass)
- type LRuleBndr pass = XRec pass (RuleBndr pass)
- type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass)
- type LInstDecl pass = XRec pass (InstDecl pass)
- type LInjectivityAnn pass = XRec pass (InjectivityAnn pass)
- type LHsFunDep pass = XRec pass (FunDep pass)
- type LHsDerivingClause pass = XRec pass (HsDerivingClause pass)
- type LHsDecl p = XRec p (HsDecl p)
- type LForeignDecl pass = XRec pass (ForeignDecl pass)
- type LFamilyResultSig pass = XRec pass (FamilyResultSig pass)
- type LFamilyDecl pass = XRec pass (FamilyDecl pass)
- type LDocDecl pass = XRec pass DocDecl
- type LDerivStrategy pass = XRec pass (DerivStrategy pass)
- type LDerivDecl pass = XRec pass (DerivDecl pass)
- type LDerivClauseTys pass = XRec pass (DerivClauseTys pass)
- type LDefaultDecl pass = XRec pass (DefaultDecl pass)
- type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass)
- type LConDecl pass = XRec pass (ConDecl pass)
- type LClsInstDecl pass = XRec pass (ClsInstDecl pass)
- type LAnnDecl pass = XRec pass (AnnDecl 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 {
- data InjectivityAnn pass
- = InjectivityAnn (XCInjectivityAnn pass) (LIdP pass) [LIdP pass]
- | XInjectivityAnn !(XXInjectivityAnn pass)
- type HsTyPats pass = [LHsTypeArg pass]
- data HsRuleRn = HsRuleRn NameSet NameSet
- 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 HsDerivingClause pass
- = HsDerivingClause {
- deriv_clause_ext :: XCHsDerivingClause pass
- deriv_clause_strategy :: Maybe (LDerivStrategy pass)
- deriv_clause_tys :: LDerivClauseTys pass
- | XHsDerivingClause !(XXHsDerivingClause pass)
- = HsDerivingClause {
- type HsDeriving pass = [LHsDerivingClause pass]
- 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
- | RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p)
- | XHsDecl !(XXHsDecl p)
- data HsDataDefn pass
- = HsDataDefn {
- dd_ext :: XCHsDataDefn pass
- dd_ND :: NewOrData
- dd_ctxt :: Maybe (LHsContext pass)
- dd_cType :: Maybe (XRec pass CType)
- dd_kindSig :: Maybe (LHsKind pass)
- dd_cons :: [LConDecl pass]
- dd_derivs :: HsDeriving pass
- | XHsDataDefn !(XXHsDataDefn pass)
- = HsDataDefn {
- type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass])
- data HsConDeclGADTDetails pass
- = PrefixConGADT [HsScaled pass (LBangType pass)]
- | RecConGADT (XRec pass [LConDeclField pass])
- pattern XFunDep :: !(XXFunDep pass) -> FunDep pass
- data ForeignImport = CImport (Located CCallConv) (Located Safety) (Maybe Header) CImportSpec (Located SourceText)
- data ForeignExport = CExport (Located CExportSpec) (Located SourceText)
- data ForeignDecl pass
- = ForeignImport {
- fd_i_ext :: XForeignImport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fi :: ForeignImport
- | ForeignExport {
- fd_e_ext :: XForeignExport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fe :: ForeignExport
- | XForeignDecl !(XXForeignDecl pass)
- = ForeignImport {
- data FamilyResultSig pass
- = NoSig (XNoSig pass)
- | KindSig (XCKindSig pass) (LHsKind pass)
- | TyVarSig (XTyVarSig pass) (LHsTyVarBndr () pass)
- | XFamilyResultSig !(XXFamilyResultSig pass)
- data FamilyInfo pass
- = DataFamily
- | OpenTypeFamily
- | ClosedTypeFamily (Maybe [LTyFamInstEqn 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 {
- data FamEqn pass rhs
- = FamEqn {
- feqn_ext :: XCFamEqn pass rhs
- feqn_tycon :: LIdP pass
- feqn_bndrs :: HsOuterFamEqnTyVarBndrs pass
- feqn_pats :: HsTyPats pass
- feqn_fixity :: LexicalFixity
- feqn_rhs :: rhs
- | XFamEqn !(XXFamEqn pass rhs)
- = FamEqn {
- data DocDecl
- data DerivStrategy pass
- = StockStrategy (XStockStrategy pass)
- | AnyclassStrategy (XAnyClassStrategy pass)
- | NewtypeStrategy (XNewtypeStrategy pass)
- | ViaStrategy (XViaStrategy 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 {
- data DerivClauseTys pass
- = DctSingle (XDctSingle pass) (LHsSigType pass)
- | DctMulti (XDctMulti pass) [LHsSigType pass]
- | XDerivClauseTys !(XXDerivClauseTys pass)
- data DefaultDecl pass
- = DefaultDecl (XCDefaultDecl pass) [LHsType pass]
- | XDefaultDecl !(XXDefaultDecl pass)
- newtype DataFamInstDecl pass = DataFamInstDecl {
- dfid_eqn :: FamEqn pass (HsDataDefn pass)
- data DataDeclRn = DataDeclRn {
- tcdDataCusk :: Bool
- tcdFVs :: NameSet
- data ConDecl pass
- = ConDeclGADT {
- con_g_ext :: XConDeclGADT pass
- con_names :: [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 LHsDocString
- | 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 LHsDocString
- | XConDecl !(XXConDecl pass)
- = ConDeclGADT {
- 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 {
- data CImportSpec
- data AnnProvenance pass
- = ValueAnnProvenance (LIdP pass)
- | TypeAnnProvenance (LIdP pass)
- | ModuleAnnProvenance
- data AnnDecl pass
- = HsAnnotation (XHsAnnotation pass) SourceText (AnnProvenance pass) (XRec pass (HsExpr pass))
- | XAnnDecl !(XXAnnDecl pass)
- tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass]
- tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass]
- tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass]
- tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass]
- tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass
- pprFullRuleName :: Located (SourceText, RuleName) -> SDoc
- pprFlavour :: FamilyInfo pass -> SDoc
- newOrDataToFlavour :: NewOrData -> TyConFlavour
- isTypeFamilyDecl :: TyClDecl pass -> Bool
- isSynDecl :: TyClDecl pass -> Bool
- isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool
- isFamilyDecl :: TyClDecl pass -> Bool
- isDataFamilyDecl :: TyClDecl pass -> Bool
- isDataDecl :: TyClDecl pass -> Bool
- isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool
- isClassDecl :: TyClDecl pass -> Bool
- hsGroupInstDecls :: HsGroup id -> [LInstDecl id]
- docDeclDoc :: DocDecl -> HsDocString
- derivStrategyName :: DerivStrategy a -> SDoc
- countTyClDecls :: [TyClDecl pass] -> (Int, Int, Int, Int, Int)
- collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass]
- annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p)
- data TcSpecPrags
- data TcSpecPrag = SpecPrag Id HsWrapper InlinePragma
- 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)
- | IdSig (XIdSig pass) Id
- | FixSig (XFixSig pass) (FixitySig pass)
- | InlineSig (XInlineSig pass) (LIdP pass) InlinePragma
- | SpecSig (XSpecSig pass) (LIdP pass) [LHsSigType pass] InlinePragma
- | SpecInstSig (XSpecInstSig pass) SourceText (LHsSigType pass)
- | MinimalSig (XMinimalSig pass) SourceText (LBooleanFormula (LIdP pass))
- | SCCFunSig (XSCCFunSig pass) SourceText (LIdP pass) (Maybe (XRec pass StringLiteral))
- | CompleteMatchSig (XCompleteMatchSig pass) SourceText (XRec pass [LIdP pass]) (Maybe (LIdP pass))
- | XSig !(XXSig pass)
- data RecordPatSynField pass = RecordPatSynField {
- recordPatSynField :: FieldOcc pass
- recordPatSynPatVar :: LIdP pass
- 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 LTcSpecPrag = Located TcSpecPrag
- type LSig pass = XRec pass (Sig pass)
- type LIPBind id = XRec id (IPBind id)
- type LHsLocalBindsLR idL idR = XRec idL (HsLocalBindsLR idL idR)
- type LHsLocalBinds id = XRec id (HsLocalBinds id)
- type LHsBindsLR idL idR = Bag (LHsBindLR idL idR)
- type LHsBinds id = LHsBindsLR id id
- type LHsBindLR idL idR = XRec idL (HsBindLR idL idR)
- type LHsBind id = LHsBindLR id id
- type LFixitySig pass = XRec pass (FixitySig pass)
- data IPBind id
- data HsValBindsLR idL idR
- = ValBinds (XValBinds idL idR) (LHsBindsLR idL idR) [LSig idR]
- | XValBindsLR !(XXValBindsLR idL idR)
- type HsValBinds id = HsValBindsLR id id
- data HsPatSynDir id
- type HsPatSynDetails pass = HsConDetails Void (LIdP pass) [RecordPatSynField pass]
- 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 HsLocalBinds id = HsLocalBindsLR id id
- data HsIPBinds id
- = IPBinds (XIPBinds id) [LIPBind id]
- | XHsIPBinds !(XXHsIPBinds id)
- data HsBindLR idL idR
- = FunBind {
- fun_ext :: XFunBind idL idR
- fun_id :: LIdP idL
- fun_matches :: MatchGroup idR (LHsExpr idR)
- fun_tick :: [CoreTickish]
- | PatBind {
- pat_ext :: XPatBind idL idR
- pat_lhs :: LPat idL
- pat_rhs :: GRHSs idR (LHsExpr idR)
- pat_ticks :: ([CoreTickish], [[CoreTickish]])
- | VarBind { }
- | AbsBinds {
- abs_ext :: XAbsBinds idL idR
- abs_tvs :: [TyVar]
- abs_ev_vars :: [EvVar]
- abs_exports :: [ABExport idL]
- abs_ev_binds :: [TcEvBinds]
- abs_binds :: LHsBinds idL
- abs_sig :: Bool
- | PatSynBind (XPatSynBind idL idR) (PatSynBind idL idR)
- | XHsBindsLR !(XXHsBindsLR idL idR)
- = FunBind {
- type HsBind id = HsBindLR id id
- data FixitySig pass
- = FixitySig (XFixitySig pass) [LIdP pass] Fixity
- | XFixitySig !(XXFixitySig pass)
- data ABExport p
- noSpecPrags :: TcSpecPrags
- isTypeLSig :: UnXRec p => LSig p -> Bool
- isSpecLSig :: UnXRec p => LSig p -> Bool
- isSpecInstLSig :: UnXRec p => LSig p -> Bool
- isSCCFunSig :: UnXRec p => LSig p -> Bool
- isPragLSig :: UnXRec p => LSig p -> Bool
- isMinimalLSig :: UnXRec p => LSig p -> Bool
- isInlineLSig :: UnXRec p => LSig p -> Bool
- isFixityLSig :: UnXRec p => LSig p -> Bool
- isDefaultMethod :: TcSpecPrags -> Bool
- isCompleteMatchSig :: UnXRec p => LSig p -> Bool
- hsSigDoc :: Sig name -> SDoc
- hasSpecPrags :: TcSpecPrags -> Bool
- type LHsRecUpdField p = XRec p (HsRecUpdField p)
- type LHsRecField' p id arg = XRec p (HsRecField' id arg)
- type LHsRecField p arg = XRec p (HsRecField p arg)
- type HsRecUpdField p = HsRecField' (AmbiguousFieldOcc p) (LHsExpr p)
- data HsRecFields p arg = HsRecFields {
- rec_flds :: [LHsRecField p arg]
- rec_dotdot :: Maybe (Located Int)
- data HsRecField' id arg = HsRecField {
- hsRecFieldAnn :: XHsRecField id
- hsRecFieldLbl :: Located id
- hsRecFieldArg :: arg
- hsRecPun :: Bool
- type HsRecField p arg = HsRecField' (FieldOcc p) arg
- type HsConPatDetails p = HsConDetails (HsPatSigType (NoGhcTc p)) (LPat p) (HsRecFields p (LPat p))
- type family ConLikeP x
- hsRecFieldsArgs :: UnXRec p => HsRecFields p arg -> [arg]
- hsRecFields :: UnXRec p => HsRecFields p arg -> [XCFieldOcc p]
- hsRecFieldSel :: HsRecField pass arg -> Located (XCFieldOcc pass)
- hsConPatArgs :: UnXRec p => HsConPatDetails p -> [LPat p]
- type LHsWcType pass = HsWildCardBndrs pass (LHsType pass)
- type LHsTypeArg p = HsArg (LHsType p) (LHsKind p)
- type LHsType pass = XRec pass (HsType pass)
- type LHsTyVarBndr flag pass = XRec pass (HsTyVarBndr flag pass)
- type LHsSigWcType pass = HsWildCardBndrs pass (LHsSigType pass)
- type LHsSigType pass = XRec pass (HsSigType pass)
- data LHsQTyVars pass
- = HsQTvs {
- hsq_ext :: XHsQTvs pass
- hsq_explicit :: [LHsTyVarBndr () pass]
- | XLHsQTyVars !(XXLHsQTyVars pass)
- = HsQTvs {
- type LHsKind pass = XRec pass (HsKind pass)
- type LHsContext pass = XRec pass (HsContext pass)
- type LFieldOcc pass = XRec pass (FieldOcc pass)
- type LConDeclField pass = XRec pass (ConDeclField pass)
- type LBangType pass = XRec pass (BangType pass)
- data HsWildCardBndrs pass thing
- = HsWC { }
- | XHsWildCardBndrs !(XXHsWildCardBndrs pass thing)
- 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) (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) (HsSplice pass)
- | HsDocTy (XDocTy pass) (LHsType pass) LHsDocString
- | 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
- | HsWildCardTy (XWildCardTy pass)
- | XHsType !(XXType pass)
- = HsForAllTy {
- data HsTyVarBndr flag pass
- = UserTyVar (XUserTyVar pass) flag (LIdP pass)
- | KindedTyVar (XKindedTyVar pass) flag (LIdP pass) (LHsKind pass)
- | XTyVarBndr !(XXTyVarBndr pass)
- data HsTyLit
- data HsTupleSort
- data HsSigType pass
- = HsSig { }
- | XHsSigType !(XXHsSigType pass)
- data HsScaled pass a = HsScaled (HsArrow pass) a
- data HsPatSigType pass
- = HsPS { }
- | XHsPatSigType !(XXHsPatSigType pass)
- data HsPSRn = HsPSRn {
- hsps_nwcs :: [Name]
- hsps_imp_tvs :: [Name]
- 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 {
- type HsOuterSigTyVarBndrs = HsOuterTyVarBndrs Specificity
- type HsOuterFamEqnTyVarBndrs = HsOuterTyVarBndrs ()
- type HsKind pass = HsType pass
- newtype HsIPName = HsIPName FastString
- 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 HsCoreTy = Type
- type HsContext pass = [LHsType pass]
- data HsConDetails tyarg arg rec
- data HsArrow pass
- data HsArg tm ty
- data FieldOcc pass
- = FieldOcc {
- extFieldOcc :: XCFieldOcc pass
- rdrNameFieldOcc :: LocatedN RdrName
- | XFieldOcc !(XXFieldOcc pass)
- = FieldOcc {
- data ConDeclField pass
- = ConDeclField {
- cd_fld_ext :: XConDeclField pass
- cd_fld_names :: [LFieldOcc pass]
- cd_fld_type :: LBangType pass
- cd_fld_doc :: Maybe LHsDocString
- | XConDeclField !(XXConDeclField pass)
- = ConDeclField {
- type BangType pass = HsType pass
- data AmbiguousFieldOcc pass
- = Unambiguous (XUnambiguous pass) (LocatedN RdrName)
- | Ambiguous (XAmbiguous pass) (LocatedN RdrName)
- | XAmbiguousFieldOcc !(XXAmbiguousFieldOcc pass)
- numVisibleArgs :: [HsArg tm ty] -> Arity
- noTypeArgs :: [Void]
- mapHsOuterImplicit :: (XHsOuterImplicit pass -> XHsOuterImplicit pass) -> HsOuterTyVarBndrs flag pass -> HsOuterTyVarBndrs flag pass
- isHsKindedTyVar :: HsTyVarBndr flag pass -> Bool
- hsUnrestricted :: a -> HsScaled pass a
- hsScaledThing :: HsScaled pass a -> a
- hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr () pass]
- hsPatSigType :: HsPatSigType pass -> LHsType pass
- hsMult :: HsScaled pass a -> HsArrow pass
- hsLinear :: a -> HsScaled pass a
- hsIPNameFS :: HsIPName -> FastString
- 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 Arity
- | 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) (HsSplice 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))
- | XPat !(XXPat p)
- type LPat p = XRec p (Pat p)
- data OverLitVal
- data HsOverLit p
- = OverLit {
- ol_ext :: XOverLit p
- ol_val :: OverLitVal
- ol_witness :: HsExpr p
- | XOverLit !(XXOverLit p)
- = OverLit {
- 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
- | HsInt64Prim (XHsInt64Prim 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
- hsOverLitNeedsParens :: PprPrec -> HsOverLit x -> Bool
- hsLitNeedsParens :: PprPrec -> HsLit x -> Bool
- type family SyntaxExpr p
- data MatchGroup p body
- = MG { }
- | XMatchGroup !(XXMatchGroup p body)
- type LHsExpr p = XRec p (HsExpr p)
- data HsSplice id
- = HsTypedSplice (XTypedSplice id) SpliceDecoration (IdP id) (LHsExpr id)
- | HsUntypedSplice (XUntypedSplice id) SpliceDecoration (IdP id) (LHsExpr id)
- | HsQuasiQuote (XQuasiQuote id) (IdP id) (IdP id) SrcSpan FastString
- | HsSpliced (XSpliced id) ThModFinalizers (HsSplicedThing id)
- | XSplice !(XXSplice id)
- data HsExpr p
- = HsVar (XVar p) (LIdP p)
- | HsUnboundVar (XUnboundVar p) OccName
- | HsConLikeOut (XConLikeOut p) ConLike
- | HsRecFld (XRecFld p) (AmbiguousFieldOcc p)
- | HsOverLabel (XOverLabel p) FastString
- | HsIPVar (XIPVar p) HsIPName
- | HsOverLit (XOverLitE p) (HsOverLit p)
- | HsLit (XLitE p) (HsLit p)
- | HsLam (XLam p) (MatchGroup p (LHsExpr p))
- | HsLamCase (XLamCase p) (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 Arity (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) (HsStmtContext (HsDoRn p)) (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 :: Either [LHsRecUpdField p] [LHsRecUpdProj p]
- | HsGetField { }
- | HsProjection {
- proj_ext :: XProjection p
- proj_flds :: NonEmpty (Located (HsFieldLabel p))
- | ExprWithTySig (XExprWithTySig p) (LHsExpr p) (LHsSigWcType (NoGhcTc p))
- | ArithSeq (XArithSeq p) (Maybe (SyntaxExpr p)) (ArithSeqInfo p)
- | HsBracket (XBracket p) (HsBracket p)
- | HsRnBracketOut (XRnBracketOut p) (HsBracket (HsBracketRn p)) [PendingRnSplice' p]
- | HsTcBracketOut (XTcBracketOut p) (Maybe QuoteWrapper) (HsBracket (HsBracketRn p)) [PendingTcSplice' p]
- | HsSpliceE (XSpliceE p) (HsSplice p)
- | HsProc (XProc p) (LPat p) (LHsCmdTop p)
- | HsStatic (XStatic p) (LHsExpr p)
- | HsTick (XTick p) CoreTickish (LHsExpr p)
- | HsBinTick (XBinTick p) Int Int (LHsExpr p)
- | HsPragE (XPragE p) (HsPragE p) (LHsExpr p)
- | XExpr !(XXExpr p)
- data GRHSs p body
- = GRHSs {
- grhssExt :: XCGRHSs p body
- grhssGRHSs :: [LGRHS p body]
- grhssLocalBinds :: HsLocalBinds p
- | XGRHSs !(XXGRHSs p body)
- = GRHSs {
- type family XXWarnDecls x
- type family XXWarnDecl x
- type family XXValBindsLR x x'
- type family XXType x
- type family XXTyVarBndr x
- type family XXTyFamInstDecl x
- type family XXTyClGroup x
- type family XXTyClDecl x
- type family XXTupArg x
- type family XXStmtLR x x' b
- type family XXStandaloneKindSig x
- type family XXSpliceDecl x
- type family XXSplice x
- type family XXSig x
- type family XXRuleDecls x
- type family XXRuleDecl x
- type family XXRuleBndr x
- type family XXRoleAnnotDecl x
- type family XXPragE x
- type family XXPatSynBind x x'
- type family XXPat x
- type family XXParStmtBlock x x'
- type family XXOverLit x
- type family XXMatchGroup x b
- type family XXMatch x b
- type family XXLit x
- type family XXLHsQTyVars x
- type family XXInstDecl x
- type family XXInjectivityAnn x
- type family XXImportDecl x
- type family XXIPBind x
- type family XXIE x
- type family XXHsWildCardBndrs x b
- type family XXHsSigType x
- type family XXHsPatSigType x
- type family XXHsOuterTyVarBndrs x
- type family XXHsLocalBindsLR x x'
- type family XXHsIPBinds x
- type family XXHsGroup x
- type family XXHsForAllTelescope x
- type family XXHsFieldLabel x
- type family XXHsDerivingClause x
- type family XXHsDecl x
- type family XXHsDataDefn x
- type family XXHsBindsLR x x'
- type family XXGRHSs x b
- type family XXGRHS x b
- type family XXFunDep x
- type family XXForeignDecl x
- type family XXFixitySig x
- type family XXFieldOcc x
- type family XXFamilyResultSig x
- type family XXFamilyDecl x
- type family XXFamEqn x r
- type family XXExpr x
- type family XXDerivDecl x
- type family XXDerivClauseTys x
- type family XXDefaultDecl x
- type family XXConDeclField x
- type family XXConDecl x
- type family XXCmdTop x
- type family XXCmd x
- type family XXClsInstDecl x
- type family XXBracket x
- type family XXApplicativeArg x
- type family XXAnnDecl x
- type family XXAmbiguousFieldOcc x
- type family XXABExport x
- type family XWildPat x
- type family XWildCardTy x
- type family XWarnings x
- type family XWarningD x
- type family XWarning x
- type family XViewPat x
- type family XViaStrategy x
- type family XVarPat x
- type family XVarBr x
- type family XVarBind x x'
- type family XVar x
- type family XValD x
- type family XValBinds x x'
- type family XUserTyVar x
- type family XUntypedSplice x
- type family XUnboundVar x
- type family XUnambiguous x
- type family XTypedSplice x
- type family XTypeSig x
- type family XTypBr x
- type family XTyVarSig x
- type family XTyVar x
- type family XTyLit x
- type family XTyFamInstD x
- type family XTyClD x
- type family XTupleTy x
- type family XTuplePat x
- type family XTransStmt x x' b
- type family XTick x
- type family XTcBracketOut x
- type family XTExpBr x
- type family XSynDecl x
- type family XSumTy x
- type family XSumPat x
- type family XStockStrategy x
- type family XStatic x
- type family XStarTy x
- type family XStandaloneKindSig x
- type family XSpliced x
- type family XSpliceTy x
- type family XSplicePat x
- type family XSpliceE x
- type family XSpliceDecl x
- type family XSpliceD x
- type family XSpecSig x
- type family XSpecInstSig x
- type family XSigPat x
- type family XSigD x
- type family XSectionR x
- type family XSectionL x
- type family XSCCFunSig x
- type family XSCC x
- type family XRuleD x
- type family XRuleBndrSig x
- type family XRoleAnnotD x
- type family XRnBracketOut x
- type family XRecordUpd x
- type family XRecordCon x
- type family XRecTy x
- type family XRecStmt x x' b
- type family XRecFld x
- type family XRec p a = (r :: Type) | r -> a
- type family XQuasiQuote x
- type family XQualTy x
- type family XProjection x
- type family XProc x
- type family XPresent x
- type family XPragE x
- type family XPatSynSig x
- type family XPatSynBind x x'
- type family XPatBr x
- type family XPatBind x x'
- type family XParTy x
- type family XParStmtBlock x x'
- type family XParStmt x x' b
- type family XParPat x
- type family XPar x
- type family XPSB x x'
- type family XOverLitE x
- type family XOverLit x
- type family XOverLabel x
- type family XOpTy x
- type family XOpApp x
- type family XNoSig x
- type family XNewtypeStrategy x
- type family XNegApp x
- type family XNPlusKPat x
- type family XNPat x
- type family XMultiIf x
- type family XMissing x
- type family XMinimalSig x
- type family XMG x b
- type family XLitPat x
- type family XLitE x
- type family XListTy x
- type family XListPat x
- type family XLetStmt x x' b
- type family XLet x
- type family XLazyPat x
- type family XLastStmt x x' b
- type family XLamCase x
- type family XLam x
- type family XKindedTyVar x
- type family XKindSigD x
- type family XKindSig x
- type family XInstD x
- type family XInlineSig x
- type family XIf x
- type family XIdSig x
- type family XIParamTy x
- type family XIPVar x
- type family XIPBinds x
- type family XIEVar x
- type family XIEThingWith x
- type family XIEThingAll x
- type family XIEThingAbs x
- type family XIEModuleContents x
- type family XIEGroup x
- type family XIEDocNamed x
- type family XIEDoc x
- type family XHsWordPrim x
- type family XHsWord64Prim x
- type family XHsWC x b
- type family XHsValBinds x x'
- type family XHsStringPrim x
- type family XHsString x
- type family XHsSig x
- type family XHsRule x
- type family XHsRecField x
- type family XHsRat x
- type family XHsQTvs x
- type family XHsPS x
- type family XHsOuterImplicit x
- type family XHsOuterExplicit x flag
- type family XHsInteger x
- type family XHsIntPrim x
- type family XHsInt64Prim x
- type family XHsInt x
- type family XHsIPBinds x x'
- type family XHsForAllVis x
- type family XHsForAllInvis x
- type family XHsFloatPrim x
- type family XHsDoublePrim x
- type family XHsCharPrim x
- type family XHsChar x
- type family XHsAnnotation x
- type family XGetField x
- type family XFunTy x
- type family XFunBind x x'
- type family XForeignImport x
- type family XForeignExport x
- type family XForD x
- type family XForAllTy x
- type family XFixitySig x
- type family XFixSig x
- type family XFamDecl x
- type family XExprWithTySig x
- type family XExplicitTupleTy x
- type family XExplicitTuple x
- type family XExplicitSum x
- type family XExplicitListTy x
- type family XExplicitList x
- type family XExpBr x
- type family XEmptyLocalBinds x x'
- type family XDocTy x
- type family XDocD x
- type family XDo x
- type family XDerivD x
- type family XDefD x
- type family XDecBrL x
- type family XDecBrG x
- type family XDctSingle x
- type family XDctMulti x
- type family XDataFamInstD x
- type family XDataDecl x
- type family XConPat x
- type family XConLikeOut x
- type family XConDeclH98 x
- type family XConDeclGADT x
- type family XConDeclField x
- type family XCompleteMatchSig x
- type family XCoPat x
- type family XCmdWrap x
- type family XCmdTop x
- type family XCmdPar x
- type family XCmdLet x
- type family XCmdLamCase x
- type family XCmdLam x
- type family XCmdIf x
- type family XCmdDo x
- type family XCmdCase x
- type family XCmdArrForm x
- type family XCmdArrApp x
- type family XCmdApp x
- type family XClsInstD x
- type family XClassOpSig x
- type family XClassDecl x
- type family XCase x
- type family XCTyFamInstDecl x
- type family XCTyClGroup x
- type family XCRuleDecls x
- type family XCRuleBndr x
- type family XCRoleAnnotDecl x
- type family XCMatch x b
- type family XCKindSig x
- type family XCInjectivityAnn x
- type family XCImportDecl x
- type family XCIPBind x
- type family XCHsGroup x
- type family XCHsFieldLabel x
- type family XCHsDerivingClause x
- type family XCHsDataDefn x
- type family XCGRHSs x b
- type family XCGRHS x b
- type family XCFunDep x
- type family XCFieldOcc x
- type family XCFamilyDecl x
- type family XCFamEqn x r
- type family XCDerivDecl x
- type family XCDefaultDecl x
- type family XCClsInstDecl x
- type family XBracket x
- type family XBodyStmt x x' b
- type family XBindStmt x x' b
- type family XBinTick x
- type family XBangTy x
- type family XBangPat x
- type family XAsPat x
- type family XArithSeq x
- type family XApplicativeStmt x x' b
- type family XApplicativeArgOne x
- type family XApplicativeArgMany x
- type family XAppTypeE x
- type family XAppTy x
- type family XAppKindTy x
- type family XApp x
- type family XAnyClassStrategy x
- type family XAnnD x
- type family XAmbiguous x
- type family XAbsBinds x x'
- type family XABE x
- class WrapXRec p a where
- class UnXRec p where
- type family NoGhcTc p
- data NoExtField = NoExtField
- data NoExtCon
- class MapXRec p where
- type LIdP p = XRec p (IdP p)
- type family IdP p
- type family Anno a = (b :: Type)
- noExtField :: NoExtField
- noExtCon :: NoExtCon -> a
- data SrcUnpackedness
- data SrcStrictness
- data HsSrcBang = HsSrcBang SourceText SrcUnpackedness SrcStrictness
- data HsImplBang
- type Mult = Type
- data SpliceExplicitFlag
- module GHC.Rename.Names
- module GHC.Rename.Splice
- module GHC.Tc.Instance.Family
- module GHC.Tc.Module
- module GHC.Tc.Types
- type TcMCoercionR = MCoercionR
- type TcMCoercionN = MCoercionN
- type TcMCoercion = MCoercion
- data TcEvBinds
- = TcEvBinds EvBindsVar
- | EvBinds (Bag EvBind)
- type TcCoercionR = CoercionR
- type TcCoercionP = CoercionP
- type TcCoercionN = CoercionN
- type TcCoercion = Coercion
- data QuoteWrapper = QuoteWrapper EvVar Type
- data HsWrapper
- data HoleExprRef = HER (IORef EvTerm) TcType Unique
- data EvTypeable
- data EvTerm
- type EvExpr = CoreExpr
- data EvCallStack
- data EvBindsVar
- newtype EvBindMap = EvBindMap {}
- data EvBind = EvBind {}
- wrapIP :: Type -> CoercionR
- varSetMinusEvBindMap :: VarSet -> EvBindMap -> VarSet
- unwrapIP :: Type -> CoercionR
- tcDowngradeRole :: Role -> Role -> TcCoercion -> TcCoercion
- tcCoercionRole :: TcCoercion -> Role
- tcCoercionKind :: TcCoercion -> Pair TcType
- quoteWrapperTyVarTy :: QuoteWrapper -> Type
- pprHsWrapper :: HsWrapper -> (Bool -> SDoc) -> SDoc
- nonDetStrictFoldEvBindMap :: (EvBind -> a -> a) -> a -> EvBindMap -> a
- mkWpTyLams :: [TyVar] -> HsWrapper
- mkWpTyApps :: [Type] -> HsWrapper
- mkWpLet :: TcEvBinds -> HsWrapper
- mkWpLams :: [Var] -> HsWrapper
- mkWpFun :: HsWrapper -> HsWrapper -> Scaled TcType -> TcType -> SDoc -> HsWrapper
- mkWpEvVarApps :: [EvVar] -> HsWrapper
- mkWpEvApps :: [EvTerm] -> HsWrapper
- mkWpCastR :: TcCoercionR -> HsWrapper
- mkWpCastN :: TcCoercionN -> HsWrapper
- mkWantedEvBind :: EvVar -> EvTerm -> EvBind
- mkTcUnbranchedAxInstCo :: CoAxiom Unbranched -> [TcType] -> [TcCoercion] -> TcCoercionR
- mkTcTyConAppCo :: Role -> TyCon -> [TcCoercion] -> TcCoercion
- mkTcTransCo :: TcCoercion -> TcCoercion -> TcCoercion
- mkTcSymMCo :: TcMCoercion -> TcMCoercion
- mkTcSymCo :: TcCoercion -> TcCoercion
- mkTcSubCo :: HasDebugCallStack => TcCoercionN -> TcCoercionR
- mkTcRepReflCo :: TcType -> TcCoercionR
- mkTcReflCo :: Role -> TcType -> TcCoercion
- mkTcPhantomCo :: TcCoercionN -> TcType -> TcType -> TcCoercionP
- mkTcNthCo :: Role -> Int -> TcCoercion -> TcCoercion
- mkTcNomReflCo :: TcType -> TcCoercionN
- mkTcLRCo :: LeftOrRight -> TcCoercion -> TcCoercion
- mkTcKindCo :: TcCoercion -> TcCoercionN
- mkTcGReflRightMCo :: Role -> TcType -> TcMCoercionN -> TcCoercion
- mkTcGReflRightCo :: Role -> TcType -> TcCoercionN -> TcCoercion
- mkTcGReflLeftMCo :: Role -> TcType -> TcMCoercionN -> TcCoercion
- mkTcGReflLeftCo :: Role -> TcType -> TcCoercionN -> TcCoercion
- mkTcFunCo :: Role -> TcCoercion -> TcCoercion -> TcCoercion -> TcCoercion
- mkTcForAllCos :: [(TyVar, TcCoercionN)] -> TcCoercion -> TcCoercion
- mkTcForAllCo :: TyVar -> TcCoercionN -> TcCoercion -> TcCoercion
- mkTcFamilyTyConAppCo :: TyCon -> [TcCoercionN] -> TcCoercionN
- mkTcCoherenceRightCo :: Role -> TcType -> TcCoercionN -> TcCoercion -> TcCoercion
- mkTcCoherenceLeftCo :: Role -> TcType -> TcCoercionN -> TcCoercion -> TcCoercion
- mkTcCoVarCo :: CoVar -> TcCoercion
- mkTcAxiomRuleCo :: CoAxiomRule -> [TcCoercion] -> TcCoercionR
- mkTcAxInstCo :: forall (br :: BranchFlag). Role -> CoAxiom br -> BranchIndex -> [TcType] -> [TcCoercion] -> TcCoercion
- mkTcAppCo :: TcCoercion -> TcCoercionN -> TcCoercion
- mkGivenEvBind :: EvVar -> EvTerm -> EvBind
- mkEvScSelectors :: Class -> [TcType] -> [(TcPredType, EvExpr)]
- mkEvCast :: EvExpr -> TcCoercion -> EvTerm
- maybeTcSymCo :: SwapFlag -> TcCoercion -> TcCoercion
- maybeTcSubCo :: HasDebugCallStack => EqRel -> TcCoercionN -> TcCoercion
- lookupEvBind :: EvBindMap -> EvVar -> Maybe EvBind
- isTcReflexiveCo :: TcCoercion -> Bool
- isTcReflCo :: TcCoercion -> Bool
- isIdHsWrapper :: HsWrapper -> Bool
- isEmptyTcEvBinds :: TcEvBinds -> Bool
- isEmptyEvBindMap :: EvBindMap -> Bool
- isCoEvBindsVar :: EvBindsVar -> Bool
- idHsWrapper :: HsWrapper
- hsWrapDictBinders :: HsWrapper -> Bag DictId
- foldEvBindMap :: (EvBind -> a -> a) -> a -> EvBindMap -> a
- findNeededEvVars :: EvBindMap -> VarSet -> VarSet
- filterEvBindMap :: (EvBind -> Bool) -> EvBindMap -> EvBindMap
- extendEvBinds :: EvBindMap -> EvBind -> EvBindMap
- evVarsOfTerm :: EvTerm -> VarSet
- evTypeable :: Type -> EvTypeable -> EvTerm
- evTermCoercion_maybe :: EvTerm -> Maybe TcCoercion
- evTermCoercion :: EvTerm -> TcCoercion
- evSelector :: Id -> [Type] -> [EvExpr] -> EvExpr
- evId :: EvId -> EvExpr
- evDataConApp :: DataCon -> [Type] -> [EvExpr] -> EvTerm
- evDFunApp :: DFunId -> [Type] -> [EvExpr] -> EvTerm
- evCoercion :: TcCoercion -> EvTerm
- evCast :: EvExpr -> TcCoercion -> EvTerm
- evBindVar :: EvBind -> EvVar
- evBindMapToVarSet :: EvBindMap -> VarSet
- evBindMapBinds :: EvBindMap -> Bag EvBind
- emptyTcEvBinds :: TcEvBinds
- emptyEvBindMap :: EvBindMap
- collectHsWrapBinders :: HsWrapper -> ([Var], HsWrapper)
- applyQuoteWrapper :: QuoteWrapper -> HsWrapper
- data CoercionHole
- data Role
- data LeftOrRight
- pickLR :: LeftOrRight -> (a, a) -> a
- module GHC.Tc.Utils.Env
- mapAndUnzipM :: Applicative m => (a -> m (b, c)) -> [a] -> m ([b], [c])
- 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
- data IsExtraConstraint
- xoptM :: Extension -> TcRnIf gbl lcl Bool
- writeTcRef :: TcRef a -> a -> TcRnIf gbl lcl ()
- wrapLocSndMA :: (a -> TcM (b, c)) -> LocatedA a -> TcM (b, LocatedA c)
- wrapLocSndM :: (a -> TcM (b, c)) -> Located a -> TcM (b, Located c)
- wrapLocM_ :: (a -> TcM ()) -> Located a -> TcM ()
- wrapLocMA_ :: (a -> TcM ()) -> LocatedA a -> TcM ()
- wrapLocMA :: (a -> TcM b) -> GenLocated (SrcSpanAnn' ann) a -> TcRn (GenLocated (SrcSpanAnn' ann) b)
- wrapLocM :: (a -> TcM b) -> Located a -> TcM (Located b)
- wrapLocFstMA :: (a -> TcM (b, c)) -> LocatedA a -> TcM (LocatedA b, c)
- wrapLocFstM :: (a -> TcM (b, c)) -> Located a -> TcM (Located b, c)
- wrapLocAM :: (a -> TcM b) -> LocatedAn an a -> TcM (Located b)
- woptM :: WarningFlag -> TcRnIf gbl lcl Bool
- withoutDynamicNow :: TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- withException :: TcRnIf gbl lcl (MaybeErr SDoc a) -> TcRnIf gbl lcl a
- withDynamicNow :: TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- whenXOptM :: Extension -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- whenWOptM :: WarningFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- whenNoErrs :: TcM () -> TcM ()
- whenGOptM :: GeneralFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- whenDOptM :: DumpFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- warnTcM :: WarnReason -> Bool -> (TidyEnv, SDoc) -> TcM ()
- warnTc :: WarnReason -> Bool -> SDoc -> TcM ()
- warnIfFlag :: WarningFlag -> Bool -> SDoc -> TcRn ()
- warnIf :: Bool -> SDoc -> TcRn ()
- updateEps_ :: (ExternalPackageState -> ExternalPackageState) -> TcRnIf gbl lcl ()
- updateEps :: (ExternalPackageState -> (ExternalPackageState, a)) -> TcRnIf gbl lcl a
- updTopEnv :: (HscEnv -> HscEnv) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- updTcRef :: TcRef a -> (a -> a) -> TcRnIf gbl lcl ()
- updLclEnv :: (lcl -> lcl) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- updGblEnv :: (gbl -> gbl) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- unsetXOptM :: Extension -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- unsetWOptM :: WarningFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- unsetGOptM :: GeneralFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- unlessXOptM :: Extension -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- tryTcDiscardingErrs :: TcM r -> TcM r -> TcM r
- tryTc :: TcRn a -> TcRn (Maybe a, Messages DecoratedSDoc)
- tryCaptureConstraints :: TcM a -> TcM (Maybe a, WantedConstraints)
- traceTcConstraints :: String -> TcM ()
- traceTc :: String -> SDoc -> TcRn ()
- traceRn :: String -> SDoc -> TcRn ()
- traceOptTcRn :: DumpFlag -> SDoc -> TcRn ()
- traceOptIf :: DumpFlag -> SDoc -> TcRnIf m n ()
- traceIf :: SDoc -> TcRnIf m n ()
- traceHiDiffs :: SDoc -> TcRnIf m n ()
- tcSelfBootInfo :: TcRn SelfBootInfo
- tcScalingUsage :: Mult -> TcM a -> TcM a
- tcIsHsig :: TcRn Bool
- tcIsHsBootOrSig :: TcRn Bool
- tcEmitBindingUsage :: UsageEnv -> TcM ()
- tcCollectingUsage :: TcM a -> TcM (UsageEnv, a)
- setXOptM :: Extension -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- setTcLevel :: TcLevel -> TcM a -> TcM a
- setTcEvBindsMap :: EvBindsVar -> EvBindMap -> TcM ()
- setStage :: ThStage -> TcM a -> TcRn a
- setSrcSpanA :: SrcSpanAnn' ann -> TcRn a -> TcRn a
- setSrcSpan :: SrcSpan -> TcRn a -> TcRn a
- setLocalRdrEnv :: LocalRdrEnv -> RnM a -> RnM a
- setLclTypeEnv :: TcLclEnv -> TcM a -> TcM a
- setLclEnv :: lcl' -> TcRnIf gbl lcl' a -> TcRnIf gbl lcl a
- setImplicitEnvM :: TypeEnv -> IfL a -> IfL a
- setGblEnv :: gbl -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- setErrsVar :: TcRef (Messages DecoratedSDoc) -> TcRn a -> TcRn a
- setErrCtxt :: [ErrCtxt] -> TcM a -> TcM a
- setEnvs :: (gbl', lcl') -> TcRnIf gbl' lcl' a -> TcRnIf gbl lcl a
- setCtLocM :: CtLoc -> TcM a -> TcM a
- setConstraintVar :: TcRef WantedConstraints -> TcM a -> TcM a
- reportWarning :: WarnReason -> MsgEnvelope DecoratedSDoc -> TcRn ()
- reportErrors :: [MsgEnvelope DecoratedSDoc] -> TcM ()
- reportError :: MsgEnvelope DecoratedSDoc -> TcRn ()
- recoverM :: TcRn r -> TcRn r -> TcRn r
- recordUnsafeInfer :: WarningMessages -> TcM ()
- recordThUse :: TcM ()
- recordThSpliceUse :: TcM ()
- readTcRef :: TcRef a -> TcRnIf gbl lcl a
- pushTcLevelsM :: Int -> TcM a -> TcM (a, TcLevel)
- pushTcLevelM_ :: TcM a -> TcM a
- pushTcLevelM :: TcM a -> TcM (TcLevel, a)
- pushLevelAndCaptureConstraints :: TcM a -> TcM (TcLevel, WantedConstraints, a)
- printForUserTcRn :: SDoc -> TcRn ()
- popErrCtxt :: TcM a -> TcM a
- newUniqueSupply :: TcRnIf gbl lcl UniqSupply
- newUnique :: TcRnIf gbl lcl Unique
- newTcRef :: a -> TcRnIf gbl lcl (TcRef a)
- newTcEvBinds :: TcM EvBindsVar
- newSysName :: OccName -> TcRnIf gbl lcl Name
- newSysLocalIds :: FastString -> [Scaled TcType] -> TcRnIf gbl lcl [TcId]
- newSysLocalId :: FastString -> Mult -> TcType -> TcRnIf gbl lcl TcId
- newNoTcEvBinds :: TcM EvBindsVar
- newNameAt :: OccName -> SrcSpan -> TcM Name
- newName :: OccName -> TcM Name
- newArrowScope :: TcM a -> TcM a
- mkLongErrAt :: SrcSpan -> SDoc -> SDoc -> TcRn (MsgEnvelope DecoratedSDoc)
- mkIfLclEnv :: Module -> SDoc -> IsBootInterface -> IfLclEnv
- mkErrInfo :: TidyEnv -> [ErrCtxt] -> TcM SDoc
- mkDecoratedSDocAt :: SrcSpan -> SDoc -> SDoc -> SDoc -> TcRn (MsgEnvelope DecoratedSDoc)
- mapAndReportM :: (a -> TcRn b) -> [a] -> TcRn [b]
- mapAndRecoverM :: (a -> TcRn b) -> [a] -> TcRn [b]
- keepAlive :: Name -> TcRn ()
- isTouchableTcM :: TcTyVar -> TcM Bool
- initTcWithGbl :: HscEnv -> TcGblEnv -> RealSrcSpan -> TcM r -> IO (Messages DecoratedSDoc, Maybe r)
- initTcRnIf :: Char -> HscEnv -> gbl -> lcl -> TcRnIf gbl lcl a -> IO a
- initTcInteractive :: HscEnv -> TcM a -> IO (Messages DecoratedSDoc, Maybe a)
- initTc :: HscEnv -> HscSource -> Bool -> Module -> RealSrcSpan -> TcM r -> IO (Messages DecoratedSDoc, Maybe r)
- initIfaceTcRn :: IfG a -> TcRn a
- initIfaceLoad :: HscEnv -> IfG a -> IO a
- initIfaceLclWithSubst :: Module -> SDoc -> IsBootInterface -> NameShape -> IfL a -> IfM lcl a
- initIfaceLcl :: Module -> SDoc -> IsBootInterface -> IfL a -> IfM lcl a
- initIfaceCheck :: SDoc -> HscEnv -> IfG a -> IO a
- inGeneratedCode :: TcRn Bool
- ifErrsM :: TcRn r -> TcRn r -> TcRn r
- goptM :: GeneralFlag -> TcRnIf gbl lcl Bool
- getTopEnv :: TcRnIf gbl lcl HscEnv
- getTcLevel :: TcM TcLevel
- getTcEvTyCoVars :: EvBindsVar -> TcM TyCoVarSet
- getTcEvBindsMap :: EvBindsVar -> TcM EvBindMap
- getStageAndBindLevel :: Name -> TcRn (Maybe (TopLevelFlag, ThLevel, ThStage))
- getStage :: TcM ThStage
- getSrcSpanM :: TcRn SrcSpan
- getRecFieldEnv :: TcRn RecFieldEnv
- getRdrEnvs :: TcRn (GlobalRdrEnv, LocalRdrEnv)
- getPrintUnqualified :: TcRn PrintUnqualified
- getLocalRdrEnv :: RnM LocalRdrEnv
- getLclTypeEnv :: TcM TcTypeEnv
- getLclEnv :: TcRnIf gbl lcl lcl
- getIsGHCi :: TcRn Bool
- getInteractivePrintName :: TcRn Name
- getImports :: TcRn ImportAvails
- getIfModule :: IfL Module
- getHpt :: TcRnIf gbl lcl HomePackageTable
- getGlobalRdrEnv :: TcRn GlobalRdrEnv
- getGhcMode :: TcRnIf gbl lcl GhcMode
- getGblEnv :: TcRnIf gbl lcl gbl
- getGHCiMonad :: TcRn Name
- getFixityEnv :: TcRn FixityEnv
- getErrsVar :: TcRn (TcRef (Messages DecoratedSDoc))
- getErrCtxt :: TcM [ErrCtxt]
- getEpsVar :: TcRnIf gbl lcl (TcRef ExternalPackageState)
- getEpsAndHpt :: TcRnIf gbl lcl (ExternalPackageState, HomePackageTable)
- getEps :: TcRnIf gbl lcl ExternalPackageState
- getEnvs :: TcRnIf gbl lcl (gbl, lcl)
- getDeclaredDefaultTys :: TcRn (Maybe [Type])
- getCtLocM :: CtOrigin -> Maybe TypeOrKind -> TcM CtLoc
- getConstraintVar :: TcM (TcRef WantedConstraints)
- getCCIndexTcM :: FastString -> TcM CostCentreIndex
- getCCIndexM :: (gbl -> TcRef CostCentreState) -> FastString -> TcRnIf gbl lcl CostCentreIndex
- forkM_maybe :: SDoc -> IfL a -> IfL (Maybe a)
- forkM :: SDoc -> IfL a -> IfL a
- foldAndRecoverM :: (b -> a -> TcRn b) -> b -> [a] -> TcRn b
- fixSafeInstances :: SafeHaskellMode -> [ClsInst] -> [ClsInst]
- finalSafeMode :: DynFlags -> TcGblEnv -> IO SafeHaskellMode
- failWithTcM :: (TidyEnv, SDoc) -> TcM a
- failWithTc :: SDoc -> TcM a
- failWith :: SDoc -> TcRn a
- failIfTcM :: Bool -> (TidyEnv, SDoc) -> TcM ()
- failIfTc :: Bool -> SDoc -> TcM ()
- failIfM :: SDoc -> IfL a
- failIfErrsM :: TcRn ()
- failAt :: SrcSpan -> SDoc -> TcRn a
- extendFixityEnv :: [(Name, FixItem)] -> RnM a -> RnM a
- escapeArrowScope :: TcM a -> TcM a
- emitStaticConstraints :: WantedConstraints -> TcM ()
- emitSimples :: Cts -> TcM ()
- emitSimple :: Ct -> TcM ()
- emitNamedTypeHole :: (Name, TcTyVar) -> TcM ()
- emitInsoluble :: Ct -> TcM ()
- emitImplications :: Bag Implication -> TcM ()
- emitImplication :: Implication -> TcM ()
- emitHoles :: Bag Hole -> TcM ()
- emitHole :: Hole -> TcM ()
- emitConstraints :: WantedConstraints -> TcM ()
- emitAnonTypeHole :: IsExtraConstraint -> TcTyVar -> TcM ()
- dumpTcRn :: Bool -> DumpFlag -> String -> DumpFormat -> SDoc -> TcRn ()
- dumpOptTcRn :: DumpFlag -> String -> DumpFormat -> SDoc -> TcRn ()
- doptM :: DumpFlag -> TcRnIf gbl lcl Bool
- discardWarnings :: TcRn a -> TcRn a
- discardResult :: TcM a -> TcM ()
- discardErrs :: TcRn a -> TcRn a
- discardConstraints :: TcM a -> TcM a
- debugTc :: TcM () -> TcM ()
- cloneLocalName :: Name -> TcM Name
- cloneEvBindsVar :: EvBindsVar -> TcM EvBindsVar
- chooseUniqueOccTc :: (OccSet -> OccName) -> TcM OccName
- checkTcM :: Bool -> (TidyEnv, SDoc) -> TcM ()
- checkTc :: Bool -> SDoc -> TcM ()
- checkNoErrs :: TcM r -> TcM r
- checkErr :: Bool -> SDoc -> TcRn ()
- captureConstraints :: TcM a -> TcM (a, WantedConstraints)
- attemptM :: TcRn r -> TcRn (Maybe r)
- askNoErrs :: TcRn a -> TcRn (a, Bool)
- add_warn :: WarnReason -> SDoc -> SDoc -> TcRn ()
- addWarnTcM :: WarnReason -> (TidyEnv, SDoc) -> TcM ()
- addWarnTc :: WarnReason -> SDoc -> TcM ()
- addWarnAt :: WarnReason -> SrcSpan -> SDoc -> TcRn ()
- addWarn :: WarnReason -> SDoc -> TcRn ()
- addTopEvBinds :: Bag EvBind -> TcM a -> TcM a
- addTcEvBind :: EvBindsVar -> EvBind -> TcM ()
- addModFinalizersWithLclEnv :: ThModFinalizers -> TcM ()
- addMessages :: Messages DecoratedSDoc -> TcRn ()
- addLongErrAt :: SrcSpan -> SDoc -> SDoc -> TcRn ()
- addLocMA :: (a -> TcM b) -> GenLocated (SrcSpanAnn' ann) a -> TcM b
- addLocM :: (a -> TcM b) -> Located a -> TcM b
- addLandmarkErrCtxtM :: (TidyEnv -> TcM (TidyEnv, SDoc)) -> TcM a -> TcM a
- addLandmarkErrCtxt :: SDoc -> TcM a -> TcM a
- addErrs :: [(SrcSpan, SDoc)] -> TcRn ()
- addErrTcM :: (TidyEnv, SDoc) -> TcM ()
- addErrTc :: SDoc -> TcM ()
- addErrCtxtM :: (TidyEnv -> TcM (TidyEnv, SDoc)) -> TcM a -> TcM a
- addErrCtxt :: SDoc -> TcM a -> TcM a
- addErrAt :: SrcSpan -> SDoc -> TcRn ()
- addErr :: SDoc -> TcRn ()
- addDependentFiles :: [FilePath] -> TcRn ()
- data WhereFrom
- data ThStage
- = Splice SpliceType
- | RunSplice (TcRef [ForeignRef (Q ())])
- | Comp
- | Brack ThStage PendingStuff
- type ThLevel = Int
- type TcTypeEnv = NameEnv TcTyThing
- data TcTyThing
- = AGlobal TyThing
- | ATcId {
- tct_id :: TcId
- tct_info :: IdBindingInfo
- | ATyVar Name TcTyVar
- | ATcTyCon TyCon
- | APromotionErr PromotionErr
- data TcSigInfo
- type TcSigFun = Name -> Maybe TcSigInfo
- type TcRnIf a b = IOEnv (Env a b)
- type TcRn = TcRnIf TcGblEnv TcLclEnv
- type TcRef a = IORef a
- type TcPluginSolver = [Ct] -> [Ct] -> [Ct] -> TcPluginM TcPluginResult
- data TcPluginResult
- = TcPluginContradiction [Ct]
- | TcPluginOk [(EvTerm, Ct)] [Ct]
- data TcPluginM a
- data TcPlugin = TcPlugin {
- tcPluginInit :: TcPluginM s
- tcPluginSolve :: s -> TcPluginSolver
- tcPluginStop :: s -> TcPluginM ()
- data TcPatSynInfo = TPSI {}
- type TcM = TcRn
- data TcIdSigInst = TISI {
- sig_inst_sig :: TcIdSigInfo
- sig_inst_skols :: [(Name, InvisTVBinder)]
- sig_inst_theta :: TcThetaType
- sig_inst_tau :: TcSigmaType
- sig_inst_wcs :: [(Name, TcTyVar)]
- sig_inst_wcx :: Maybe TcType
- data TcIdSigInfo
- = CompleteSig { }
- | PartialSig { }
- type TcIdSet = IdSet
- type TcId = Id
- 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_field_env :: RecFieldEnv
- tcg_type_env :: TypeEnv
- tcg_type_env_var :: TcRef 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_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
- 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_doc_hdr :: Maybe LHsDocString
- tcg_hpc :: !AnyHpcUsage
- tcg_self_boot :: SelfBootInfo
- tcg_main :: Maybe Name
- tcg_safeInfer :: TcRef (Bool, WarningMessages)
- tcg_tc_plugins :: [TcPluginSolver]
- tcg_hf_plugins :: [HoleFitPlugin]
- tcg_top_loc :: RealSrcSpan
- tcg_static_wc :: TcRef WantedConstraints
- tcg_complete_matches :: !CompleteMatches
- tcg_cc_st :: TcRef CostCentreState
- type TcBinderStack = [TcBinder]
- data TcBinder
- type THDocs = Map DocLoc String
- data SpliceType
- data SelfBootInfo
- = NoSelfBoot
- | SelfBoot {
- sb_mds :: ModDetails
- sb_tcs :: NameSet
- type RoleAnnotEnv = NameEnv (LRoleAnnotDecl GhcRn)
- type RnM = TcRn
- type RhsNames = NameSet
- type RecFieldEnv = NameEnv [FieldLabel]
- data PromotionErr
- data PendingStuff
- data NameShape = NameShape {
- ns_mod_name :: ModuleName
- ns_exports :: [AvailInfo]
- ns_map :: OccEnv Name
- data IsGroupClosed = IsGroupClosed (NameEnv RhsNames) ClosedTypeId
- data ImportAvails = ImportAvails {}
- type IfM lcl = TcRnIf IfGblEnv lcl
- data IfLclEnv = IfLclEnv {}
- type IfL = IfM IfLclEnv
- data IfGblEnv = IfGblEnv {}
- type IfG = IfM ()
- data IdBindingInfo
- data FrontendResult = FrontendTypecheck TcGblEnv
- type ErrCtxt = (Bool, TidyEnv -> TcM (TidyEnv, SDoc))
- data Env gbl lcl = Env {}
- data DocLoc
- type ClosedTypeId = Bool
- data ArrowCtxt
- unsafeTcPluginTcM :: TcM a -> TcPluginM a
- topStage :: ThStage
- topSpliceStage :: ThStage
- topAnnStage :: ThStage
- thLevel :: ThStage -> ThLevel
- tcVisibleOrphanMods :: TcGblEnv -> ModuleSet
- tcTyThingCategory :: TcTyThing -> String
- runTcPluginM :: TcPluginM a -> EvBindsVar -> TcM a
- removeBindingShadowing :: HasOccName a => [a] -> [a]
- pushErrCtxtSameOrigin :: ErrCtxt -> CtLoc -> CtLoc
- pushErrCtxt :: CtOrigin -> ErrCtxt -> CtLoc -> CtLoc
- pprTcTyThingCategory :: TcTyThing -> SDoc
- pprPECategory :: PromotionErr -> SDoc
- plusImportAvails :: ImportAvails -> ImportAvails -> ImportAvails
- peCategory :: PromotionErr -> String
- outerLevel :: ThLevel
- modDepsElts :: ModuleNameEnv ModuleNameWithIsBoot -> [ModuleNameWithIsBoot]
- mkRoleAnnotEnv :: [LRoleAnnotDecl GhcRn] -> RoleAnnotEnv
- mkModDeps :: [ModuleNameWithIsBoot] -> ModuleNameEnv ModuleNameWithIsBoot
- lookupRoleAnnot :: RoleAnnotEnv -> Name -> Maybe (LRoleAnnotDecl GhcRn)
- lintGblEnv :: Logger -> DynFlags -> TcGblEnv -> TcM ()
- isPartialSig :: TcIdSigInst -> Bool
- impLevel :: ThLevel
- hasCompleteSig :: TcSigFun -> Name -> Bool
- getRoleAnnots :: [Name] -> RoleAnnotEnv -> [LRoleAnnotDecl GhcRn]
- getPlatform :: TcM Platform
- getEvBindsTcPluginM :: TcPluginM EvBindsVar
- emptyRoleAnnotEnv :: RoleAnnotEnv
- emptyImportAvails :: ImportAvails
- data TcLclEnv = TcLclEnv {
- tcl_loc :: RealSrcSpan
- tcl_ctxt :: [ErrCtxt]
- tcl_in_gen_code :: Bool
- tcl_tclvl :: TcLevel
- tcl_th_ctxt :: ThStage
- tcl_th_bndrs :: ThBindEnv
- tcl_arrow_ctxt :: ArrowCtxt
- tcl_rdr :: LocalRdrEnv
- tcl_env :: TcTypeEnv
- tcl_usage :: TcRef UsageEnv
- tcl_bndrs :: TcBinderStack
- tcl_lie :: TcRef WantedConstraints
- tcl_errs :: TcRef (Messages DecoratedSDoc)
- setLclEnvTcLevel :: TcLclEnv -> TcLevel -> TcLclEnv
- setLclEnvLoc :: TcLclEnv -> RealSrcSpan -> TcLclEnv
- getLclEnvTcLevel :: TcLclEnv -> TcLevel
- getLclEnvLoc :: TcLclEnv -> RealSrcSpan
- data IOEnvFailure = IOEnvFailure
- data IOEnv env a
- writeMutVar :: IORef a -> a -> IOEnv env ()
- updMutVarM :: IORef a -> (a -> IOEnv env a) -> IOEnv env ()
- updMutVar :: IORef a -> (a -> a) -> IOEnv env ()
- updEnv :: (env -> env') -> IOEnv env' a -> IOEnv env a
- unsafeInterleaveM :: IOEnv env a -> IOEnv env a
- uninterruptibleMaskM_ :: IOEnv env a -> IOEnv env a
- tryMostM :: IOEnv env r -> IOEnv env (Either SomeException r)
- tryM :: IOEnv env r -> IOEnv env (Either IOEnvFailure r)
- tryAllM :: IOEnv env r -> IOEnv env (Either SomeException r)
- setEnv :: env' -> IOEnv env' a -> IOEnv env a
- runIOEnv :: env -> IOEnv env a -> IO a
- readMutVar :: IORef a -> IOEnv env a
- newMutVar :: a -> IOEnv env (IORef a)
- getEnv :: IOEnv env env
- fixM :: (a -> IOEnv env a) -> IOEnv env a
- failWithM :: String -> IOEnv env a
- failM :: IOEnv env a
- atomicUpdMutVar' :: IORef a -> (a -> (a, b)) -> IOEnv env b
- atomicUpdMutVar :: IORef a -> (a -> (a, b)) -> IOEnv env b
- type CompleteMatches = [CompleteMatch]
- data CompleteMatch
- zipWithAndUnzipM :: Monad m => (a -> b -> m (c, d)) -> [a] -> [b] -> m ([c], [d])
- zipWith4M :: Monad m => (a -> b -> c -> d -> m e) -> [a] -> [b] -> [c] -> [d] -> m [e]
- zipWith3M_ :: Monad m => (a -> b -> c -> m d) -> [a] -> [b] -> [c] -> m ()
- zipWith3M :: Monad m => (a -> b -> c -> m d) -> [a] -> [b] -> [c] -> m [d]
- whenM :: Monad m => m Bool -> m () -> m ()
- unlessM :: Monad m => m Bool -> m () -> m ()
- orM :: Monad m => m Bool -> m Bool -> m Bool
- maybeMapM :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b)
- mapSndM :: Monad m => (b -> m c) -> [(a, b)] -> m [(a, c)]
- mapAndUnzip5M :: Monad m => (a -> m (b, c, d, e, f)) -> [a] -> m ([b], [c], [d], [e], [f])
- mapAndUnzip4M :: Monad m => (a -> m (b, c, d, e)) -> [a] -> m ([b], [c], [d], [e])
- mapAndUnzip3M :: Monad m => (a -> m (b, c, d)) -> [a] -> m ([b], [c], [d])
- mapAccumLM :: Monad m => (acc -> x -> m (acc, y)) -> acc -> [x] -> m (acc, [y])
- liftSndM :: Monad m => (a -> b) -> m (r, a) -> m (r, b)
- liftFstM :: Monad m => (a -> b) -> m (a, r) -> m (b, r)
- foldlM_ :: (Monad m, Foldable t) => (a -> b -> m a) -> a -> t b -> m ()
- fmapMaybeM :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b)
- fmapEitherM :: Monad m => (a -> m b) -> (c -> m d) -> Either a c -> m (Either b d)
- filterOutM :: Applicative m => (a -> m Bool) -> [a] -> m [a]
- data ForeignSrcLang
- module GHC.Types.Basic
- module GHC.Types.Id
- data BuiltInSyntax
- wiredInNameTyThing_maybe :: Name -> Maybe TyThing
- stableNameCmp :: Name -> Name -> Ordering
- setNameLoc :: Name -> SrcSpan -> Name
- pprPrefixName :: NamedThing a => a -> SDoc
- pprNameUnqualified :: Name -> SDoc
- pprNameDefnLoc :: Name -> SDoc
- pprModulePrefix :: PprStyle -> Module -> OccName -> SDoc
- pprInfixName :: (Outputable a, NamedThing a) => a -> SDoc
- pprDefinedAt :: Name -> SDoc
- nameStableString :: Name -> String
- nameSrcSpan :: Name -> SrcSpan
- nameSrcLoc :: Name -> SrcLoc
- nameNameSpace :: Name -> NameSpace
- nameModule_maybe :: Name -> Maybe Module
- nameModule :: HasDebugCallStack => Name -> Module
- nameIsLocalOrFrom :: Module -> Name -> Bool
- nameIsHomePackageImport :: Module -> Name -> Bool
- nameIsHomePackage :: Module -> Name -> Bool
- nameIsFromExternalPackage :: HomeUnit -> Name -> Bool
- mkWiredInName :: Module -> OccName -> Unique -> TyThing -> BuiltInSyntax -> Name
- mkSystemVarName :: Unique -> FastString -> Name
- mkSystemNameAt :: Unique -> OccName -> SrcSpan -> Name
- mkSystemName :: Unique -> OccName -> Name
- mkSysTvName :: Unique -> FastString -> Name
- mkInternalName :: Unique -> OccName -> SrcSpan -> Name
- mkFCallName :: Unique -> String -> Name
- mkExternalName :: Unique -> Module -> OccName -> SrcSpan -> Name
- mkDerivedInternalName :: (OccName -> OccName) -> Unique -> Name -> Name
- mkClonedInternalName :: Unique -> Name -> Name
- localiseName :: Name -> Name
- isWiredInName :: Name -> Bool
- isWiredIn :: NamedThing thing => thing -> Bool
- isVarName :: Name -> Bool
- isValName :: Name -> Bool
- isTyVarName :: Name -> Bool
- isTyConName :: Name -> Bool
- isSystemName :: Name -> Bool
- isInternalName :: Name -> Bool
- isHoleName :: Name -> Bool
- isExternalName :: Name -> Bool
- isDynLinkName :: Platform -> Module -> Name -> Bool
- isDataConName :: Name -> Bool
- isBuiltInSyntax :: Name -> Bool
- getSrcSpan :: NamedThing a => a -> SrcSpan
- getSrcLoc :: NamedThing a => a -> SrcLoc
- getOccString :: NamedThing a => a -> String
- getOccFS :: NamedThing a => a -> FastString
- type TidyOccEnv = UniqFM FastString Int
- type OccSet = UniqSet OccName
- data OccEnv a
- data NameSpace
- unitOccSet :: OccName -> OccSet
- unitOccEnv :: OccName -> a -> OccEnv a
- unionOccSets :: OccSet -> OccSet -> OccSet
- unionManyOccSets :: [OccSet] -> OccSet
- tvName :: NameSpace
- tidyOccName :: TidyOccEnv -> OccName -> (TidyOccEnv, OccName)
- tcName :: NameSpace
- tcClsName :: NameSpace
- startsWithUnderscore :: OccName -> Bool
- srcDataName :: NameSpace
- setOccNameSpace :: NameSpace -> OccName -> OccName
- promoteOccName :: OccName -> Maybe OccName
- pprOccName :: OccName -> SDoc
- pprOccEnv :: (a -> SDoc) -> OccEnv a -> SDoc
- pprNonVarNameSpace :: NameSpace -> SDoc
- pprNameSpaceBrief :: NameSpace -> SDoc
- pprNameSpace :: NameSpace -> SDoc
- plusOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccEnv a -> OccEnv a
- plusOccEnv :: OccEnv a -> OccEnv a -> OccEnv a
- parenSymOcc :: OccName -> SDoc -> SDoc
- occEnvElts :: OccEnv a -> [a]
- nameSpacesRelated :: NameSpace -> NameSpace -> Bool
- mkWorkerOcc :: OccName -> OccName
- mkVarOcc :: String -> OccName
- mkTyVarOccFS :: FastString -> OccName
- mkTyVarOcc :: String -> OccName
- mkTyConRepOcc :: OccName -> OccName
- mkTcOccFS :: FastString -> OccName
- mkTcOcc :: String -> OccName
- mkTag2ConOcc :: OccName -> OccName
- mkSuperDictSelOcc :: Int -> OccName -> OccName
- mkSuperDictAuxOcc :: Int -> OccName -> OccName
- mkSpecOcc :: OccName -> OccName
- mkRepEqOcc :: OccName -> OccName
- mkOccSet :: [OccName] -> OccSet
- mkOccNameFS :: NameSpace -> FastString -> OccName
- mkOccName :: NameSpace -> String -> OccName
- mkOccEnv_C :: (a -> a -> a) -> [(OccName, a)] -> OccEnv a
- mkOccEnv :: [(OccName, a)] -> OccEnv a
- mkNewTyCoOcc :: OccName -> OccName
- mkMethodOcc :: OccName -> OccName
- mkMaxTagOcc :: OccName -> OccName
- mkMatcherOcc :: OccName -> OccName
- mkLocalOcc :: Unique -> OccName -> OccName
- mkInstTyTcOcc :: String -> OccSet -> OccName
- mkInstTyCoOcc :: OccName -> OccName
- mkIPOcc :: OccName -> OccName
- mkGenR :: OccName -> OccName
- mkGen1R :: OccName -> OccName
- mkForeignExportOcc :: OccName -> OccName
- mkEqPredCoOcc :: OccName -> OccName
- mkDictOcc :: OccName -> OccName
- mkDefaultMethodOcc :: OccName -> OccName
- mkDataTOcc :: OccName -> OccName
- mkDataOccFS :: FastString -> OccName
- mkDataOcc :: String -> OccName
- mkDataConWrapperOcc :: OccName -> OccName
- mkDataConWorkerOcc :: OccName -> OccName
- mkDataCOcc :: OccName -> OccName
- mkDFunOcc :: String -> Bool -> OccSet -> OccName
- mkCon2TagOcc :: OccName -> OccName
- mkClsOccFS :: FastString -> OccName
- mkClsOcc :: String -> OccName
- mkClassOpAuxOcc :: OccName -> OccName
- mkClassDataConOcc :: OccName -> OccName
- mkBuilderOcc :: OccName -> OccName
- minusOccSet :: OccSet -> OccSet -> OccSet
- mapOccEnv :: (a -> b) -> OccEnv a -> OccEnv b
- lookupOccEnv :: OccEnv a -> OccName -> Maybe a
- isVarOcc :: OccName -> Bool
- isVarNameSpace :: NameSpace -> Bool
- isValOcc :: OccName -> Bool
- isValNameSpace :: NameSpace -> Bool
- isTypeableBindOcc :: OccName -> Bool
- isTvOcc :: OccName -> Bool
- isTvNameSpace :: NameSpace -> Bool
- isTcOcc :: OccName -> Bool
- isTcClsNameSpace :: NameSpace -> Bool
- isSymOcc :: OccName -> Bool
- isEmptyOccSet :: OccSet -> Bool
- isDerivedOccName :: OccName -> Bool
- isDefaultMethodOcc :: OccName -> Bool
- isDataSymOcc :: OccName -> Bool
- isDataOcc :: OccName -> Bool
- isDataConNameSpace :: NameSpace -> Bool
- intersectOccSet :: OccSet -> OccSet -> OccSet
- initTidyOccEnv :: [OccName] -> TidyOccEnv
- foldOccEnv :: (a -> b -> b) -> b -> OccEnv a -> b
- filterOccSet :: (OccName -> Bool) -> OccSet -> OccSet
- filterOccEnv :: (elt -> Bool) -> OccEnv elt -> OccEnv elt
- extendOccSetList :: OccSet -> [OccName] -> OccSet
- extendOccSet :: OccSet -> OccName -> OccSet
- extendOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccName -> a -> OccEnv a
- extendOccEnv_Acc :: (a -> b -> b) -> (a -> b) -> OccEnv b -> OccName -> a -> OccEnv b
- extendOccEnvList :: OccEnv a -> [(OccName, a)] -> OccEnv a
- extendOccEnv :: OccEnv a -> OccName -> a -> OccEnv a
- emptyTidyOccEnv :: TidyOccEnv
- emptyOccSet :: OccSet
- emptyOccEnv :: OccEnv a
- elemOccSet :: OccName -> OccSet -> Bool
- elemOccEnv :: OccName -> OccEnv a -> Bool
- demoteOccName :: OccName -> Maybe OccName
- delTidyOccEnvList :: TidyOccEnv -> [FastString] -> TidyOccEnv
- delListFromOccEnv :: OccEnv a -> [OccName] -> OccEnv a
- delFromOccEnv :: OccEnv a -> OccName -> OccEnv a
- dataName :: NameSpace
- clsName :: NameSpace
- avoidClashesOccEnv :: TidyOccEnv -> [OccName] -> TidyOccEnv
- alterOccEnv :: (Maybe elt -> Maybe elt) -> OccEnv elt -> OccName -> OccEnv elt
- class NamedThing a where
- getOccName :: a -> OccName
- getName :: a -> Name
- data Name
- tidyNameOcc :: Name -> OccName -> Name
- setNameUnique :: Name -> Unique -> Name
- nameUnique :: Name -> Unique
- nameOccName :: Name -> OccName
- type FastStringEnv a = UniqFM FastString a
- mkFsEnv :: [(FastString, a)] -> FastStringEnv a
- lookupFsEnv :: FastStringEnv a -> FastString -> Maybe a
- extendFsEnv :: FastStringEnv a -> FastString -> a -> FastStringEnv a
- emptyFsEnv :: FastStringEnv a
- data OccName
- class HasOccName name where
- occNameString :: OccName -> String
- mkVarOccFS :: FastString -> OccName
- mkRecFldSelOcc :: String -> OccName
- module GHC.Types.Name.Set
- module GHC.Types.Name.Cache
- module GHC.Types.Name.Env
- data RdrName
- data Parent
- data LocalRdrEnv
- data ImportSpec = ImpSpec {}
- data ImpItemSpec
- data ImpDeclSpec = ImpDeclSpec {
- is_mod :: ModuleName
- is_as :: ModuleName
- is_qual :: Bool
- is_dloc :: SrcSpan
- type GlobalRdrEnv = OccEnv [GlobalRdrElt]
- data GlobalRdrElt
- unQualSpecOK :: ImportSpec -> Bool
- unQualOK :: GlobalRdrElt -> Bool
- transformGREs :: (GlobalRdrElt -> GlobalRdrElt) -> [OccName] -> GlobalRdrEnv -> GlobalRdrEnv
- starInfo :: Bool -> RdrName -> SDoc
- shadowNames :: GlobalRdrEnv -> [GreName] -> GlobalRdrEnv
- rdrNameSpace :: RdrName -> NameSpace
- rdrNameOcc :: RdrName -> OccName
- qualSpecOK :: ModuleName -> ImportSpec -> Bool
- promoteRdrName :: RdrName -> Maybe RdrName
- pprNameProvenance :: GlobalRdrElt -> SDoc
- pprGlobalRdrEnv :: Bool -> GlobalRdrEnv -> SDoc
- plusGlobalRdrEnv :: GlobalRdrEnv -> GlobalRdrEnv -> GlobalRdrEnv
- pickGREsModExp :: ModuleName -> [GlobalRdrElt] -> [(GlobalRdrElt, GlobalRdrElt)]
- pickGREs :: RdrName -> [GlobalRdrElt] -> [GlobalRdrElt]
- opIsAt :: RdrName -> Bool
- nameRdrName :: Name -> RdrName
- mkVarUnqual :: FastString -> RdrName
- mkUnqual :: NameSpace -> FastString -> RdrName
- mkRdrUnqual :: OccName -> RdrName
- mkRdrQual :: ModuleName -> OccName -> RdrName
- mkQual :: NameSpace -> (FastString, FastString) -> RdrName
- mkOrig :: Module -> OccName -> RdrName
- mkGlobalRdrEnv :: [GlobalRdrElt] -> GlobalRdrEnv
- lookupLocalRdrOcc :: LocalRdrEnv -> OccName -> Maybe Name
- lookupLocalRdrEnv :: LocalRdrEnv -> RdrName -> Maybe Name
- lookupGlobalRdrEnv :: GlobalRdrEnv -> OccName -> [GlobalRdrElt]
- lookupGRE_RdrName' :: RdrName -> GlobalRdrEnv -> [GlobalRdrElt]
- lookupGRE_RdrName :: RdrName -> GlobalRdrEnv -> [GlobalRdrElt]
- lookupGRE_Name_OccName :: GlobalRdrEnv -> Name -> OccName -> Maybe GlobalRdrElt
- lookupGRE_Name :: GlobalRdrEnv -> Name -> Maybe GlobalRdrElt
- lookupGRE_GreName :: GlobalRdrEnv -> GreName -> Maybe GlobalRdrElt
- lookupGRE_FieldLabel :: GlobalRdrEnv -> FieldLabel -> Maybe GlobalRdrElt
- localRdrEnvElts :: LocalRdrEnv -> [Name]
- localGREsFromAvail :: AvailInfo -> [GlobalRdrElt]
- isUnqual :: RdrName -> Bool
- isSrcRdrName :: RdrName -> Bool
- isRecFldGRE :: GlobalRdrElt -> Bool
- isRdrTyVar :: RdrName -> Bool
- isRdrTc :: RdrName -> Bool
- isRdrDataCon :: RdrName -> Bool
- isQual_maybe :: RdrName -> Maybe (ModuleName, OccName)
- isQual :: RdrName -> Bool
- isOrig_maybe :: RdrName -> Maybe (Module, OccName)
- isOrig :: RdrName -> Bool
- isNoFieldSelectorGRE :: GlobalRdrElt -> Bool
- isLocalGRE :: GlobalRdrElt -> Bool
- isFieldSelectorGRE :: GlobalRdrElt -> Bool
- isExplicitItem :: ImpItemSpec -> Bool
- isExact_maybe :: RdrName -> Maybe Name
- isExact :: RdrName -> Bool
- isDuplicateRecFldGRE :: GlobalRdrElt -> Bool
- inLocalRdrEnvScope :: Name -> LocalRdrEnv -> Bool
- importSpecModule :: ImportSpec -> ModuleName
- importSpecLoc :: ImportSpec -> SrcSpan
- gresToAvailInfo :: [GlobalRdrElt] -> [AvailInfo]
- gresFromAvails :: Maybe ImportSpec -> [AvailInfo] -> [GlobalRdrElt]
- gresFromAvail :: (Name -> Maybe ImportSpec) -> AvailInfo -> [GlobalRdrElt]
- greSrcSpan :: GlobalRdrElt -> SrcSpan
- greRdrNames :: GlobalRdrElt -> [RdrName]
- greQualModName :: GlobalRdrElt -> ModuleName
- grePrintableName :: GlobalRdrElt -> Name
- greParent_maybe :: GlobalRdrElt -> Maybe Name
- greOccName :: GlobalRdrElt -> OccName
- greMangledName :: GlobalRdrElt -> Name
- greFieldLabel :: GlobalRdrElt -> Maybe FieldLabel
- greDefinitionSrcSpan :: GlobalRdrElt -> SrcSpan
- greDefinitionModule :: GlobalRdrElt -> Maybe Module
- globalRdrEnvElts :: GlobalRdrEnv -> [GlobalRdrElt]
- getRdrName :: NamedThing thing => thing -> RdrName
- getGRE_NameQualifier_maybes :: GlobalRdrEnv -> Name -> [Maybe [ModuleName]]
- extendLocalRdrEnvList :: LocalRdrEnv -> [Name] -> LocalRdrEnv
- extendLocalRdrEnv :: LocalRdrEnv -> Name -> LocalRdrEnv
- extendGlobalRdrEnv :: GlobalRdrEnv -> GlobalRdrElt -> GlobalRdrEnv
- emptyLocalRdrEnv :: LocalRdrEnv
- emptyGlobalRdrEnv :: GlobalRdrEnv
- elemLocalRdrEnv :: RdrName -> LocalRdrEnv -> Bool
- demoteRdrName :: RdrName -> Maybe RdrName
- delLocalRdrEnvList :: LocalRdrEnv -> [OccName] -> LocalRdrEnv
- bestImport :: [ImportSpec] -> ImportSpec
- availFromGRE :: GlobalRdrElt -> AvailInfo
- data GreName
- greNameSrcSpan :: GreName -> SrcSpan
- data Severity
- emptyMessages :: Messages e
- greNamePrintableName :: GreName -> Name
- data SourceModified
- data HscSource
- module GHC.Types.SourceText
- module GHC.Types.TyThing
- module GHC.Types.TyThing.Ppr
- module GHC.Types.Unique.Supply
- setVarUnique :: Var -> Unique -> Var
- setTyVarUnique :: TyVar -> Unique -> TyVar
- data Var
- class HasModule (m :: Type -> Type) where
- class ContainsModule t where
- extractModule :: t -> Module
- uninstantiateInstantiatedUnit :: InstantiatedUnit -> InstantiatedUnit
- uninstantiateInstantiatedModule :: InstantiatedModule -> InstantiatedModule
- stableModuleCmp :: Module -> Module -> Ordering
- moduleStableString :: Module -> String
- moduleIsDefinite :: Module -> Bool
- mkHoleModule :: ModuleName -> GenModule (GenUnit u)
- isHoleModule :: GenModule (GenUnit u) -> Bool
- installedModuleEq :: InstalledModule -> Module -> Bool
- getUnitInstantiations :: Unit -> (UnitId, Maybe InstantiatedUnit)
- getModuleInstantiation :: Module -> (InstalledModule, Maybe InstantiatedModule)
- type ModuleSet = Set NDModule
- type ModuleNameEnv elt = UniqFM ModuleName elt
- data ModuleEnv elt
- data InstalledModuleEnv elt
- type DModuleNameEnv elt = UniqDFM ModuleName elt
- unitModuleSet :: Module -> ModuleSet
- unitModuleEnv :: Module -> a -> ModuleEnv a
- unionModuleSet :: ModuleSet -> ModuleSet -> ModuleSet
- plusModuleEnv_C :: (a -> a -> a) -> ModuleEnv a -> ModuleEnv a -> ModuleEnv a
- plusModuleEnv :: ModuleEnv a -> ModuleEnv a -> ModuleEnv a
- moduleSetElts :: ModuleSet -> [Module]
- moduleEnvToList :: ModuleEnv a -> [(Module, a)]
- moduleEnvKeys :: ModuleEnv a -> [Module]
- moduleEnvElts :: ModuleEnv a -> [a]
- mkModuleSet :: [Module] -> ModuleSet
- mkModuleEnv :: [(Module, a)] -> ModuleEnv a
- minusModuleSet :: ModuleSet -> ModuleSet -> ModuleSet
- mapModuleEnv :: (a -> b) -> ModuleEnv a -> ModuleEnv b
- lookupWithDefaultModuleEnv :: ModuleEnv a -> a -> Module -> a
- lookupModuleEnv :: ModuleEnv a -> Module -> Maybe a
- lookupInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> Maybe a
- isEmptyModuleEnv :: ModuleEnv a -> Bool
- intersectModuleSet :: ModuleSet -> ModuleSet -> ModuleSet
- filterModuleEnv :: (Module -> a -> Bool) -> ModuleEnv a -> ModuleEnv a
- filterInstalledModuleEnv :: (InstalledModule -> a -> Bool) -> InstalledModuleEnv a -> InstalledModuleEnv a
- extendModuleSetList :: ModuleSet -> [Module] -> ModuleSet
- extendModuleSet :: ModuleSet -> Module -> ModuleSet
- extendModuleEnvWith :: (a -> a -> a) -> ModuleEnv a -> Module -> a -> ModuleEnv a
- extendModuleEnvList_C :: (a -> a -> a) -> ModuleEnv a -> [(Module, a)] -> ModuleEnv a
- extendModuleEnvList :: ModuleEnv a -> [(Module, a)] -> ModuleEnv a
- extendModuleEnv :: ModuleEnv a -> Module -> a -> ModuleEnv a
- extendInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> a -> InstalledModuleEnv a
- emptyModuleSet :: ModuleSet
- emptyModuleEnv :: ModuleEnv a
- emptyInstalledModuleEnv :: InstalledModuleEnv a
- elemModuleSet :: Module -> ModuleSet -> Bool
- elemModuleEnv :: Module -> ModuleEnv a -> Bool
- delModuleSet :: ModuleSet -> Module -> ModuleSet
- delModuleEnvList :: ModuleEnv a -> [Module] -> ModuleEnv a
- delModuleEnv :: ModuleEnv a -> Module -> ModuleEnv a
- delInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> InstalledModuleEnv a
- removeBootSuffix :: FilePath -> FilePath
- addBootSuffix_maybe :: IsBootInterface -> FilePath -> FilePath
- addBootSuffixLocnOut :: ModLocation -> ModLocation
- addBootSuffixLocn :: ModLocation -> ModLocation
- addBootSuffix :: FilePath -> FilePath
- newtype UnitKey = UnitKey FastString
- type ModuleWithIsBoot = GenWithIsBoot Module
- type ModuleNameWithIsBoot = GenWithIsBoot ModuleName
- class IsUnitId u where
- unitFS :: u -> FastString
- data IsBootInterface
- type Instantiations = GenInstantiations UnitId
- type InstantiatedUnit = GenInstantiatedUnit UnitId
- type InstantiatedModule = GenModule InstantiatedUnit
- type InstalledModule = GenModule UnitId
- data GenWithIsBoot mod = GWIB {
- gwib_mod :: mod
- gwib_isBoot :: IsBootInterface
- type GenInstantiations unit = [(ModuleName, GenModule (GenUnit unit))]
- data GenInstantiatedUnit unit = InstantiatedUnit {
- instUnitFS :: !FastString
- instUnitKey :: !Unique
- instUnitInstanceOf :: !(Indefinite unit)
- instUnitInsts :: !(GenInstantiations unit)
- instUnitHoles :: UniqDSet ModuleName
- newtype Definite unit = Definite {
- unDefinite :: unit
- type DefUnitId = Definite UnitId
- wiredInUnitIds :: [UnitId]
- virtualUnitId :: InstantiatedUnit -> UnitId
- unitString :: IsUnitId u => u -> String
- unitIsDefinite :: Unit -> Bool
- unitIdString :: UnitId -> String
- unitFreeModuleHoles :: GenUnit u -> UniqDSet ModuleName
- thisGhcUnitId :: UnitId
- thisGhcUnit :: Unit
- thUnitId :: UnitId
- thUnit :: Unit
- stringToUnitId :: String -> UnitId
- stringToUnit :: String -> Unit
- stableUnitCmp :: Unit -> Unit -> Ordering
- rtsUnitId :: UnitId
- rtsUnit :: Unit
- primUnitId :: UnitId
- primUnit :: Unit
- pprInstantiatedModule :: InstantiatedModule -> SDoc
- moduleFreeHoles :: GenModule (GenUnit u) -> UniqDSet ModuleName
- mkVirtUnit :: IsUnitId u => Indefinite u -> [(ModuleName, GenModule (GenUnit u))] -> GenUnit u
- mkModule :: u -> ModuleName -> GenModule u
- mkInstantiatedUnitHash :: IsUnitId u => Indefinite u -> [(ModuleName, GenModule (GenUnit u))] -> FastString
- mkInstantiatedUnit :: IsUnitId u => Indefinite u -> GenInstantiations u -> GenInstantiatedUnit u
- mapInstantiations :: IsUnitId v => (u -> v) -> GenInstantiations u -> GenInstantiations v
- mapGenUnit :: IsUnitId v => (u -> v) -> GenUnit u -> GenUnit v
- mainUnitId :: UnitId
- mainUnit :: Unit
- isInteractiveModule :: Module -> Bool
- isHoleUnit :: GenUnit u -> Bool
- interactiveUnitId :: UnitId
- interactiveUnit :: Unit
- fsToUnit :: FastString -> Unit
- bignumUnitId :: UnitId
- bignumUnit :: Unit
- baseUnitId :: UnitId
- baseUnit :: Unit
- stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering
- pprModuleName :: ModuleName -> SDoc
- parseModuleName :: ReadP ModuleName
- moduleNameString :: ModuleName -> String
- moduleNameSlashes :: ModuleName -> String
- moduleNameFS :: ModuleName -> FastString
- moduleNameColons :: ModuleName -> String
- mkModuleNameFS :: FastString -> ModuleName
- mkModuleName :: String -> ModuleName
- unitIdFS :: UnitId -> FastString
- type Unit = GenUnit UnitId
- type Module = GenModule Unit
- newtype Indefinite unit = Indefinite {
- indefUnit :: unit
- type IndefUnitId = Indefinite UnitId
- data GenUnit uid
- = RealUnit !(Definite uid)
- | VirtUnit !(GenInstantiatedUnit uid)
- | HoleUnit
- data GenModule unit = Module !unit !ModuleName
- pprModule :: Module -> SDoc
- data ModuleName
- data HsModule = HsModule {}
- data SrcSpanAnn' a
- module GHC.Hs.Binds
- module GHC.Parser
- optionsErrorMsgs :: [String] -> [Located String] -> FilePath -> Messages DecoratedSDoc
- mkPrelImports :: ModuleName -> SrcSpan -> Bool -> [LImportDecl GhcPs] -> [LImportDecl GhcPs]
- getOptionsFromFile :: DynFlags -> FilePath -> IO [Located String]
- getOptions :: DynFlags -> StringBuffer -> FilePath -> [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
- | 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
- | 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 FastString
- | ITchar SourceText Char
- | ITstring SourceText FastString
- | ITinteger IntegralLit
- | ITrational FractionalLit
- | ITprimchar SourceText Char
- | ITprimstring SourceText ByteString
- | ITprimint SourceText Integer
- | ITprimword 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
- | ITdocCommentNext String PsSpan
- | ITdocCommentPrev String PsSpan
- | ITdocCommentNamed String PsSpan
- | ITdocSection Int String PsSpan
- | ITdocOptions String PsSpan
- | ITlineComment String PsSpan
- | ITblockComment String PsSpan
- data ParserOpts = ParserOpts {
- pWarningFlags :: EnumSet WarningFlag
- pExtsBitmap :: !ExtsBitmap
- data ParseResult a
- data PState = PState {
- buffer :: StringBuffer
- options :: ParserOpts
- warnings :: Bag PsWarning
- errors :: Bag PsError
- tab_first :: Maybe RealSrcSpan
- tab_count :: !Word
- last_tk :: Maybe (PsLocated Token)
- prev_loc :: PsSpan
- prev_loc2 :: 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 (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 :: PsError -> m ()
- addWarning :: WarningFlag -> PsWarning -> m ()
- addFatalError :: PsError -> m a
- getBit :: ExtBits -> m Bool
- allocateCommentsP :: RealSrcSpan -> m EpAnnComments
- allocatePriorCommentsP :: RealSrcSpan -> m EpAnnComments
- allocateFinalCommentsP :: RealSrcSpan -> m EpAnnComments
- data HdkComment
- data ExtBits
- = FfiBit
- | InterruptibleFfiBit
- | CApiFfiBit
- | ArrowsBit
- | ThBit
- | ThQuotesBit
- | IpBit
- | OverloadedLabelsBit
- | ExplicitForallBit
- | BangPatBit
- | PatternSynonymsBit
- | HaddockBit
- | MagicHashBit
- | RecursiveDoBit
- | QualifiedDoBit
- | UnicodeSyntaxBit
- | UnboxedTuplesBit
- | UnboxedSumsBit
- | 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
- | InRulePragBit
- | InNestedCommentBit
- | UsePosPragsBit
- xunset :: ExtBits -> ExtsBitmap -> ExtsBitmap
- xtest :: ExtBits -> ExtsBitmap -> Bool
- xset :: ExtBits -> ExtsBitmap -> ExtsBitmap
- warnopt :: WarningFlag -> ParserOpts -> Bool
- srcParseFail :: P a
- setSrcLoc :: RealSrcLoc -> P ()
- setLastToken :: PsSpan -> Int -> P ()
- pushModuleContext :: P ()
- pushLexState :: Int -> P ()
- popLexState :: P Int
- popContext :: P ()
- nextIsEOF :: P Bool
- mkParserOpts :: EnumSet WarningFlag -> EnumSet Extension -> Bool -> Bool -> Bool -> Bool -> ParserOpts
- mkParensEpAnn :: RealSrcSpan -> (AddEpAnn, AddEpAnn)
- lexerDbg :: Bool -> (Located Token -> P a) -> P a
- lexer :: Bool -> (Located Token -> P a) -> P a
- lexTokenStream :: ParserOpts -> StringBuffer -> RealSrcLoc -> ParseResult [Located Token]
- initPragState :: ParserOpts -> StringBuffer -> RealSrcLoc -> PState
- getRealSrcLoc :: P RealSrcLoc
- getPriorCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments
- getPState :: P PState
- getMessages :: PState -> (Bag PsWarning, Bag PsError)
- getLexState :: P Int
- getFinalCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments
- getErrorMessages :: PState -> Bag PsError
- getEofPos :: P (Maybe (RealSrcSpan, RealSrcSpan))
- getCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments
- failMsgP :: (SrcSpan -> PsError) -> P a
- failLocMsgP :: RealSrcLoc -> RealSrcLoc -> (SrcSpan -> PsError) -> P a
- commentToAnnotation :: RealLocated Token -> LEpaComment
- allocatePriorComments :: RealSrcSpan -> [LEpaComment] -> Maybe [LEpaComment] -> (Maybe [LEpaComment], [LEpaComment], [LEpaComment])
- allocateFinalComments :: RealSrcSpan -> [LEpaComment] -> Maybe [LEpaComment] -> (Maybe [LEpaComment], [LEpaComment], [LEpaComment])
- allocateComments :: RealSrcSpan -> [LEpaComment] -> ([LEpaComment], [LEpaComment])
- activeContext :: P Bool
- pattern HsFieldBind :: XHsRecField id -> id -> arg -> Bool -> HsRecField' id arg
- hfbAnn :: HsRecField' id arg -> XHsRecField id
- hfbLHS :: HsRecField' id arg -> id
- hfbRHS :: HsRecField' id arg -> arg
- hfbPun :: HsRecField' id arg -> Bool
- data Extension where
- 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
- RecordPuns
- ViewPatterns
- GADTs
- GADTSyntax
- NPlusKPatterns
- DoAndIfThenElse
- BlockArguments
- RebindableSyntax
- ConstraintKinds
- PolyKinds
- DataKinds
- InstanceSigs
- ApplicativeDo
- LinearTypes
- 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
- pattern NamedFieldPuns :: Extension
- data UniqFM key ele
- mkCgInteractiveGuts :: CgGuts -> CgGuts
- justBytecode :: Linkable -> Maybe Linkable
- justObjects :: Linkable -> Maybe Linkable
- emptyHomeModInfoLinkable :: Maybe Linkable
- homeModInfoByteCode :: HomeModInfo -> Maybe Linkable
- homeModInfoObject :: HomeModInfo -> Maybe Linkable
- field_label :: a -> a
- groupOrigin :: MatchGroup p body -> Origin
Session
Contains not only a collection of GeneralFlag
s 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.
outputFile :: DynFlags -> Maybe String #
pluginModNames :: DynFlags -> [ModuleName] #
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]
loadSysInterface :: SDoc -> Module -> IfM lcl ModIface #
Loads a system interface and throws an exception if it fails
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
Show PackageFlag Source # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> PackageFlag -> ShowS # show :: PackageFlag -> String # showList :: [PackageFlag] -> ShowS # | |
Outputable PackageFlag | |
Defined in GHC.Driver.Session Methods ppr :: PackageFlag -> SDoc # | |
Eq PackageFlag | |
Defined in GHC.Driver.Session |
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
Show PackageArg | |
Defined in GHC.Driver.Session Methods showsPrec :: Int -> PackageArg -> ShowS # show :: PackageArg -> String # showList :: [PackageArg] -> ShowS # | |
Outputable PackageArg | |
Defined in GHC.Driver.Session Methods ppr :: PackageArg -> SDoc # | |
Eq PackageArg | |
Defined in GHC.Driver.Session |
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.Session Methods ppr :: ModRenaming -> SDoc # | |
Eq ModRenaming | |
Defined in GHC.Driver.Session |
pattern ExposePackage :: String -> PackageArg -> ModRenaming -> PackageFlag Source #
Arguments
:: MonadIO m | |
=> DynFlags | |
-> [Located String] | |
-> m (DynFlags, [Located String], [Warn]) | 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], [Warn]) | 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.
data WarnReason #
Used when outputting warnings: if a reason is given, it is displayed. If a warning isn't controlled by a flag, this is made explicit at the point of use.
Constructors
NoReason | |
Reason !WarningFlag | Warning was enabled with the flag |
ErrReason !(Maybe WarningFlag) | Warning was made an error because of -Werror or -Werror=WarningFlag |
Instances
Show WarnReason | |
Defined in GHC.Driver.Flags Methods showsPrec :: Int -> WarnReason -> ShowS # show :: WarnReason -> String # showList :: [WarnReason] -> ShowS # | |
ToJson WarnReason | |
Defined in GHC.Driver.Flags Methods json :: WarnReason -> JsonDoc # | |
Outputable WarnReason | |
Defined in GHC.Driver.Flags Methods ppr :: WarnReason -> SDoc # |
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
.
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 |
HsBootFile | .hs-boot file |
HsigFile | .hsig file |
Instances
Show HscSource | |
Binary HscSource | |
Eq HscSource | |
Ord HscSource | |
Constructors
ImportByUser IsBootInterface | |
ImportBySystem | |
ImportByPlugin |
Instances
Outputable WhereFrom | |
Defined in GHC.Tc.Types |
data SourceModified #
Indicates whether a given module's source has been modified since it was last compiled.
Constructors
SourceModified | the source has been modified |
SourceUnmodified | the source has not been modified. Compilation may or may not be necessary, depending on whether any dependencies have changed since we last compiled. |
SourceUnmodifiedAndStable | the source has not been modified, and furthermore all of its (transitive) dependencies are up to date; it definitely does not need to be recompiled. This is important for two reasons: (a) we can omit the version check in checkOldIface, and (b) if the module used TH splices we don't need to force recompilation. |
Instances
Show SourceModified Source # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> SourceModified -> ShowS # show :: SourceModified -> String # showList :: [SourceModified] -> ShowS # | |
NFData SourceModified Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: SourceModified -> () # | |
Eq SourceModified Source # | |
Defined in Development.IDE.GHC.Orphans Methods (==) :: SourceModified -> SourceModified -> Bool # (/=) :: SourceModified -> SourceModified -> Bool # |
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 |
MustCompile | The .hs file has been touched, or the .o/.hi file does not exist |
RecompBecause String | The .o/.hi files are up to date, but something else has changed to force recompilation; the String says what (one-line summary) |
Instances
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 -> ModDetails -> ModGuts -> PartialModIface #
mkFullIface :: HscEnv -> PartialModIface -> Maybe CgInfos -> IO ModIface #
Fully instantiate an interface. Adds fingerprints and potentially code generator produced information.
CgInfos 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.
checkOldIface :: HscEnv -> ModSummary -> SourceModified -> Maybe ModIface -> IO (RecompileRequired, Maybe ModIface) #
Top level function to check if the version of an old interface file is equivalent to the current source file the user asked us to compile. If the same, we can avoid recompilation. We return a tuple where the first element is a bool saying if we should recompile the object file and the second is maybe the interface file, where Nothing means to rebuild the interface file and not use the existing one.
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
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 # | |
Outputable LexicalFixity | |
Defined in GHC.Types.Fixity Methods ppr :: LexicalFixity -> SDoc # | |
Eq LexicalFixity | |
Defined in GHC.Types.Fixity Methods (==) :: LexicalFixity -> LexicalFixity -> Bool # (/=) :: LexicalFixity -> LexicalFixity -> Bool # |
Constructors
Fixity SourceText Int FixityDirection |
Instances
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 # | |
Binary Fixity | |
Outputable Fixity | |
Defined in GHC.Types.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
Show ModSummary Source # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> ModSummary -> ShowS # show :: ModSummary -> String # showList :: [ModSummary] -> ShowS # | |
NFData ModSummary Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: ModSummary -> () # | |
Outputable ModSummary | |
Defined in GHC.Unit.Module.ModSummary Methods ppr :: ModSummary -> SDoc # |
HomeModInfo
data HomeModInfo #
Information about modules in the package being compiled
Constructors
HomeModInfo | |
Fields
|
Instances
Show HomeModInfo Source # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> HomeModInfo -> ShowS # show :: HomeModInfo -> String # showList :: [HomeModInfo] -> ShowS # | |
NFData HomeModInfo Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: HomeModInfo -> () # |
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
Show ModDetails Source # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> ModDetails -> ShowS # show :: ModDetails -> String # showList :: [ModDetails] -> ShowS # | |
NFData ModDetails Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: ModDetails -> () # |
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 !TyCoVarBinder Type | A Π type. 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
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 # | |
NFData Type Source # | |
Defined in Development.IDE.GHC.Orphans | |
Outputable Type | |
Defined in GHC.Core.TyCo.Rep | |
Eq (DeBruijn Type) | |
conPatDetails :: Pat p -> Maybe (HsConPatDetails p) Source #
mapConPatDetail :: (HsConPatDetails p -> Maybe (HsConPatDetails p)) -> Pat p -> Maybe (Pat p) Source #
Specs
data ImpDeclSpec #
Import Declaration Specification
Describes a particular import declaration and is
shared among all the Provenance
s 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
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 # | |
Outputable ImportSpec | |
Defined in GHC.Types.Name.Reader Methods ppr :: ImportSpec -> SDoc # | |
Eq ImportSpec | |
Defined in GHC.Types.Name.Reader |
SourceText
data SourceText #
Constructors
SourceText String | |
NoSourceText | For when code is generated, e.g. TH, deriving. The pretty printer will then make its own representation of the item. |
Instances
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 # | |
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 # | |
Eq SourceText | |
Defined in GHC.Types.SourceText | |
type Anno (SourceText, RuleName) | |
Defined in GHC.Hs.Decls | |
type Anno (SourceText, RuleName) | |
Defined in GHC.Hs.Decls |
Name
tyThingParent_maybe :: TyThing -> Maybe TyThing #
tyThingParent_maybe x returns (Just p) when pprTyThingInContext should print a declaration for p (albeit with some "..." in it) when asked to show x It returns the *immediate* parent. So a datacon returns its tycon but the tycon could be the associated type of a class, so it in turn might have a parent.
Ways
A way
Don't change the constructor order as it us 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
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 # | |
Binary AvailInfo | |
Outputable AvailInfo | |
Defined in GHC.Types.Avail | |
Eq AvailInfo | Used when deciding if the interface has changed |
pattern AvailFL :: FieldLabel -> AvailInfo Source #
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] #
All names made available by the availability information (excluding overloaded selectors)
availNamesWithSelectors :: AvailInfo -> [Name] #
All names made available by the availability information (including overloaded selectors)
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
|
Instances
Data HsModule | |
Defined in GHC.Hs Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsModule -> c HsModule # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsModule # toConstr :: HsModule -> Constr # dataTypeOf :: HsModule -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsModule) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsModule) # gmapT :: (forall b. Data b => b -> b) -> HsModule -> HsModule # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsModule -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsModule -> r # gmapQ :: (forall d. Data d => d -> u) -> HsModule -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsModule -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsModule -> m HsModule # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsModule -> m HsModule # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsModule -> m HsModule # | |
NFData HsModule Source # | |
Defined in Development.IDE.GHC.Orphans | |
Outputable HsModule | |
type ParsedSource = Located HsModule #
type RenamedSource = (HsGroup GhcRn, [LImportDecl GhcRn], Maybe [(LIE GhcRn, Avails)], Maybe LHsDocString) #
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.
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 :: GhcMonad m => DynFlags -> m () #
Updates both the interactive and program DynFlags in a Session. This also reads the package database (unless it has already been read), and prepares the compilers knowledge about packages. It can be called again to load new packages: just add new package flags to (packageFlags dflags).
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 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
MonadFix Ghc | |
Defined in GHC.Driver.Monad | |
MonadIO Ghc | |
Defined in GHC.Driver.Monad | |
Applicative Ghc | |
Functor Ghc | |
Monad Ghc | |
MonadCatch Ghc | |
MonadMask Ghc | |
MonadThrow Ghc | |
Defined in GHC.Driver.Monad | |
GhcMonad Ghc | |
Defined in GHC.Driver.Monad | |
HasDynFlags Ghc | |
Defined in GHC.Driver.Monad Methods getDynFlags :: Ghc DynFlags # | |
HasLogger Ghc | |
Defined in GHC.Driver.Monad |
Constructors
Unlit HscSource | |
Cpp HscSource | |
HsPp HscSource | |
Hsc HscSource | |
Ccxx | |
Cc | |
Cobjc | |
Cobjcxx | |
HCc | |
As Bool | |
LlvmOpt | |
LlvmLlc | |
LlvmMangle | |
CmmCpp | |
Cmm | |
MergeForeign | |
StopLn |
Instances
Show Phase | |
Outputable Phase | |
Defined in GHC.Driver.Phases | |
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)], CgInfos) |
|
Compile to hard-code.
hscInteractive :: HscEnv -> CgGuts -> 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
makeSimpleDetails :: HscEnv -> TcGblEnv -> IO ModDetails Source #
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 -> p -> TcGblEnv -> IO ModIface Source #
mkBootModDetailsTc :: HscEnv -> TcGblEnv -> IO ModDetails Source #
initTidyOpts :: HscEnv -> IO TidyOpts Source #
hscUpdateHPT :: (HomePackageTable -> HomePackageTable) -> HscEnv -> HscEnv Source #
driverNoStop :: Phase Source #
tidyProgram :: HscEnv -> ModGuts -> IO (CgGuts, ModDetails) #
data ImportedModsVal #
Constructors
ImportedModsVal | |
Fields
|
importedByUser :: [ImportedBy] -> [ImportedModsVal] #
type TypecheckedSource = LHsBinds GhcTc #
Source Locations
class HasSrcSpan a Source #
Minimal complete definition
Instances
HasSrcSpan SrcSpan Source # | |
HasSrcSpan (SrcSpanAnn' ann) Source # | |
Defined in Development.IDE.GHC.Compat.Core Methods getLoc :: SrcSpanAnn' ann -> SrcSpan Source # | |
HasSrcSpan (GenLocated (SrcSpanAnn' ann) a) Source # | |
Defined in Development.IDE.GHC.Compat.Core Methods getLoc :: GenLocated (SrcSpanAnn' ann) a -> SrcSpan Source # | |
HasSrcSpan (GenLocated SrcSpan a) Source # | |
Defined in Development.IDE.GHC.Compat.Core |
type Located = GenLocated SrcSpan #
unLoc :: GenLocated l e -> e #
getLoc :: HasSrcSpan a => a -> SrcSpan Source #
getLocA :: GenLocated (SrcSpanAnn' a) e -> SrcSpan #
locA :: SrcSpanAnn' a -> SrcSpan #
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
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 # | |
Monoid AnnListItem | |
Defined in GHC.Parser.Annotation Methods mempty :: AnnListItem # mappend :: AnnListItem -> AnnListItem -> AnnListItem # mconcat :: [AnnListItem] -> AnnListItem # | |
Semigroup AnnListItem | |
Defined in GHC.Parser.Annotation Methods (<>) :: AnnListItem -> AnnListItem -> AnnListItem # sconcat :: NonEmpty AnnListItem -> AnnListItem # stimes :: Integral b => b -> AnnListItem -> AnnListItem # | |
Outputable AnnListItem | |
Defined in GHC.Parser.Annotation Methods ppr :: AnnListItem -> SDoc # | |
Eq AnnListItem | |
Defined in GHC.Parser.Annotation | |
HasLoc (LocatedA a) | |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (HsBind (GhcPass p))) | |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct
Since the above is quite costly, we just skip cases where computing the expression's type is going to be expensive. See #16233 |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (Pat (GhcPass p))) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ImportDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA HsWrapper) | |
ToHie (LocatedA (FixitySig GhcRn)) | |
ToHie (LocatedA (AnnDecl GhcRn)) | |
ToHie (LocatedA (ClsInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ConDecl GhcRn)) | |
ToHie (LocatedA (DataFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (DefaultDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (DerivDecl GhcRn)) | |
ToHie (LocatedA (FamilyDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ForeignDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (FunDep GhcRn)) | |
ToHie (LocatedA (InstDecl GhcRn)) | |
ToHie (LocatedA (RoleAnnotDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (RuleDecl GhcRn)) | |
ToHie (LocatedA (RuleDecls GhcRn)) | |
ToHie (LocatedA (SpliceDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (StandaloneKindSig GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (TyClDecl GhcRn)) | |
ToHie (LocatedA (TyFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
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 (HsSplice (GhcPass p))) | |
(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 (ConDeclField GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (HsType GhcRn)) | |
ToHie (LocatedC [LocatedA (HsType GhcRn)]) | |
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) | |
Defined in Compat.HieAst | |
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (Located (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) | |
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) | |
ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) | |
Defined in Compat.HieAst | |
ToHie (EvBindContext (LocatedA TcEvBinds)) | |
ToHie (IEContext (LIEWrappedName Name)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (LIEWrappedName Name) -> HieM [HieAST Type] | |
ToHie (IEContext (LocatedA (IE GhcRn))) | |
ToHie (IEContext (LocatedA ModuleName)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type] | |
HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) | |
(ToHie (RFContext (Located label)), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsRecField' label arg))) | |
Defined in Compat.HieAst Methods toHie :: RContext (LocatedA (HsRecField' label arg)) -> HieM [HieAST Type] | |
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 Compat.HieAst | |
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) | |
Defined in Compat.HieAst | |
Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) | |
Defined in Compat.HieAst | |
(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 Compat.HieAst | |
type Anno (LocatedA (IE (GhcPass p))) | |
Defined in GHC.Hs.ImpExp | |
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.PostProcess | |
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 (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 (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 GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
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.PostProcess | |
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.PostProcess | |
type Anno (HsRecField' (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
Defined in GHC.Hs.Pat | |
type Anno (HsRecField' (AmbiguousFieldOcc p) (LocatedA (HsExpr p))) | |
Defined in GHC.Hs.Pat | |
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.PostProcess | |
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 | |
NameAnnOnly | Used for |
Fields | |
NameAnnRArrow | Used for |
Fields
| |
NameAnnQuote | Used for an item with a leading |
Fields | |
NameAnnTrailing | Used when adding a |
Fields
|
Instances
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 # | |
Monoid NameAnn | |
Semigroup NameAnn | |
Outputable NameAnn | |
Defined in GHC.Parser.Annotation | |
Eq NameAnn | |
HasLoc (LocatedN a) | |
Defined in Compat.HieAst | |
ToHie (LBooleanFormula (LocatedN Name)) | |
Defined in Compat.HieAst | |
ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) | |
Defined in Compat.HieAst | |
type Anno (LocatedN Name) | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN RdrName) | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN Id) | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN Name] | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN RdrName] | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN Id] | |
Defined in GHC.Hs.Binds |
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
Bifunctor GenLocated Source # | |
Defined in Development.IDE.GHC.Orphans Methods bimap :: (a -> b) -> (c -> d) -> GenLocated a c -> GenLocated b d # first :: (a -> b) -> GenLocated a c -> GenLocated b c # second :: (b -> c) -> GenLocated a b -> GenLocated a c # | |
Foldable (GenLocated l) | |
Defined in GHC.Types.SrcLoc Methods fold :: Monoid m => GenLocated l m -> m # foldMap :: Monoid m => (a -> m) -> GenLocated l a -> m # foldMap' :: Monoid m => (a -> m) -> GenLocated l a -> m # foldr :: (a -> b -> b) -> b -> GenLocated l a -> b # foldr' :: (a -> b -> b) -> b -> GenLocated l a -> b # foldl :: (b -> a -> b) -> b -> GenLocated l a -> b # foldl' :: (b -> a -> b) -> b -> GenLocated l a -> b # foldr1 :: (a -> a -> a) -> GenLocated l a -> a # foldl1 :: (a -> a -> a) -> GenLocated l a -> a # toList :: GenLocated l a -> [a] # null :: GenLocated l a -> Bool # length :: GenLocated l a -> Int # elem :: Eq a => a -> GenLocated l a -> Bool # maximum :: Ord a => GenLocated l a -> a # minimum :: Ord a => GenLocated l a -> a # sum :: Num a => GenLocated l a -> a # product :: Num a => GenLocated l a -> a # | |
Traversable (GenLocated l) | |
Defined in GHC.Types.SrcLoc Methods traverse :: Applicative f => (a -> f b) -> GenLocated l a -> f (GenLocated l b) # sequenceA :: Applicative f => GenLocated l (f a) -> f (GenLocated l a) # mapM :: Monad m => (a -> m b) -> GenLocated l a -> m (GenLocated l b) # sequence :: Monad m => GenLocated l (m a) -> m (GenLocated l a) # | |
Functor (GenLocated l) | |
Defined in GHC.Types.SrcLoc Methods fmap :: (a -> b) -> GenLocated l a -> GenLocated l b # (<$) :: a -> GenLocated l b -> GenLocated l a # | |
NamedThing e => NamedThing (Located e) | |
Defined in GHC.Types.Name | |
Binary a => Binary (LocatedL a) | |
Binary a => Binary (Located a) | |
Outputable e => Outputable (Located e) | |
Defined in GHC.Types.SrcLoc | |
HasLoc (LocatedA a) | |
Defined in Compat.HieAst | |
HasLoc (LocatedN a) | |
Defined in Compat.HieAst | |
HasLoc (Located a) | |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (HsBind (GhcPass p))) | |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct
Since the above is quite costly, we just skip cases where computing the expression's type is going to be expensive. See #16233 |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (Pat (GhcPass p))) | |
Defined in Compat.HieAst | |
ToHie (LBooleanFormula (LocatedN Name)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ImportDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA HsWrapper) | |
ToHie (LocatedA (FixitySig GhcRn)) | |
ToHie (LocatedA (AnnDecl GhcRn)) | |
ToHie (LocatedA (ClsInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ConDecl GhcRn)) | |
ToHie (LocatedA (DataFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (DefaultDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (DerivDecl GhcRn)) | |
ToHie (LocatedA (FamilyDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ForeignDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (FunDep GhcRn)) | |
ToHie (LocatedA (InstDecl GhcRn)) | |
ToHie (LocatedA (RoleAnnotDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (RuleDecl GhcRn)) | |
ToHie (LocatedA (RuleDecls GhcRn)) | |
ToHie (LocatedA (SpliceDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (StandaloneKindSig GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (TyClDecl GhcRn)) | |
ToHie (LocatedA (TyFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
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 (HsSplice (GhcPass p))) | |
(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 (ConDeclField GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (HsType GhcRn)) | |
ToHie (LocatedC (DerivClauseTys GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedC [LocatedA (HsType GhcRn)]) | |
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) | |
Defined in Compat.HieAst | |
ToHie (LocatedP OverlapMode) | |
Defined in Compat.HieAst Methods toHie :: LocatedP OverlapMode -> HieM [HieAST Type] | |
HiePass p => ToHie (Located (PatSynBind (GhcPass p) (GhcPass p))) | |
Defined in Compat.HieAst | |
ToHie (Located (DerivStrategy GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (Located (HsDerivingClause GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (Located (InjectivityAnn GhcRn)) | |
Defined in Compat.HieAst | |
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (Located (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) | |
HiePass p => ToHie (Located (HsCmdTop (GhcPass p))) | |
ToHie (Located HsIPName) | |
ToHie (Located [Located (HsDerivingClause GhcRn)]) | |
Defined in Compat.HieAst | |
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) | |
ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) | |
Defined in Compat.HieAst | |
ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) | |
Defined in Compat.HieAst | |
ToHie (Context (Located Name)) | |
ToHie (Context (Located Var)) | |
ToHie (Context (Located NoExtField)) | |
Defined in Compat.HieAst Methods toHie :: Context (Located NoExtField) -> HieM [HieAST Type] | |
ToHie (EvBindContext (LocatedA TcEvBinds)) | |
ToHie (IEContext (LIEWrappedName Name)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (LIEWrappedName Name) -> HieM [HieAST Type] | |
ToHie (IEContext (LocatedA (IE GhcRn))) | |
ToHie (IEContext (LocatedA ModuleName)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type] | |
ToHie (IEContext (Located FieldLabel)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (Located FieldLabel) -> HieM [HieAST Type] | |
HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) | |
(ToHie (RFContext (Located label)), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsRecField' label arg))) | |
Defined in Compat.HieAst Methods toHie :: RContext (LocatedA (HsRecField' label arg)) -> HieM [HieAST Type] | |
ToHie (RFContext (Located (AmbiguousFieldOcc GhcRn))) | |
Defined in Compat.HieAst | |
ToHie (RFContext (Located (AmbiguousFieldOcc GhcTc))) | |
Defined in Compat.HieAst | |
ToHie (RFContext (Located (FieldOcc GhcRn))) | |
ToHie (RFContext (Located (FieldOcc GhcTc))) | |
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)))))) | |
ToHie (RScoped (Located (FamilyResultSig GhcRn))) | |
Defined in Compat.HieAst | |
ToHie (RScoped (Located (RuleBndr GhcRn))) | |
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 Compat.HieAst | |
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) | |
Defined in Compat.HieAst | |
Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) | |
Defined in Compat.HieAst | |
(Data l, Data e) => Data (GenLocated l e) | |
Defined in GHC.Types.SrcLoc Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GenLocated l e -> c (GenLocated l e) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (GenLocated l e) # toConstr :: GenLocated l e -> Constr # dataTypeOf :: GenLocated l e -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (GenLocated l e)) # dataCast2 :: Typeable t => (forall d e0. (Data d, Data e0) => c (t d e0)) -> Maybe (c (GenLocated l e)) # gmapT :: (forall b. Data b => b -> b) -> GenLocated l e -> GenLocated l e # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GenLocated l e -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GenLocated l e -> r # gmapQ :: (forall d. Data d => d -> u) -> GenLocated l e -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> GenLocated l e -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> GenLocated l e -> m (GenLocated l e) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GenLocated l e -> m (GenLocated l e) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GenLocated l e -> m (GenLocated l e) # | |
Outputable a => Show (GenLocated SrcSpan a) Source # | |
Defined in Development.IDE.GHC.Orphans | |
(NFData l, NFData e) => NFData (GenLocated l e) Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: GenLocated l e -> () # | |
NamedThing (Located a) => NamedThing (LocatedAn an a) | |
Defined in GHC.Parser.Annotation | |
Outputable (GenLocated Anchor EpaComment) | |
Defined in GHC.Parser.Annotation Methods ppr :: GenLocated Anchor EpaComment -> SDoc # | |
(Outputable a, Outputable e) => Outputable (GenLocated (SrcSpanAnn' a) e) | |
Defined in GHC.Parser.Annotation Methods ppr :: GenLocated (SrcSpanAnn' a) e -> SDoc # | |
Outputable e => Outputable (GenLocated RealSrcSpan e) | |
Defined in GHC.Types.SrcLoc Methods ppr :: GenLocated RealSrcSpan e -> SDoc # | |
OutputableBndr (GenLocated SrcSpan (FieldOcc pass)) | |
Defined in Language.Haskell.Syntax.Type Methods pprBndr :: BindingSite -> GenLocated SrcSpan (FieldOcc pass) -> SDoc # pprPrefixOcc :: GenLocated SrcSpan (FieldOcc pass) -> SDoc # pprInfixOcc :: GenLocated SrcSpan (FieldOcc pass) -> SDoc # bndrIsJoin_maybe :: GenLocated SrcSpan (FieldOcc pass) -> Maybe Int # | |
(Eq l, Eq e) => Eq (GenLocated l e) | |
Defined in GHC.Types.SrcLoc Methods (==) :: GenLocated l e -> GenLocated l e -> Bool # (/=) :: GenLocated l e -> GenLocated l e -> Bool # | |
(Ord l, Ord e) => Ord (GenLocated l e) | |
Defined in GHC.Types.SrcLoc Methods compare :: GenLocated l e -> GenLocated l e -> Ordering # (<) :: GenLocated l e -> GenLocated l e -> Bool # (<=) :: GenLocated l e -> GenLocated l e -> Bool # (>) :: GenLocated l e -> GenLocated l e -> Bool # (>=) :: GenLocated l e -> GenLocated l e -> Bool # max :: GenLocated l e -> GenLocated l e -> GenLocated l e # min :: GenLocated l e -> GenLocated l e -> GenLocated l e # | |
HasSrcSpan (GenLocated (SrcSpanAnn' ann) a) Source # | |
Defined in Development.IDE.GHC.Compat.Core Methods getLoc :: GenLocated (SrcSpanAnn' ann) a -> SrcSpan Source # | |
HasSrcSpan (GenLocated SrcSpan a) Source # | |
Defined in Development.IDE.GHC.Compat.Core | |
(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 Compat.HieAst | |
type Anno (LocatedA (IE (GhcPass p))) | |
Defined in GHC.Hs.ImpExp | |
type Anno (LocatedN Name) | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN RdrName) | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN Id) | |
Defined in GHC.Hs.Binds | |
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.PostProcess | |
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 (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 (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 GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
type Anno [LocatedA (ConDeclField (GhcPass _1))] | |
Defined in GHC.Hs.Decls | |
type Anno [LocatedA (HsType (GhcPass p))] | |
Defined in GHC.Hs.Type | |
type Anno [LocatedN Name] | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN RdrName] | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN Id] | |
Defined in GHC.Hs.Binds | |
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.PostProcess | |
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.PostProcess | |
type Anno (HsRecField' (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
Defined in GHC.Hs.Pat | |
type Anno (HsRecField' (AmbiguousFieldOcc p) (LocatedA (HsExpr p))) | |
Defined in GHC.Hs.Pat | |
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.PostProcess | |
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) | |
Defined in GHC.Hs.Expr |
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 SrcSpan
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 Source #
data RealSrcLoc #
Real Source Location
Represents a single point within a file
Instances
Show RealSrcLoc | |
Defined in GHC.Types.SrcLoc Methods showsPrec :: Int -> RealSrcLoc -> ShowS # show :: RealSrcLoc -> String # showList :: [RealSrcLoc] -> ShowS # | |
Outputable RealSrcLoc | |
Defined in GHC.Types.SrcLoc Methods ppr :: RealSrcLoc -> SDoc # | |
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 #
Source Location
Constructors
UnhelpfulLoc FastString |
Instances
Show SrcLoc | |
Outputable SrcLoc | |
Defined in GHC.Types.SrcLoc | |
Eq SrcLoc | |
StringBuffer Source Span
data SrcSpanAnn' a #
The 'SrcSpanAnn'' type wraps a normal SrcSpan
, together with
an extra annotation type. This is mapped to a specific GenLocated
usage in the AST through the XRec
and Anno
type families.
Instances
Functor SrcSpanAnn' Source # | |
Defined in Development.IDE.GHC.Orphans Methods fmap :: (a -> b) -> SrcSpanAnn' a -> SrcSpanAnn' b # (<$) :: a -> SrcSpanAnn' b -> SrcSpanAnn' a # | |
Data a => Data (SrcSpanAnn' a) | |
Defined in GHC.Parser.Annotation Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcSpanAnn' a -> c (SrcSpanAnn' a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SrcSpanAnn' a) # toConstr :: SrcSpanAnn' a -> Constr # dataTypeOf :: SrcSpanAnn' a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (SrcSpanAnn' a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SrcSpanAnn' a)) # gmapT :: (forall b. Data b => b -> b) -> SrcSpanAnn' a -> SrcSpanAnn' a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpanAnn' a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpanAnn' a -> r # gmapQ :: (forall d. Data d => d -> u) -> SrcSpanAnn' a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcSpanAnn' a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcSpanAnn' a -> m (SrcSpanAnn' a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpanAnn' a -> m (SrcSpanAnn' a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpanAnn' a -> m (SrcSpanAnn' a) # | |
Semigroup an => Semigroup (SrcSpanAnn' an) | |
Defined in GHC.Parser.Annotation Methods (<>) :: SrcSpanAnn' an -> SrcSpanAnn' an -> SrcSpanAnn' an # sconcat :: NonEmpty (SrcSpanAnn' an) -> SrcSpanAnn' an # stimes :: Integral b => b -> SrcSpanAnn' an -> SrcSpanAnn' an # | |
NFData (SrcSpanAnn' a) Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: SrcSpanAnn' a -> () # | |
Binary a => Binary (LocatedL a) | |
Outputable a => Outputable (SrcSpanAnn' a) | |
Defined in GHC.Parser.Annotation Methods ppr :: SrcSpanAnn' a -> SDoc # | |
Eq a => Eq (SrcSpanAnn' a) | |
Defined in GHC.Parser.Annotation Methods (==) :: SrcSpanAnn' a -> SrcSpanAnn' a -> Bool # (/=) :: SrcSpanAnn' a -> SrcSpanAnn' a -> Bool # | |
HasSrcSpan (SrcSpanAnn' ann) Source # | |
Defined in Development.IDE.GHC.Compat.Core Methods getLoc :: SrcSpanAnn' ann -> SrcSpan Source # | |
HasLoc (LocatedA a) | |
Defined in Compat.HieAst | |
HasLoc (LocatedN a) | |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (HsBind (GhcPass p))) | |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct
Since the above is quite costly, we just skip cases where computing the expression's type is going to be expensive. See #16233 |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (Pat (GhcPass p))) | |
Defined in Compat.HieAst | |
ToHie (LBooleanFormula (LocatedN Name)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ImportDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA HsWrapper) | |
ToHie (LocatedA (FixitySig GhcRn)) | |
ToHie (LocatedA (AnnDecl GhcRn)) | |
ToHie (LocatedA (ClsInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ConDecl GhcRn)) | |
ToHie (LocatedA (DataFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (DefaultDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (DerivDecl GhcRn)) | |
ToHie (LocatedA (FamilyDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ForeignDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (FunDep GhcRn)) | |
ToHie (LocatedA (InstDecl GhcRn)) | |
ToHie (LocatedA (RoleAnnotDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (RuleDecl GhcRn)) | |
ToHie (LocatedA (RuleDecls GhcRn)) | |
ToHie (LocatedA (SpliceDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (StandaloneKindSig GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (TyClDecl GhcRn)) | |
ToHie (LocatedA (TyFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
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 (HsSplice (GhcPass p))) | |
(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 (ConDeclField GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (HsType GhcRn)) | |
ToHie (LocatedC (DerivClauseTys GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedC [LocatedA (HsType GhcRn)]) | |
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) | |
Defined in Compat.HieAst | |
ToHie (LocatedP OverlapMode) | |
Defined in Compat.HieAst Methods toHie :: LocatedP OverlapMode -> HieM [HieAST Type] | |
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (Located (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) | |
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) | |
ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) | |
Defined in Compat.HieAst | |
ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) | |
Defined in Compat.HieAst | |
ToHie (EvBindContext (LocatedA TcEvBinds)) | |
ToHie (IEContext (LIEWrappedName Name)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (LIEWrappedName Name) -> HieM [HieAST Type] | |
ToHie (IEContext (LocatedA (IE GhcRn))) | |
ToHie (IEContext (LocatedA ModuleName)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type] | |
HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) | |
(ToHie (RFContext (Located label)), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsRecField' label arg))) | |
Defined in Compat.HieAst Methods toHie :: RContext (LocatedA (HsRecField' label arg)) -> HieM [HieAST Type] | |
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 Compat.HieAst | |
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) | |
Defined in Compat.HieAst | |
Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) | |
Defined in Compat.HieAst | |
NamedThing (Located a) => NamedThing (LocatedAn an a) | |
Defined in GHC.Parser.Annotation | |
(Outputable a, Outputable e) => Outputable (GenLocated (SrcSpanAnn' a) e) | |
Defined in GHC.Parser.Annotation Methods ppr :: GenLocated (SrcSpanAnn' a) e -> SDoc # | |
HasSrcSpan (GenLocated (SrcSpanAnn' ann) a) Source # | |
Defined in Development.IDE.GHC.Compat.Core Methods getLoc :: GenLocated (SrcSpanAnn' ann) a -> SrcSpan Source # | |
(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 Compat.HieAst | |
type Anno (LocatedA (IE (GhcPass p))) | |
Defined in GHC.Hs.ImpExp | |
type Anno (LocatedN Name) | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN RdrName) | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN Id) | |
Defined in GHC.Hs.Binds | |
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.PostProcess | |
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 (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 (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 GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
type Anno [LocatedA (ConDeclField (GhcPass _1))] | |
Defined in GHC.Hs.Decls | |
type Anno [LocatedA (HsType (GhcPass p))] | |
Defined in GHC.Hs.Type | |
type Anno [LocatedN Name] | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN RdrName] | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN Id] | |
Defined in GHC.Hs.Binds | |
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.PostProcess | |
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.PostProcess | |
type Anno (HsRecField' (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
Defined in GHC.Hs.Pat | |
type Anno (HsRecField' (AmbiguousFieldOcc p) (LocatedA (HsExpr p))) | |
Defined in GHC.Hs.Pat | |
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.PostProcess | |
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) | |
Defined in GHC.Hs.Expr |
type SrcAnn ann = SrcSpanAnn' (EpAnn ann) #
We mostly use 'SrcSpanAnn'' with an 'EpAnn''
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 #
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" SrcSpan
s 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 SrcLoc
srcLocLine :: RealSrcLoc -> Int #
Raises an error when used on a "bad" SrcLoc
mapLoc :: (a -> b) -> GenLocated l a -> GenLocated l b Source #
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 Source #
addBootSuffixLocnOut :: ModLocation -> ModLocation #
Add the -boot
suffix to all output file paths associated with the
module, not including the input file itself
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 UnusableUnitReason | Module is unavailable because the package is unusable. |
ModOrigin | Module is public, and could have come from some places. |
Fields
|
Instances
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 # | |
Outputable ModuleOrigin | |
Defined in GHC.Unit.State Methods ppr :: ModuleOrigin -> SDoc # |
newtype PackageName #
Constructors
PackageName | |
Fields |
Instances
Show PackageName Source # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> PackageName -> ShowS # show :: PackageName -> String # showList :: [PackageName] -> ShowS # | |
Uniquable PackageName | |
Defined in GHC.Unit.Info Methods getUnique :: PackageName -> Unique # | |
Outputable PackageName | |
Defined in GHC.Unit.Info Methods ppr :: PackageName -> SDoc # | |
Eq PackageName | |
Defined in GHC.Unit.Info |
Linker
Objects which have yet to be linked by the compiler
Constructors
DotO FilePath | An object file (.o) |
DotA FilePath | Static archive file (.a) |
DotDLL FilePath | Dynamically linked library file (.so, .dll, .dylib) |
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 [Grant plan for static forms] in GHC.Iface.Tidy.StaticPtrTable. |
Instances
NFData Unlinked Source # | |
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
Show Linkable Source # | |
NFData Linkable Source # | |
Defined in Development.IDE.GHC.Orphans | |
Outputable Linkable | |
Defined in GHC.Linker.Types |
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).
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. |
mkModuleGraph :: [ExtendedModSummary] -> ModuleGraph #
GHCi
initObjLinker :: HscEnv -> IO () Source #
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
Show InteractiveImport Source # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> InteractiveImport -> ShowS # show :: InteractiveImport -> String # showList :: [InteractiveImport] -> ShowS # | |
Outputable InteractiveImport | |
Defined in GHC.Runtime.Context Methods ppr :: InteractiveImport -> SDoc # |
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
constructs the ic_rn_glb_env 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) #
A command-line warning message and the reason it arose
Constructors
Warn | |
Fields
|
ModLocation
data ModLocation #
Module Location
Where a module lives on the file system: the actual locations of the .hs, .hi and .o 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.
Instances
Show ModLocation | |
Defined in GHC.Unit.Module.Location Methods showsPrec :: Int -> ModLocation -> ShowS # show :: ModLocation -> String # showList :: [ModLocation] -> ShowS # | |
Outputable ModLocation | |
Defined in GHC.Unit.Module.Location Methods ppr :: ModLocation -> SDoc # |
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
Constructors
Nominal | |
Representational | |
Phantom |
Instances
Data Role | |
Defined in GHC.Core.Coercion.Axiom 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 # | |
Binary Role | |
Outputable Role | |
Defined in GHC.Core.Coercion.Axiom | |
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 # | |
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
Show CoreModule Source # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> CoreModule -> ShowS # show :: CoreModule -> String # showList :: [CoreModule] -> ShowS # | |
NFData CoreModule Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: CoreModule -> () # | |
Outputable CoreModule | |
Defined in GHC Methods ppr :: CoreModule -> SDoc # |
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
Show SafeHaskellMode | |
Defined in GHC.Types.SafeHaskell Methods showsPrec :: Int -> SafeHaskellMode -> ShowS # show :: SafeHaskellMode -> String # showList :: [SafeHaskellMode] -> ShowS # | |
NFData SafeHaskellMode Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: SafeHaskellMode -> () # | |
Outputable SafeHaskellMode | |
Defined in GHC.Types.SafeHaskell Methods ppr :: SafeHaskellMode -> SDoc # | |
Eq SafeHaskellMode | |
Defined in GHC.Types.SafeHaskell Methods (==) :: SafeHaskellMode -> SafeHaskellMode -> Bool # (/=) :: SafeHaskellMode -> SafeHaskellMode -> Bool # |
pattern GRE :: Name -> Parent -> Bool -> [ImportSpec] -> GlobalRdrElt Source #
gre_name :: GlobalRdrElt -> Name Source #
gre_imp :: GlobalRdrElt -> [ImportSpec] Source #
gre_lcl :: GlobalRdrElt -> Bool Source #
gre_par :: GlobalRdrElt -> Parent Source #
collectHsBindsBinders :: CollectPass p => Bag (XRec p (HsBindLR p idR)) -> [IdP p] Source #
Util Module re-exports
wordTyConKey :: Unique #
word8TyConName :: Name #
word8TyConKey :: Unique #
word64TyConName :: Name #
word32TyConName :: Name #
word16TyConName :: Name #
wildCardName :: Name #
wildCardKey :: Unique #
voidPrimIdKey :: Unique #
voidArgIdKey :: Unique #
vecElemDataConKeys :: [Unique] #
vecCountDataConKeys :: [Unique] #
varQual_RDR :: Module -> FastString -> RdrName #
v1TyConName :: Name #
v1TyConKey :: Unique #
unboundKey :: Unique #
unRec1_RDR :: RdrName #
unPar1_RDR :: RdrName #
unComp1_RDR :: RdrName #
uWordTyConName :: Name #
uWordTyConKey :: Unique #
uRecTyConName :: Name #
uRecTyConKey :: Unique #
uNSAFE_COERCE :: Module #
uIntTyConName :: Name #
uIntTyConKey :: Unique #
uIntHash_RDR :: RdrName #
uFloatTyConName :: Name #
uCharTyConName :: Name #
uCharTyConKey :: Unique #
uAddrTyConName :: Name #
uAddrTyConKey :: Unique #
u1TyConName :: Name #
u1TyConKey :: Unique #
typeRepIdName :: Name #
typeRepIdKey :: Unique #
typeConKey :: Unique #
traverse_RDR :: RdrName #
trNameTyConName :: Name #
toRationalName :: Name #
toList_RDR :: RdrName #
toListName :: Name #
toIntegerName :: Name #
toEnum_RDR :: RdrName #
toDynIdKey :: Unique #
thenIOName :: Name #
thenIOIdKey :: Unique #
tcQual_RDR :: Module -> FastString -> RdrName #
tYPETyConKey :: Unique #
symbol_RDR :: RdrName #
sumTyConName :: Name #
sumTyConKey :: Unique #
starKindRepName :: Name #
standardClassKeys :: [Unique] #
specTyConName :: Name #
specTyConKey :: Unique #
showClassName :: Name #
showClassKey :: Unique #
setFieldName :: Name #
selName_RDR :: RdrName #
sappendName :: Name #
sTyConName :: Name #
s1TyConName :: Name #
s1TyConKey :: Unique #
runMainKey :: Unique #
runMainIOName :: Name #
rootMainKey :: Unique #
returnM_RDR :: RdrName #
returnMName :: Name #
returnIO_RDR :: RdrName #
returnIOName :: Name #
returnIOIdKey :: Unique #
replace_RDR :: RdrName #
repTyConName :: Name #
repTyConKey :: Unique #
rep1TyConName :: Name #
rep1TyConKey :: Unique #
rec1TyConName :: Name #
rec1TyConKey :: Unique #
rec0TyConName :: Name #
rec0TyConKey :: Unique #
realToFracName :: Name #
realClassName :: Name #
realClassKey :: Unique #
readPrec_RDR :: RdrName #
readList_RDR :: RdrName #
readClassName :: Name #
readClassKey :: Unique #
ratioTyConName :: Name #
ratioTyConKey :: Unique #
randomClassName :: Name #
rTyConName :: Name #
ptrTyConName :: Name #
ptrTyConKey :: Unique #
proxyHashKey :: Unique #
prodTyConName :: Name #
prodTyConKey :: Unique #
printIdKey :: Unique #
pretendNameIsInScope :: Name -> Bool #
pluginTyConName :: Name #
patErrorIdKey :: Unique #
parens_RDR :: RdrName #
par1TyConName :: Name #
par1TyConKey :: Unique #
otherwiseIdName :: Name #
ordClass_RDR :: RdrName #
ordClassName :: Name #
ordClassKey :: Unique #
opaqueTyConName :: Name #
oneShotKey :: Unique #
oneDataConKey :: Unique #
numericClassKeys :: [Unique] #
numClass_RDR :: RdrName #
numClassName :: Name #
numClassKey :: Unique #
nullAddrIdKey :: Unique #
noinlineIdKey :: Unique #
noSelTyConName :: Name #
noSelTyConKey :: Unique #
nilDataConKey :: Unique #
negateName :: Name #
naturalXorName :: Name #
naturalSubName :: Name #
naturalRemName :: Name #
naturalQuotName :: Name #
naturalOrName :: Name #
naturalNeName :: Name #
naturalMulName :: Name #
naturalLtName :: Name #
naturalLog2Name :: Name #
naturalLeName :: Name #
naturalLcmName :: Name #
naturalGtName :: Name #
naturalGeName :: Name #
naturalGcdName :: Name #
naturalEqName :: Name #
naturalBitName :: Name #
naturalAndName :: Name #
naturalAddName :: Name #
monoidClassName :: Name #
monadClassName :: Name #
monadClassKey :: Unique #
modIntName :: Name #
modIntIdKey :: Unique #
mk_known_key_name :: NameSpace -> Module -> FastString -> Unique -> Name #
mkUnboundName :: OccName -> Name #
mkTyConKey :: Unique #
mkTrTypeName :: Name #
mkTrTypeKey :: Unique #
mkTrFunName :: Name #
mkTrFunKey :: Unique #
mkTrConName :: Name #
mkTrConKey :: Unique #
mkTrAppName :: Name #
mkTrAppKey :: Unique #
mkThisGhcModule_ :: ModuleName -> Module #
mkThisGhcModule :: FastString -> Module #
mkPrimModule :: FastString -> Module #
mkMainModule_ :: ModuleName -> Module #
mkMainModule :: FastString -> Module #
mkInteractiveModule :: Int -> Module #
mkBignumModule :: FastString -> Module #
mkBaseModule_ :: ModuleName -> Module #
mkBaseModule :: FastString -> Module #
minBound_RDR :: RdrName #
mempty_RDR :: RdrName #
memptyName :: Name #
mconcatName :: Name #
maybeTyConKey :: Unique #
maxBound_RDR :: RdrName #
mappend_RDR :: RdrName #
mappendName :: Name #
makeStaticName :: Name #
makeStaticKey :: Unique #
magicDictKey :: Unique #
mONAD_FAIL :: Module #
mAIN_NAME :: ModuleName #
m1TyConName :: Name #
m1TyConKey :: Unique #
loopAIdKey :: Unique #
listTyConKey :: Unique #
liftMIdKey :: Unique #
liftA2_RDR :: RdrName #
leftDataConName :: Name #
kindConKey :: Unique #
k1TyConName :: Name #
k1TyConKey :: Unique #
joinMIdKey :: Unique #
ixClassName :: Name #
ixClassKey :: Unique #
isUnboundName :: Name -> Bool #
isListClassName :: Name #
ipClassName :: Name #
ipClassKey :: Unique #
ioTyConName :: Name #
ioTyConKey :: Unique #
ioDataConName :: Name #
ioDataConKey :: Unique #
interactiveClassNames :: [Name] #
interactiveClassKeys :: [Unique] #
integerXorName :: Name #
integerSubName :: Name #
integerRemName :: Name #
integerQuotName :: Name #
integerOrName :: Name #
integerNeName :: Name #
integerMulName :: Name #
integerModName :: Name #
integerLtName :: Name #
integerLeName :: Name #
integerLcmName :: Name #
integerGtName :: Name #
integerGeName :: Name #
integerGcdName :: Name #
integerEqName :: Name #
integerDivName :: Name #
integerBitName :: Name #
integerAndName :: Name #
integerAddName :: Name #
integerAbsName :: Name #
intTyConKey :: Unique #
intDataConKey :: Unique #
int8TyConName :: Name #
int8TyConKey :: Unique #
int64TyConName :: Name #
int64TyConKey :: Unique #
int32TyConName :: Name #
int32TyConKey :: Unique #
int16TyConName :: Name #
int16TyConKey :: Unique #
inrDataConKey :: Unique #
inlineIdName :: Name #
inlineIdKey :: Unique #
inlDataConKey :: Unique #
inRange_RDR :: RdrName #
heqTyConKey :: Unique #
heqSCSelIdKey :: Unique #
heqDataConKey :: Unique #
guardMName :: Name #
guardMIdKey :: Unique #
groupWithName :: Name #
ghciStepIoMName :: Name #
ghciIoClassName :: Name #
getTag_RDR :: RdrName #
getFieldName :: Name #
genericTyConNames :: [Name] #
genericClassNames :: [Name] #
genClassName :: Name #
genClassKey :: Unique #
gen1ClassName :: Name #
gen1ClassKey :: Unique #
geClassOpKey :: Unique #
gHC_TYPENATS :: Module #
gHC_TYPELITS :: Module #
gHC_STATICPTR :: Module #
gHC_STABLE :: Module #
gHC_SRCLOC :: Module #
gHC_RECORDS :: Module #
gHC_GENERICS :: Module #
gHC_DESUGAR :: Module #
gHC_CSTRING :: Module #
gHC_CLASSES :: Module #
funTyConKey :: Unique #
funPtrTyConName :: Name #
fromStringName :: Name #
fromList_RDR :: RdrName #
fromListName :: Name #
fromListNName :: Name #
fromIntegerName :: Name #
fromEnum_RDR :: RdrName #
fractionalClassKeys :: [Unique] #
foldrIdKey :: Unique #
foldMap_RDR :: RdrName #
floatTyConKey :: Unique #
firstAName :: Name #
firstAIdKey :: Unique #
filterName :: Name #
filterIdKey :: Unique #
failIOName :: Name #
failIOIdKey :: Unique #
expectP_RDR :: RdrName #
errorIdKey :: Unique #
eqTyConKey :: Unique #
eqString_RDR :: RdrName #
eqStringName :: Name #
eqStringIdKey :: Unique #
eqSCSelIdKey :: Unique #
eqDataConKey :: Unique #
eqClass_RDR :: RdrName #
eqClassOpKey :: Unique #
eqClassName :: Name #
eqClassKey :: Unique #
enumFrom_RDR :: RdrName #
enumFromToName :: Name #
enumFromName :: Name #
enumClassName :: Name #
enumClassKey :: Unique #
eitherTyConName :: Name #
dollarName :: Name #
dollarIdKey :: Unique #
divIntName :: Name #
divIntIdKey :: Unique #
derivableClassKeys :: [Unique] #
dataQual_RDR :: Module -> FastString -> RdrName #
dataClassName :: Name #
dataClassKey :: Unique #
dTyConName :: Name #
dEBUG_TRACE :: Module #
dATA_TUPLE :: Module #
dATA_STRING :: Module #
dATA_FOLDABLE :: Module #
dATA_EITHER :: Module #
dATA_COERCE :: Module #
d1TyConName :: Name #
d1TyConKey :: Unique #
concatName :: Name #
concatIdKey :: Unique #
conName_RDR :: RdrName #
compose_RDR :: RdrName #
composeAName :: Name #
composeAIdKey :: Unique #
compare_RDR :: RdrName #
compTyConName :: Name #
compTyConKey :: Unique #
clsQual_RDR :: Module -> FastString -> RdrName #
choose_RDR :: RdrName #
choiceAName :: Name #
choiceAIdKey :: Unique #
charTyConKey :: Unique #
cTyConName :: Name #
c1TyConName :: Name #
c1TyConKey :: Unique #
buildIdKey :: Unique #
breakpointName :: Name #
boxityConKey :: Unique #
boolTyConKey :: Unique #
bnnVarQual :: String -> Unique -> Name #
bniVarQual :: String -> Unique -> Name #
bnbVarQual :: String -> Unique -> Name #
bindIO_RDR :: RdrName #
bindIOName :: Name #
bindIOIdKey :: Unique #
basicKnownKeyNames :: [Name] #
augmentName :: Name #
augmentIdKey :: Unique #
assertName :: Name #
assertIdKey :: Unique #
assertErrorName :: Name #
append_RDR :: RdrName #
appendName :: Name #
appendIdKey :: Unique #
apAClassOpKey :: Unique #
anyTyConKey :: Unique #
anyBoxConKey :: Unique #
allNameStrings :: [String] #
Class of things that we can obtain a Unique
from
Instances
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 StrictnessMark #
Constructors
MarkedStrict | |
NotMarkedStrict |
Instances
Outputable StrictnessMark | |
Defined in GHC.Core.DataCon Methods ppr :: StrictnessMark -> SDoc # |
data SrcUnpackedness #
Source Unpackedness
What unpackedness the user requested
Constructors
SrcUnpack | {-# UNPACK #-} specified |
SrcNoUnpack | {-# NOUNPACK #-} specified |
NoSrcUnpack | no unpack pragma |
Instances
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 GHC.Core.DataCon 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 # | |
Binary SrcStrictness | |
Defined in GHC.Core.DataCon Methods put_ :: BinHandle -> SrcStrictness -> IO () # put :: BinHandle -> SrcStrictness -> IO (Bin SrcStrictness) # get :: BinHandle -> IO SrcStrictness # | |
Outputable SrcStrictness | |
Defined in GHC.Core.DataCon Methods ppr :: SrcStrictness -> SDoc # | |
Eq SrcStrictness | |
Defined in GHC.Core.DataCon Methods (==) :: SrcStrictness -> SrcStrictness -> Bool # (/=) :: SrcStrictness -> SrcStrictness -> Bool # |
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
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 # | |
Outputable HsSrcBang | |
Defined in GHC.Core.DataCon |
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 | Strict but not unpacked field |
HsUnpack (Maybe Coercion) | Strict and unpacked field co :: arg-ty ~ product-ty HsBang |
Instances
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 # | |
Outputable HsImplBang | |
Defined in GHC.Core.DataCon Methods ppr :: HsImplBang -> SDoc # |
substEqSpec :: TCvSubst -> EqSpec -> EqSpec #
Substitute in an EqSpec
. Precondition: if the LHS of the EqSpec
is mapped in the substitution, it is mapped to a type variable, not
a full type.
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
.
specialPromotedDc :: DataCon -> Bool #
Should this DataCon be allowed in a type even without -XDataKinds? Currently, only Lifted & Unlifted
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. |
-> [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 |
-> RuntimeRepInfo | 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
isVanillaDataCon :: DataCon -> Bool #
Vanilla DataCon
s are those that are nice boring Haskell 98 constructors
isUnboxedTupleDataCon :: DataCon -> Bool #
isTupleDataCon :: DataCon -> Bool #
isSrcUnpacked :: SrcUnpackedness -> Bool #
isSrcStrict :: SrcStrictness -> Bool #
isNullarySrcDataCon :: DataCon -> Bool #
Return whether there are any argument types for this DataCon
s original source type
See Note [DataCon arities]
isNullaryRepDataCon :: DataCon -> Bool #
Return whether there are any argument types for this DataCon
s runtime representation type
See Note [DataCon arities]
isNewDataCon :: DataCon -> Bool #
Is this the DataCon
of a newtype?
isMarkedStrict :: StrictnessMark -> Bool #
isBoxedTupleDataCon :: DataCon -> Bool #
isBanged :: HsImplBang -> Bool #
eqSpecType :: EqSpec -> Type #
eqSpecTyVar :: EqSpec -> TyVar #
eqSpecPreds :: [EqSpec] -> ThetaType #
eqSpecPair :: EqSpec -> (TyVar, Type) #
eqHsBang :: HsImplBang -> HsImplBang -> Bool #
Compare strictness annotations
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.
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)
dataConUserTyVarsArePermuted :: DataCon -> Bool #
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 dataConUserTyVarsArePermuted
is only called at most once
during a data constructor's lifetime.
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
dataConTheta :: DataCon -> ThetaType #
The *full* constraints on the constructor type, including dependent GADT equalities.
dataConTagZ :: DataCon -> ConTagZ #
dataConTag :: DataCon -> ConTag #
The tag used for ordering DataCon
s
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
dataConRepType :: DataCon -> Type #
The representation type of the data constructor, i.e. the sort type that will represent values of this type at runtime
dataConRepStrictness :: DataCon -> [StrictnessMark] #
Give the demands on the arguments of a Core constructor application (Con dc args)
dataConRepArity :: DataCon -> Arity #
Gives the number of actual fields in the representation of the data constructor. This may be more than appear in the source code; the extra ones are the existentially quantified dictionaries
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
dataConOtherTheta :: DataCon -> ThetaType #
Returns constraints in the wrapper type, other than those in the dataConEqSpec
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.
dataConOrigResTy :: DataCon -> Type #
dataConOrigArgTys :: DataCon -> [Scaled Type] #
Returns the argument types of the wrapper, excluding all dictionary arguments and without substituting for any type variables
dataConNonlinearType :: DataCon -> Type #
dataConIsInfix :: DataCon -> Bool #
Should the DataCon
be presented infix?
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)
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
dataConImplicitTyThings :: DataCon -> [TyThing] #
Find all the Id
s implicitly brought into scope by the data constructor. Currently,
the union of the dataConWorkId
and the dataConWrapId
dataConImplBangs :: DataCon -> [HsImplBang] #
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
dataConFieldType_maybe :: DataCon -> FieldLabelString -> Maybe (FieldLabel, Type) #
dataConFieldType :: DataCon -> FieldLabelString -> Type #
Extract the type for any given labelled field of the DataCon
dataConEqSpec :: DataCon -> [EqSpec] #
Equalities derived from the result type of the data constructor, as written by the programmer in any GADT declaration. This includes *all* GADT-like equalities, including those written in by hand by the programmer.
dataConDisplayType :: Bool -> DataCon -> Type #
dataConCannotMatch :: [Type] -> DataCon -> Bool #
dataConBoxer :: DataCon -> Maybe DataConBoxer #
classDataCon :: Class -> DataCon #
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
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 # | |
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 # bndrIsJoin_maybe :: DataCon -> Maybe Int # | |
Eq DataCon | |
promoteDataCon :: DataCon -> TyCon #
isUnboxedSumDataCon :: DataCon -> Bool #
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
)
dataConWorkId :: DataCon -> Id #
dataConUserTyVars :: DataCon -> [TyVar] #
The type variables of the constructor, in the order the user wrote them
dataConUserTyVarBinders :: DataCon -> [InvisTVBinder] #
InvisTVBinder
s for 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
dataConStupidTheta :: DataCon -> ThetaType #
The "stupid theta" of the DataCon
, such as data Eq a
in:
data Eq a => T a = ...
dataConSourceArity :: DataCon -> Arity #
Source-level arity of the data constructor
dataConInstOrigArgTys :: DataCon -> [Type] -> [Scaled Type] #
Returns just the instantiated value argument types of a DataCon
,
(excluding dictionary args)
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
dataConFieldLabels :: DataCon -> [FieldLabel] #
The labels for the fields of this particular DataCon
A *one-index* constructor tag
Type of the tags associated with each constructor possibility or superclass selector
type FieldLabelString = FastString #
Field labels are just represented as strings; they are not necessarily unique (even within a module)
data FieldLabel #
Fields in an algebraic record type; see Note [FieldLabel].
Constructors
FieldLabel | |
Fields
|
Instances
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 # | |
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 # | |
Eq FieldLabel | |
Defined in GHC.Types.FieldLabel | |
ToHie (IEContext (Located FieldLabel)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (Located FieldLabel) -> HieM [HieAST Type] |
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 overlpapped (in which case it is OK if they don't unify). Constructor stores axioms after unification. |
data FamInstMatch #
Constructors
FamInstMatch | |
Instances
Outputable FamInstMatch | |
Defined in GHC.Core.FamInstEnv Methods ppr :: FamInstMatch -> SDoc # |
type FamInstEnvs = (FamInstEnv, FamInstEnv) #
type FamInstEnv = UniqDFM TyCon FamilyInstEnv #
Constructors
FamInst | |
Instances
NamedThing FamInst | |
Defined in GHC.Core.FamInstEnv | |
Outputable FamInst | |
Defined in GHC.Core.FamInstEnv |
Constructors
SynFamilyInst | |
DataFamilyInst TyCon |
topReduceTyFamApp_maybe :: FamInstEnvs -> TyCon -> [Type] -> Maybe (Coercion, Type, MCoercion) #
Try to simplify a type-family application, by *one* step If topReduceTyFamApp_maybe env r F tys = Just (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
topNormaliseType_maybe :: FamInstEnvs -> Type -> Maybe (Coercion, Type) #
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.
topNormaliseType :: FamInstEnvs -> Type -> Type #
reduceTyFamApp_maybe :: FamInstEnvs -> Role -> TyCon -> [Type] -> Maybe (Coercion, Type) #
pprFamInsts :: [FamInst] -> SDoc #
normaliseType :: FamInstEnvs -> Role -> Type -> (Coercion, Type) #
normaliseTcApp :: FamInstEnvs -> Role -> TyCon -> [Type] -> (Coercion, Type) #
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 #
mkImportedFamInst :: Name -> [RoughMatchTc] -> CoAxiom Unbranched -> FamInst #
mkCoAxBranch :: [TyVar] -> [TyVar] -> [CoVar] -> [Type] -> Type -> [Role] -> SrcSpan -> CoAxBranch #
mkBranchedCoAxiom :: Name -> TyCon -> [CoAxBranch] -> CoAxiom Branched #
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).
lookupFamInstEnvConflicts :: FamInstEnvs -> FamInst -> [FamInstMatch] #
lookupFamInstEnvByTyCon :: FamInstEnvs -> TyCon -> [FamInst] #
lookupFamInstEnv :: FamInstEnvs -> TyCon -> [Type] -> [FamInstMatch] #
isDominatedBy :: CoAxBranch -> [CoAxBranch] -> Bool #
injectiveBranches :: [Bool] -> CoAxBranch -> CoAxBranch -> InjectivityCheckResult #
Check whether two type family axioms don't violate injectivity annotation.
familyInstances :: (FamInstEnv, FamInstEnv) -> TyCon -> [FamInst] #
famInstsRepTyCons :: [FamInst] -> [TyCon] #
famInstTyCon :: FamInst -> TyCon #
famInstRepTyCon_maybe :: FamInst -> Maybe TyCon #
famInstRHS :: FamInst -> Type #
famInstEnvSize :: FamInstEnv -> Int #
famInstEnvElts :: FamInstEnv -> [FamInst] #
famInstAxiom :: FamInst -> CoAxiom Unbranched #
extendFamInstEnvList :: FamInstEnv -> [FamInst] -> FamInstEnv #
extendFamInstEnv :: FamInstEnv -> FamInst -> FamInstEnv #
dataFamInstRepTyCon :: FamInst -> TyCon #
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.
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
data XViaStrategyPs #
Constructors
XViaStrategyPs (EpAnn [AddEpAnn]) (LHsSigType GhcPs) |
Instances
Outputable XViaStrategyPs | |
Defined in GHC.Hs.Decls Methods ppr :: XViaStrategyPs -> SDoc # |
Constructors
HsRuleAnn | |
Fields
|
Instances
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 | |
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) #
standaloneKindSigName :: forall (p :: Pass). StandaloneKindSig (GhcPass p) -> IdP (GhcPass p) #
roleAnnotDeclName :: forall (p :: Pass). RoleAnnotDecl (GhcPass p) -> IdP (GhcPass p) #
resultVariableName :: forall (a :: Pass). FamilyResultSig (GhcPass a) -> Maybe (IdP (GhcPass a)) #
Maybe return name of the result type variable
pprTyFamInstDecl :: forall (p :: Pass). OutputableBndrId p => TopLevelFlag -> TyFamInstDecl (GhcPass p) -> SDoc #
pprHsFamInstLHS :: forall (p :: Pass). OutputableBndrId p => IdP (GhcPass p) -> HsOuterFamEqnTyVarBndrs (GhcPass p) -> HsTyPats (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc #
pprDataFamInstFlavour :: forall (p :: Pass). DataFamInstDecl (GhcPass p) -> SDoc #
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
.
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.
instDeclDataFamInsts :: forall (p :: Pass). [LInstDecl (GhcPass p)] -> [DataFamInstDecl (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]
hsDeclHasCusk :: TyClDecl GhcRn -> Bool #
Does this declaration have a complete, user-supplied kind signature? See Note [CUSKs: complete user-supplied kind signatures]
hsConDeclTheta :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> [LHsType (GhcPass p)] #
getRecConArgs_maybe :: ConDecl GhcRn -> Maybe (LocatedL [LConDeclField GhcRn]) #
foldDerivStrategy :: forall p (pass :: Pass) r. p ~ GhcPass pass => r -> (XViaStrategy p -> r) -> DerivStrategy p -> r #
Eliminate a DerivStrategy
.
flattenRuleDecls :: forall (p :: Pass). [LRuleDecls (GhcPass p)] -> [LRuleDecl (GhcPass p)] #
familyDeclName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> IdP (GhcPass p) #
familyDeclLName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> XRec (GhcPass p) (IdP (GhcPass p)) #
famResultKindSignature :: forall (p :: Pass). FamilyResultSig (GhcPass p) -> Maybe (LHsKind (GhcPass p)) #
emptyRnGroup :: forall (p :: Pass). HsGroup (GhcPass p) #
emptyRdrGroup :: forall (p :: Pass). HsGroup (GhcPass p) #
appendGroups :: forall (p :: Pass). HsGroup (GhcPass p) -> HsGroup (GhcPass p) -> HsGroup (GhcPass p) #
Warning pragma Declarations
Constructors
Warnings | |
Fields
| |
XWarnDecls !(XXWarnDecls pass) |
Warning pragma Declaration
Constructors
Warning (XWarning pass) [LIdP pass] WarningTxt | |
XWarnDecl !(XXWarnDecl pass) |
type TyFamInstEqn pass = FamEqn pass (LHsType pass) #
Type Family Instance Equation
data TyFamInstDecl pass #
Type Family Instance Declaration
Constructors
TyFamInstDecl | |
Fields
| |
XTyFamInstDecl !(XXTyFamInstDecl pass) |
Instances
ToHie (LocatedA (TyFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (TyFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
type TyFamDefltDecl = TyFamInstDecl #
Type family default declarations.
A convenient synonym for TyFamInstDecl
.
See Note [Type family instance declarations in HsSyn]
.
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 StandaloneKindSig pass #
Constructors
StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass) | |
XStandaloneKindSig !(XXStandaloneKindSig pass) |
Instances
ToHie (LocatedA (StandaloneKindSig GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (StandaloneKindSig GhcRn) | |
Defined in Compat.HieAst Methods toHie :: StandaloneKindSig GhcRn -> HieM [HieAST Type] | |
type Anno (StandaloneKindSig (GhcPass p)) | |
Defined in GHC.Hs.Decls |
data SpliceDecl p #
Splice Declaration
Constructors
SpliceDecl (XSpliceDecl p) (XRec p (HsSplice p)) SpliceExplicitFlag | |
XSpliceDecl !(XXSpliceDecl p) |
Instances
ToHie (LocatedA (SpliceDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (SpliceDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
Rule Declarations
Constructors
HsRules | |
Fields
| |
XRuleDecls !(XXRuleDecls pass) |
Rule Declaration
Constructors
HsRule | |
Fields
| |
XRuleDecl !(XXRuleDecl pass) |
Rule Binder
Constructors
RuleBndr (XCRuleBndr pass) (LIdP pass) | |
RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass) | |
XRuleBndr !(XXRuleBndr 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 Compat.HieAst | |
type Anno (RoleAnnotDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
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 # | |
Outputable NewOrData | |
Defined in Language.Haskell.Syntax.Decls | |
Eq NewOrData | |
type LWarnDecls pass = XRec pass (WarnDecls pass) #
Located Warning Declarations
type LTyFamInstEqn pass #
Arguments
= XRec pass (TyFamInstEqn pass) | May have |
Located Type Family Instance Equation
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 LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass) #
Located Standalone Kind Signature
type LSpliceDecl pass = XRec pass (SpliceDecl pass) #
Located Splice Declaration
type LRuleDecls pass = XRec pass (RuleDecls pass) #
Located Rule Declarations
type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass) #
Located Role Annotation Declaration
type LInjectivityAnn pass = XRec pass (InjectivityAnn pass) #
Located Injectivity Annotation
type LHsDerivingClause pass = XRec pass (HsDerivingClause pass) #
type LForeignDecl pass = XRec pass (ForeignDecl pass) #
Located Foreign Declaration
type LFamilyResultSig pass = XRec pass (FamilyResultSig pass) #
Located type Family Result Signature
type LFamilyDecl pass = XRec pass (FamilyDecl pass) #
Located type Family Declaration
type LDerivStrategy pass = XRec pass (DerivStrategy pass) #
type LDerivDecl pass = XRec pass (DerivDecl pass) #
Located stand-alone 'deriving instance' declaration
type LDerivClauseTys pass = XRec pass (DerivClauseTys pass) #
type LDefaultDecl pass = XRec pass (DefaultDecl pass) #
Located Default Declaration
type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass) #
Located Data Family Instance Declaration
Arguments
= XRec pass (ConDecl pass) | May have |
Located data Constructor Declaration
type LClsInstDecl pass = XRec pass (ClsInstDecl pass) #
Located Class Instance Declaration
Instance Declaration
Constructors
ClsInstD | |
Fields
| |
DataFamInstD | |
Fields
| |
TyFamInstD | |
Fields
| |
XInstDecl !(XXInstDecl pass) |
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 (Located (InjectivityAnn GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (InjectivityAnn (GhcPass p)) | |
Defined in GHC.Hs.Decls |
type HsTyPats pass = [LHsTypeArg pass] #
Haskell Type Patterns
Instances
Data HsRuleRn | |
Defined in Language.Haskell.Syntax.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 # |
Constructors
HsGroup | |
Fields
| |
XHsGroup !(XXHsGroup p) |
data HsDerivingClause pass #
A single deriving
clause of a data declaration.
Constructors
HsDerivingClause | |
Fields
| |
XHsDerivingClause !(XXHsDerivingClause pass) |
Instances
ToHie (Located (HsDerivingClause GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (Located [Located (HsDerivingClause GhcRn)]) | |
Defined in Compat.HieAst | |
type Anno (HsDerivingClause (GhcPass p)) | |
Defined in GHC.Hs.Decls |
type HsDeriving pass #
Arguments
= [LHsDerivingClause pass] | The optional The list of |
Haskell Deriving clause
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 | Documentation comment declaration |
RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p) | Role annotation declaration |
XHsDecl !(XXHsDecl p) |
Instances
type Anno (HsDecl (GhcPass _1)) | |
Defined in GHC.Hs.Decls |
data HsDataDefn pass #
Haskell Data type Definition
Constructors
HsDataDefn | Declares a data type or newtype, giving its constructors
|
Fields
| |
XHsDataDefn !(XXHsDataDefn pass) |
Instances
HasLoc (HsDataDefn GhcRn) | |
Defined in Compat.HieAst Methods loc :: HsDataDefn GhcRn -> SrcSpan | |
ToHie (HsDataDefn GhcRn) | |
Defined in Compat.HieAst Methods toHie :: HsDataDefn GhcRn -> HieM [HieAST Type] | |
ToHie (TScoped (FamEqn GhcRn (HsDataDefn GhcRn))) | |
Defined in Compat.HieAst |
type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass]) #
The arguments in a Haskell98-style data constructor.
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 [HsScaled pass (LBangType pass)] | |
RecConGADT (XRec pass [LConDeclField pass]) |
Instances
ToHie (HsConDeclGADTDetails GhcRn) | |
Defined in Compat.HieAst Methods toHie :: HsConDeclGADTDetails GhcRn -> HieM [HieAST Type] |
data ForeignImport #
Constructors
CImport (Located CCallConv) (Located Safety) (Maybe Header) CImportSpec (Located SourceText) |
Instances
Data ForeignImport | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ForeignImport -> c ForeignImport # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ForeignImport # toConstr :: ForeignImport -> Constr # dataTypeOf :: ForeignImport -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ForeignImport) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ForeignImport) # gmapT :: (forall b. Data b => b -> b) -> ForeignImport -> ForeignImport # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ForeignImport -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ForeignImport -> r # gmapQ :: (forall d. Data d => d -> u) -> ForeignImport -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ForeignImport -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ForeignImport -> m ForeignImport # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignImport -> m ForeignImport # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignImport -> m ForeignImport # | |
Outputable ForeignImport | |
Defined in Language.Haskell.Syntax.Decls Methods ppr :: ForeignImport -> SDoc # | |
ToHie ForeignImport | |
Defined in Compat.HieAst Methods toHie :: ForeignImport -> HieM [HieAST Type] |
data ForeignExport #
Constructors
CExport (Located CExportSpec) (Located SourceText) |
Instances
Data ForeignExport | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ForeignExport -> c ForeignExport # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ForeignExport # toConstr :: ForeignExport -> Constr # dataTypeOf :: ForeignExport -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ForeignExport) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ForeignExport) # gmapT :: (forall b. Data b => b -> b) -> ForeignExport -> ForeignExport # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ForeignExport -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ForeignExport -> r # gmapQ :: (forall d. Data d => d -> u) -> ForeignExport -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ForeignExport -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ForeignExport -> m ForeignExport # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignExport -> m ForeignExport # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignExport -> m ForeignExport # | |
Outputable ForeignExport | |
Defined in Language.Haskell.Syntax.Decls Methods ppr :: ForeignExport -> SDoc # | |
ToHie ForeignExport | |
Defined in Compat.HieAst Methods toHie :: ForeignExport -> HieM [HieAST Type] |
data ForeignDecl pass #
Foreign Declaration
Constructors
ForeignImport | |
Fields
| |
ForeignExport | |
Fields
| |
XForeignDecl !(XXForeignDecl pass) |
Instances
ToHie (LocatedA (ForeignDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (ForeignDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
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 (Located (FamilyResultSig GhcRn))) | |
Defined in Compat.HieAst | |
type Anno (FamilyResultSig (GhcPass p)) | |
Defined in GHC.Hs.Decls |
data FamilyInfo pass #
Constructors
DataFamily | |
OpenTypeFamily | |
ClosedTypeFamily (Maybe [LTyFamInstEqn pass]) |
|
Instances
Outputable (FamilyInfo pass) | |
Defined in Language.Haskell.Syntax.Decls Methods ppr :: FamilyInfo pass -> SDoc # | |
ToHie (FamilyInfo GhcRn) | |
Defined in Compat.HieAst Methods toHie :: FamilyInfo GhcRn -> HieM [HieAST Type] |
data FamilyDecl pass #
type Family Declaration
Constructors
FamilyDecl | |
Fields
| |
XFamilyDecl !(XXFamilyDecl pass) |
Instances
ToHie (LocatedA (FamilyDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (FamilyDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
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 Compat.HieAst | |
(HasLoc a, HiePass p) => HasLoc (FamEqn (GhcPass p) a) | |
Defined in Compat.HieAst | |
(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 |
Documentation comment Declaration
Constructors
DocCommentNext HsDocString | |
DocCommentPrev HsDocString | |
DocCommentNamed String HsDocString | |
DocGroup Int HsDocString |
Instances
Data DocDecl | |
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 -> c DocDecl # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DocDecl # toConstr :: DocDecl -> Constr # dataTypeOf :: DocDecl -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DocDecl) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DocDecl) # gmapT :: (forall b. Data b => b -> b) -> DocDecl -> DocDecl # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl -> r # gmapQ :: (forall d. Data d => d -> u) -> DocDecl -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DocDecl -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DocDecl -> m DocDecl # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl -> m DocDecl # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl -> m DocDecl # | |
Outputable DocDecl | |
Defined in Language.Haskell.Syntax.Decls | |
type Anno DocDecl | |
Defined in GHC.Hs.Decls |
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 (Located (DerivStrategy GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (DerivStrategy (GhcPass p)) | |
Defined in GHC.Hs.Decls |
Stand-alone 'deriving instance' declaration
Constructors
DerivDecl | |
Fields
| |
XDerivDecl !(XXDerivDecl pass) |
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 Compat.HieAst | |
type Anno (DerivClauseTys (GhcPass _1)) | |
Defined in GHC.Hs.Decls |
data DefaultDecl pass #
Default Declaration
Constructors
DefaultDecl (XCDefaultDecl pass) [LHsType pass] | |
XDefaultDecl !(XXDefaultDecl pass) |
Instances
ToHie (LocatedA (DefaultDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (DefaultDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
newtype DataFamInstDecl pass #
Data Family Instance Declaration
Constructors
DataFamInstDecl | |
Fields
|
Instances
ToHie (LocatedA (DataFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (DataFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
data DataDeclRn #
Constructors
DataDeclRn | |
Fields
|
Instances
Data DataDeclRn | |
Defined in Language.Haskell.Syntax.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 # |
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 = IntMkT
Int | MkT2 data T a where IntMkT
Int :: T Int
AnnKeywordId
s :AnnOpen
,AnnDotdot
,AnnCLose
,AnnEqual
,AnnVbar
,AnnDarrow
,AnnDarrow
,AnnForall
,AnnDot
data Constructor Declaration
Constructors
ConDeclGADT | |
Fields
| |
ConDeclH98 | |
Fields
| |
XConDecl !(XXConDecl pass) |
data ClsInstDecl pass #
Class Instance Declaration
Constructors
ClsInstDecl | |
Fields
| |
XClsInstDecl !(XXClsInstDecl pass) |
Instances
ToHie (LocatedA (ClsInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (ClsInstDecl (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 # |
data AnnProvenance pass #
Annotation Provenance
Constructors
ValueAnnProvenance (LIdP pass) | |
TypeAnnProvenance (LIdP pass) | |
ModuleAnnProvenance |
Instances
ToHie (AnnProvenance GhcRn) | |
Defined in Compat.HieAst Methods toHie :: AnnProvenance GhcRn -> HieM [HieAST Type] |
Annotation Declaration
Constructors
HsAnnotation (XHsAnnotation pass) SourceText (AnnProvenance pass) (XRec pass (HsExpr pass)) | |
XAnnDecl !(XXAnnDecl pass) |
tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass] #
tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass] #
tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass] #
tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass] #
tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass #
pprFullRuleName :: Located (SourceText, RuleName) -> SDoc #
newOrDataToFlavour :: NewOrData -> TyConFlavour #
Convert a NewOrData
to a TyConFlavour
isTypeFamilyDecl :: TyClDecl pass -> Bool #
type family declaration
isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool #
open type family info
isFamilyDecl :: TyClDecl pass -> Bool #
type/data family declaration
isDataFamilyDecl :: TyClDecl pass -> Bool #
data family declaration
isDataDecl :: TyClDecl pass -> Bool #
True
= argument is a data
/newtype
declaration.
isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool #
closed type family info
isClassDecl :: TyClDecl pass -> Bool #
type class
hsGroupInstDecls :: HsGroup id -> [LInstDecl id] #
docDeclDoc :: DocDecl -> HsDocString #
derivStrategyName :: DerivStrategy a -> SDoc #
A short description of a DerivStrategy'
.
collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass] #
annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p) #
data SpliceExplicitFlag #
Constructors
ExplicitSplice | = $(f x y) |
ImplicitSplice | = f x y, i.e. a naked top level expression |
Instances
Data SpliceExplicitFlag | |
Defined in GHC.Types.Basic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SpliceExplicitFlag -> c SpliceExplicitFlag # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SpliceExplicitFlag # toConstr :: SpliceExplicitFlag -> Constr # dataTypeOf :: SpliceExplicitFlag -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SpliceExplicitFlag) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SpliceExplicitFlag) # gmapT :: (forall b. Data b => b -> b) -> SpliceExplicitFlag -> SpliceExplicitFlag # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SpliceExplicitFlag -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SpliceExplicitFlag -> r # gmapQ :: (forall d. Data d => d -> u) -> SpliceExplicitFlag -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SpliceExplicitFlag -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SpliceExplicitFlag -> m SpliceExplicitFlag # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SpliceExplicitFlag -> m SpliceExplicitFlag # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SpliceExplicitFlag -> m SpliceExplicitFlag # |
module GHC.Hs.Expr
module GHC.Hs.Doc
module GHC.Hs.Extension
module GHC.Hs.ImpExp
module GHC.Hs.Pat
module GHC.Hs.Type
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 :: Proxy p -> CollectFlag p -> XXPat p -> [IdP p] -> [IdP p] #
Instances
IsPass p => CollectPass (GhcPass p) | |
Defined in GHC.Hs.Utils |
data CollectFlag p where #
Indicate if evidence binders have to be collected.
This type is used as a boolean (should we collect evidence binders or not?) but also to pass an evidence that the AST has been typechecked when we do want to collect evidence binders, otherwise these binders are not available.
See Note [Dictionary binders in ConPatOut]
Constructors
CollNoDictBinders :: forall p. CollectFlag p | Don't collect evidence binders |
CollWithDictBinders :: CollectFlag (GhcPass 'Typechecked) | Collect evidence binders |
unguardedRHS :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan => EpAnn GrhsAnn -> SrcSpan -> LocatedA (body (GhcPass p)) -> [LGRHS (GhcPass p) (LocatedA (body (GhcPass p)))] #
unguardedGRHSs :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan => SrcSpan -> LocatedA (body (GhcPass p)) -> EpAnn GrhsAnn -> GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) #
spanHsLocaLBinds :: forall (p :: Pass). Data (HsLocalBinds (GhcPass p)) => HsLocalBinds (GhcPass p) -> SrcSpan #
Return the SrcSpan
encompassing the contents of any enclosed binds
nlWildPatName :: LPat GhcRn #
Wildcard pattern - after renaming
nlWildConPat :: DataCon -> LPat GhcPs #
nlNullaryConPat :: RdrName -> LPat GhcPs #
nlHsVarApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [IdP (GhcPass p)] -> LHsExpr (GhcPass p) #
nlHsTyConApp :: forall (p :: Pass) a. IsSrcSpanAnn p a => LexicalFixity -> IdP (GhcPass p) -> [LHsTypeArg (GhcPass p)] -> LHsType (GhcPass p) #
nlHsSyntaxApps :: SyntaxExprTc -> [LHsExpr GhcTc] -> LHsExpr GhcTc #
nlHsFunTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #
nlHsApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [LHsExpr (GhcPass p)] -> LHsExpr (GhcPass p) #
nlHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #
nlHsAppKindTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsKind (GhcPass p) -> LHsType (GhcPass p) #
nlHsApp :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #
mkUntypedSplice :: EpAnn [AddEpAnn] -> SpliceDecoration -> LHsExpr GhcPs -> HsSplice GhcPs #
mkTypedSplice :: EpAnn [AddEpAnn] -> SpliceDecoration -> LHsExpr GhcPs -> HsSplice GhcPs #
mkTransformStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) #
mkTransformByStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) #
mkTopFunBind :: Origin -> LocatedN Name -> [LMatch GhcRn (LHsExpr GhcRn)] -> HsBind GhcRn #
In Name-land, with empty bind_fvs
mkTcBindStmt :: LPat GhcTc -> LocatedA (bodyR GhcTc) -> StmtLR GhcTc GhcTc (LocatedA (bodyR GhcTc)) #
mkSimpleMatch :: forall (p :: Pass) body. (Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA, Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan) => HsMatchContext (NoGhcTc (GhcPass p)) -> [LPat (GhcPass p)] -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p))) #
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.
mkRnBindStmt :: LPat GhcRn -> LocatedA (bodyR GhcRn) -> StmtLR GhcRn GhcRn (LocatedA (bodyR GhcRn)) #
mkRecStmt :: forall (idL :: Pass) bodyR. Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL => EpAnn AnnList -> LocatedL [LStmtLR (GhcPass idL) GhcPs bodyR] -> StmtLR (GhcPass idL) GhcPs bodyR #
mkPsBindStmt :: EpAnn [AddEpAnn] -> LPat GhcPs -> LocatedA (bodyR GhcPs) -> StmtLR GhcPs GhcPs (LocatedA (bodyR GhcPs)) #
mkPrefixFunRhs :: LIdP p -> HsMatchContext p #
Make a prefix, non-strict function HsMatchContext
mkPatSynBind :: LocatedN RdrName -> HsPatSynDetails GhcPs -> LPat GhcPs -> HsPatSynDir GhcPs -> EpAnn [AddEpAnn] -> HsBind GhcPs #
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))) #
mkMatch :: forall (p :: Pass). IsPass p => HsMatchContext (NoGhcTc (GhcPass p)) -> [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> HsLocalBinds (GhcPass p) -> LMatch (GhcPass p) (LHsExpr (GhcPass p)) #
mkLocatedList :: Semigroup a => [GenLocated (SrcAnn a) e2] -> LocatedAn an [GenLocated (SrcAnn a) e2] #
mkLastStmt :: forall (idR :: Pass) bodyR (idL :: Pass). IsPass idR => LocatedA (bodyR (GhcPass idR)) -> StmtLR (GhcPass idL) (GhcPass idR) (LocatedA (bodyR (GhcPass idR))) #
mkLHsWrapCo :: TcCoercionN -> LHsExpr GhcTc -> LHsExpr GhcTc #
mkLHsVarTuple :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p) #
mkLHsTupleExpr :: forall (p :: Pass). [LHsExpr (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p) #
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
.
mkHsWrapPatCo :: TcCoercionN -> Pat GhcTc -> Type -> Pat GhcTc #
mkHsWrapCoR :: TcCoercionR -> HsExpr GhcTc -> HsExpr GhcTc #
mkHsWrapCo :: TcCoercionN -> HsExpr GhcTc -> HsExpr GhcTc #
mkHsWrap :: HsWrapper -> HsExpr GhcTc -> HsExpr GhcTc #
Avoid
and HsWrap
co1 (HsWrap
co2 _)
See Note [Detecting forced eta expansion] in GHC.HsToCore.ExprHsWrap
co1 (HsPar
_ _)
mkHsStringPrimLit :: forall (p :: Pass). FastString -> HsLit (GhcPass p) #
mkHsQuasiQuote :: RdrName -> SrcSpan -> FastString -> HsSplice GhcPs #
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.
mkHsLam :: forall (p :: Pass). (IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ NoExtField) => [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p) #
mkHsIsString :: SourceText -> FastString -> HsOverLit GhcPs #
mkHsIntegral :: IntegralLit -> HsOverLit GhcPs #
mkHsCompAnns :: HsStmtContext GhcRn -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> EpAnn AnnList -> HsExpr GhcPs #
mkHsCaseAlt :: forall (p :: Pass) body. (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan, 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
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) #
mkHsApps :: 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) #
mkHsApp :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #
mkGroupUsingStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) #
mkGroupByUsingStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) #
mkFunBind :: Origin -> LocatedN RdrName -> [LMatch GhcPs (LHsExpr GhcPs)] -> HsBind GhcPs #
Not infix, with place holders for coercion and free vars
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
Arguments
:: ([a] -> a) | "Small" constructor function, of maximum input arity |
-> [a] | Possible "big" list of things to construct from |
-> a | Constructed thing made possible by recursive decomposition |
Lifts a "small" constructor into a "big" constructor by recursive decomposition
mkBodyStmt :: forall bodyR (idL :: Pass). LocatedA (bodyR GhcPs) -> StmtLR (GhcPass idL) GhcPs (LocatedA (bodyR GhcPs)) #
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) #
missingTupArg :: EpAnn EpaLocation -> HsTupArg GhcPs #
lStmtsImplicits :: forall (idR :: Pass) (body :: Type -> Type). [LStmtLR GhcRn (GhcPass idR) (LocatedA (body (GhcPass idR)))] -> [(SrcSpan, [Name])] #
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 [Unlifted id check in isUnliftedHsBind]. For usage information, see Note [Strict binds checks] is GHC.HsToCore.Binds.
isInfixFunBind :: forall id1 id2. UnXRec id2 => HsBindLR id1 id2 -> Bool #
isBangedHsBind :: HsBind GhcTc -> Bool #
Is a binding a strict variable or pattern bind (e.g. !x = ...
)?
hsValBindsImplicits :: forall (idR :: Pass). HsValBindsLR GhcRn (GhcPass idR) -> [(SrcSpan, [Name])] #
hsTypeToHsSigWcType :: LHsType GhcPs -> LHsSigWcType GhcPs #
Convert an LHsType
to an LHsSigWcType
.
hsTypeToHsSigType :: LHsType GhcPs -> LHsSigType GhcPs #
Convert an LHsType
to an LHsSigType
.
hsTyClForeignBinders :: [TyClGroup GhcRn] -> [LForeignDecl GhcRn] -> [Name] #
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
.
hsLTyClDeclBinders :: forall (p :: Pass). IsPass p => LocatedA (TyClDecl (GhcPass p)) -> ([LocatedA (IdP (GhcPass p))], [LFieldOcc (GhcPass 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]
hsGroupBinders :: HsGroup GhcRn -> [Name] #
hsForeignDeclsBinders :: forall (p :: Pass) a. (UnXRec (GhcPass p), IsSrcSpanAnn p a) => [LForeignDecl (GhcPass p)] -> [LIdP (GhcPass p)] #
See Note [SrcSpan for binders]
hsDataFamInstBinders :: forall (p :: Pass). IsPass p => DataFamInstDecl (GhcPass p) -> ([LocatedA (IdP (GhcPass p))], [LFieldOcc (GhcPass p)]) #
the SrcLoc
returned are for the whole declarations, not just the names
getPatSynBinds :: UnXRec id => [(RecFlag, LHsBinds id)] -> [PatSynBind id id] #
emptyRecStmtName :: Anno [GenLocated (Anno (StmtLR GhcRn GhcRn bodyR)) (StmtLR GhcRn GhcRn bodyR)] ~ SrcSpanAnnL => StmtLR GhcRn GhcRn bodyR #
emptyRecStmt :: forall (idL :: Pass) bodyR. Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL => StmtLR (GhcPass idL) GhcPs bodyR #
collectStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [StmtLR (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)] #
collectPatsBinders :: CollectPass p => CollectFlag p -> [LPat p] -> [IdP p] #
collectPatBinders :: CollectPass p => CollectFlag p -> LPat p -> [IdP p] #
collectMethodBinders :: UnXRec idL => LHsBindsLR idL idR -> [LIdP idL] #
Used exclusively for the bindings of an instance decl which are all
FunBinds
collectLocalBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)] #
collectLStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [LStmtLR (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)] #
collectHsValBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (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)] #
collectHsBindListBinders :: CollectPass p => CollectFlag p -> [LHsBindLR p idR] -> [IdP p] #
Same as collectHsBindsBinders
, but works over a list of bindings
collectHsBindBinders :: CollectPass p => CollectFlag p -> HsBindLR p idR -> [IdP p] #
Collect both Id
s and pattern-synonym binders
Split a list into lists that are small enough to have a corresponding
tuple arity. The sub-lists of the result all have length <= mAX_TUPLE_SIZE
But there may be more than mAX_TUPLE_SIZE
sub-lists
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 UntypedSpliceFlavour #
Instances
Data UntypedSpliceFlavour | |
Defined in Language.Haskell.Syntax.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UntypedSpliceFlavour -> c UntypedSpliceFlavour # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UntypedSpliceFlavour # toConstr :: UntypedSpliceFlavour -> Constr # dataTypeOf :: UntypedSpliceFlavour -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UntypedSpliceFlavour) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UntypedSpliceFlavour) # gmapT :: (forall b. Data b => b -> b) -> UntypedSpliceFlavour -> UntypedSpliceFlavour # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UntypedSpliceFlavour -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UntypedSpliceFlavour -> r # gmapQ :: (forall d. Data d => d -> u) -> UntypedSpliceFlavour -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UntypedSpliceFlavour -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UntypedSpliceFlavour -> m UntypedSpliceFlavour # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UntypedSpliceFlavour -> m UntypedSpliceFlavour # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UntypedSpliceFlavour -> m UntypedSpliceFlavour # |
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 # |
newtype ThModFinalizers #
Finalizers produced by a splice with
addModFinalizer
See Note [Delaying modFinalizers in untyped splices] in GHC.Rename.Splice. For how this is used.
Constructors
ThModFinalizers [ForeignRef (Q ())] |
Instances
Data ThModFinalizers | |
Defined in Language.Haskell.Syntax.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ThModFinalizers -> c ThModFinalizers # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ThModFinalizers # toConstr :: ThModFinalizers -> Constr # dataTypeOf :: ThModFinalizers -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ThModFinalizers) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ThModFinalizers) # gmapT :: (forall b. Data b => b -> b) -> ThModFinalizers -> ThModFinalizers # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ThModFinalizers -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ThModFinalizers -> r # gmapQ :: (forall d. Data d => d -> u) -> ThModFinalizers -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ThModFinalizers -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ThModFinalizers -> m ThModFinalizers # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ThModFinalizers -> m ThModFinalizers # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ThModFinalizers -> m ThModFinalizers # |
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
type SplicePointName = Name #
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 or $$splice |
BareSplice | bare splice |
Instances
type RecUpdProj p = RecProj p (LHsExpr p) #
type RecProj p arg = HsRecField' (FieldLabelStrings p) arg #
type family PendingTcSplice' p #
Instances
type PendingTcSplice' (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family PendingRnSplice' p #
Instances
type PendingRnSplice' (GhcPass _1) | |
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) |
data MatchGroupTc #
Constructors
MatchGroupTc | |
Fields
|
Instances
Data MatchGroupTc | |
Defined in Language.Haskell.Syntax.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MatchGroupTc -> c MatchGroupTc # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MatchGroupTc # toConstr :: MatchGroupTc -> Constr # dataTypeOf :: MatchGroupTc -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MatchGroupTc) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MatchGroupTc) # gmapT :: (forall b. Data b => b -> b) -> MatchGroupTc -> MatchGroupTc # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MatchGroupTc -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MatchGroupTc -> r # gmapQ :: (forall d. Data d => d -> u) -> MatchGroupTc -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> MatchGroupTc -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MatchGroupTc -> m MatchGroupTc # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MatchGroupTc -> m MatchGroupTc # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MatchGroupTc -> m MatchGroupTc # |
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.PostProcess | |
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.PostProcess |
type LStmtLR idL idR body = XRec idL (StmtLR idL idR body) #
Located Statement with separate Left and Right id's
type LMatch id body = XRec id (Match id body) #
Located Match
May have AnnKeywordId
: AnnSemi
when in a
list
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))
type LHsRecUpdProj p = XRec p (RecUpdProj p) #
type LHsRecProj p arg = XRec p (RecProj p arg) #
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
Haskell Tuple Argument
data HsStmtContext p #
Haskell Statement Context.
Constructors
ListComp | |
MonadComp | |
DoExpr (Maybe ModuleName) |
|
MDoExpr (Maybe ModuleName) |
|
ArrowExpr | do-notation in an arrow-command context |
GhciStmtCtxt | A command-line Stmt in GHCi pat <- rhs |
PatGuard (HsMatchContext p) | Pattern guard for specified thing |
ParStmtCtxt (HsStmtContext p) | A branch of a parallel stmt |
TransStmtCtxt (HsStmtContext p) | A branch of a transform stmt |
Instances
HiePass p => ToHie (HsStmtContext (GhcPass p)) | |
Defined in Compat.HieAst Methods toHie :: HsStmtContext (GhcPass p) -> HieM [HieAST Type] |
data HsSplicedThing id #
Haskell Spliced Thing
Values that can result from running a splice.
Constructors
HsSplicedExpr (HsExpr id) | Haskell Spliced Expression |
HsSplicedTy (HsType id) | Haskell Spliced Type |
HsSplicedPat (Pat id) | Haskell Spliced Pattern |
type HsRecordBinds p = HsRecFields p (LHsExpr p) #
Haskell Record Bindings
A pragma, written as {-# ... #-}, that may appear within an expression.
data HsMatchContext p #
Haskell Match Context
Context of a pattern match. This is more subtle than it would seem. See Note [Varieties of pattern matches].
Constructors
FunRhs | |
Fields
| |
LambdaExpr | Patterns of a lambda |
CaseAlt | Patterns and guards on a case alternative |
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 p) | 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 |
Instances
HiePass p => ToHie (HsMatchContext (GhcPass p)) | |
Defined in Compat.HieAst Methods toHie :: HsMatchContext (GhcPass p) -> HieM [HieAST Type] |
data HsFieldLabel p #
Constructors
HsFieldLabel | |
Fields | |
XHsFieldLabel !(XXHsFieldLabel p) |
Instances
Outputable (HsFieldLabel p) | |
Defined in Language.Haskell.Syntax.Expr Methods ppr :: HsFieldLabel p -> SDoc # |
The AST used to hard-refer to GhcPass, which was a layer violation. For now, we paper it over with this new extension point.
Haskell Top-level Command
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 (XCmdLam id) (MatchGroup id (LHsCmd id)) | |
HsCmdPar (XCmdPar id) (LHsCmd id) |
|
HsCmdCase (XCmdCase id) (LHsExpr id) (MatchGroup id (LHsCmd id)) |
|
HsCmdLamCase (XCmdLamCase 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
type family HsBracketRn p #
Instances
type HsBracketRn (GhcPass _1) | |
Defined in GHC.Hs.Expr |
Haskell Bracket
data HsArrowMatchContext #
Haskell arrow match context.
Constructors
ProcExpr | A proc expression |
ArrowCaseAlt | A case alternative inside arrow notation |
KappaExpr | An arrow kappa abstraction |
data HsArrAppType #
Haskell Array Application Type
Constructors
HsHigherOrderApp | |
HsFirstOrderApp |
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 # |
type GuardLStmt id = LStmt id (LHsExpr id) #
Guard Located Statement
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 (Located (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.PostProcess |
newtype FieldLabelStrings p #
RecordDotSyntax field updates
Constructors
FieldLabelStrings [Located (HsFieldLabel p)] |
Instances
Outputable (FieldLabelStrings p) | |
Defined in Language.Haskell.Syntax.Expr Methods ppr :: FieldLabelStrings p -> SDoc # | |
OutputableBndr (FieldLabelStrings p) | |
Defined in Language.Haskell.Syntax.Expr Methods pprBndr :: BindingSite -> FieldLabelStrings p -> SDoc # pprPrefixOcc :: FieldLabelStrings p -> SDoc # pprInfixOcc :: FieldLabelStrings p -> SDoc # bndrIsJoin_maybe :: FieldLabelStrings p -> Maybe Int # |
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.
type CmdSyntaxTable p = [(Name, HsExpr p)] #
Command Syntax Table (for Arrow syntax)
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 Compat.HieAst Methods toHie :: ArithSeqInfo a -> HieM [HieAST Type] |
type family ApplicativeArgStmCtxPass idL #
Instances
type ApplicativeArgStmCtxPass _1 | |
Defined in GHC.Hs.Expr |
data ApplicativeArg idL #
Applicative Argument
Constructors
ApplicativeArgOne | |
Fields
| |
ApplicativeArgMany | |
Fields
| |
XApplicativeArg !(XXApplicativeArg idL) |
Instances
HiePass p => ToHie (RScoped (ApplicativeArg (GhcPass p))) | |
Defined in Compat.HieAst Methods toHie :: RScoped (ApplicativeArg (GhcPass p)) -> HieM [HieAST Type] |
prependQualified :: Maybe ModuleName -> SDoc -> SDoc #
pprStmtContext :: (Outputable (IdP p), UnXRec p) => HsStmtContext p -> SDoc #
pprMatchContextNoun :: (Outputable (IdP p), UnXRec p) => HsMatchContext p -> SDoc #
pprMatchContext :: (Outputable (IdP p), UnXRec p) => HsMatchContext p -> SDoc #
pprFieldLabelStrings :: FieldLabelStrings p -> SDoc #
pprExternalSrcLoc :: (StringLiteral, (Int, Int), (Int, Int)) -> SDoc #
pprAStmtContext :: (Outputable (IdP p), UnXRec p) => HsStmtContext p -> SDoc #
matchSeparator :: HsMatchContext p -> SDoc #
isTypedSplice :: HsSplice id -> Bool #
isTypedBracket :: HsBracket id -> Bool #
isPatSynCtxt :: HsMatchContext p -> Bool #
isMonadStmtContext :: HsStmtContext id -> Bool #
Is this a monadic context?
isMonadCompContext :: HsStmtContext id -> Bool #
isInfixMatch :: Match id body -> Bool #
isComprehensionContext :: HsStmtContext id -> Bool #
Warning pragma Declarations
Constructors
Warnings | |
Fields
| |
XWarnDecls !(XXWarnDecls pass) |
Warning pragma Declaration
Constructors
Warning (XWarning pass) [LIdP pass] WarningTxt | |
XWarnDecl !(XXWarnDecl pass) |
type TyFamInstEqn pass = FamEqn pass (LHsType pass) #
Type Family Instance Equation
data TyFamInstDecl pass #
Type Family Instance Declaration
Constructors
TyFamInstDecl | |
Fields
| |
XTyFamInstDecl !(XXTyFamInstDecl pass) |
Instances
ToHie (LocatedA (TyFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (TyFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
type TyFamDefltDecl = TyFamInstDecl #
Type family default declarations.
A convenient synonym for TyFamInstDecl
.
See Note [Type family instance declarations in HsSyn]
.
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 StandaloneKindSig pass #
Constructors
StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass) | |
XStandaloneKindSig !(XXStandaloneKindSig pass) |
Instances
ToHie (LocatedA (StandaloneKindSig GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (StandaloneKindSig GhcRn) | |
Defined in Compat.HieAst Methods toHie :: StandaloneKindSig GhcRn -> HieM [HieAST Type] | |
type Anno (StandaloneKindSig (GhcPass p)) | |
Defined in GHC.Hs.Decls |
data SpliceDecl p #
Splice Declaration
Constructors
SpliceDecl (XSpliceDecl p) (XRec p (HsSplice p)) SpliceExplicitFlag | |
XSpliceDecl !(XXSpliceDecl p) |
Instances
ToHie (LocatedA (SpliceDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (SpliceDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
Rule Declarations
Constructors
HsRules | |
Fields
| |
XRuleDecls !(XXRuleDecls pass) |
Rule Declaration
Constructors
HsRule | |
Fields
| |
XRuleDecl !(XXRuleDecl pass) |
Rule Binder
Constructors
RuleBndr (XCRuleBndr pass) (LIdP pass) | |
RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass) | |
XRuleBndr !(XXRuleBndr 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 Compat.HieAst | |
type Anno (RoleAnnotDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
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 # | |
Outputable NewOrData | |
Defined in Language.Haskell.Syntax.Decls | |
Eq NewOrData | |
type LWarnDecls pass = XRec pass (WarnDecls pass) #
Located Warning Declarations
type LTyFamInstEqn pass #
Arguments
= XRec pass (TyFamInstEqn pass) | May have |
Located Type Family Instance Equation
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 LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass) #
Located Standalone Kind Signature
type LSpliceDecl pass = XRec pass (SpliceDecl pass) #
Located Splice Declaration
type LRuleDecls pass = XRec pass (RuleDecls pass) #
Located Rule Declarations
type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass) #
Located Role Annotation Declaration
type LInjectivityAnn pass = XRec pass (InjectivityAnn pass) #
Located Injectivity Annotation
type LHsDerivingClause pass = XRec pass (HsDerivingClause pass) #
type LForeignDecl pass = XRec pass (ForeignDecl pass) #
Located Foreign Declaration
type LFamilyResultSig pass = XRec pass (FamilyResultSig pass) #
Located type Family Result Signature
type LFamilyDecl pass = XRec pass (FamilyDecl pass) #
Located type Family Declaration
type LDerivStrategy pass = XRec pass (DerivStrategy pass) #
type LDerivDecl pass = XRec pass (DerivDecl pass) #
Located stand-alone 'deriving instance' declaration
type LDerivClauseTys pass = XRec pass (DerivClauseTys pass) #
type LDefaultDecl pass = XRec pass (DefaultDecl pass) #
Located Default Declaration
type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass) #
Located Data Family Instance Declaration
Arguments
= XRec pass (ConDecl pass) | May have |
Located data Constructor Declaration
type LClsInstDecl pass = XRec pass (ClsInstDecl pass) #
Located Class Instance Declaration
Instance Declaration
Constructors
ClsInstD | |
Fields
| |
DataFamInstD | |
Fields
| |
TyFamInstD | |
Fields
| |
XInstDecl !(XXInstDecl pass) |
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 (Located (InjectivityAnn GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (InjectivityAnn (GhcPass p)) | |
Defined in GHC.Hs.Decls |
type HsTyPats pass = [LHsTypeArg pass] #
Haskell Type Patterns
Instances
Data HsRuleRn | |
Defined in Language.Haskell.Syntax.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 # |
Constructors
HsGroup | |
Fields
| |
XHsGroup !(XXHsGroup p) |
data HsDerivingClause pass #
A single deriving
clause of a data declaration.
Constructors
HsDerivingClause | |
Fields
| |
XHsDerivingClause !(XXHsDerivingClause pass) |
Instances
ToHie (Located (HsDerivingClause GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (Located [Located (HsDerivingClause GhcRn)]) | |
Defined in Compat.HieAst | |
type Anno (HsDerivingClause (GhcPass p)) | |
Defined in GHC.Hs.Decls |
type HsDeriving pass #
Arguments
= [LHsDerivingClause pass] | The optional The list of |
Haskell Deriving clause
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 | Documentation comment declaration |
RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p) | Role annotation declaration |
XHsDecl !(XXHsDecl p) |
Instances
type Anno (HsDecl (GhcPass _1)) | |
Defined in GHC.Hs.Decls |
data HsDataDefn pass #
Haskell Data type Definition
Constructors
HsDataDefn | Declares a data type or newtype, giving its constructors
|
Fields
| |
XHsDataDefn !(XXHsDataDefn pass) |
Instances
HasLoc (HsDataDefn GhcRn) | |
Defined in Compat.HieAst Methods loc :: HsDataDefn GhcRn -> SrcSpan | |
ToHie (HsDataDefn GhcRn) | |
Defined in Compat.HieAst Methods toHie :: HsDataDefn GhcRn -> HieM [HieAST Type] | |
ToHie (TScoped (FamEqn GhcRn (HsDataDefn GhcRn))) | |
Defined in Compat.HieAst |
type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass]) #
The arguments in a Haskell98-style data constructor.
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 [HsScaled pass (LBangType pass)] | |
RecConGADT (XRec pass [LConDeclField pass]) |
Instances
ToHie (HsConDeclGADTDetails GhcRn) | |
Defined in Compat.HieAst Methods toHie :: HsConDeclGADTDetails GhcRn -> HieM [HieAST Type] |
data ForeignImport #
Constructors
CImport (Located CCallConv) (Located Safety) (Maybe Header) CImportSpec (Located SourceText) |
Instances
Data ForeignImport | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ForeignImport -> c ForeignImport # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ForeignImport # toConstr :: ForeignImport -> Constr # dataTypeOf :: ForeignImport -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ForeignImport) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ForeignImport) # gmapT :: (forall b. Data b => b -> b) -> ForeignImport -> ForeignImport # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ForeignImport -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ForeignImport -> r # gmapQ :: (forall d. Data d => d -> u) -> ForeignImport -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ForeignImport -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ForeignImport -> m ForeignImport # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignImport -> m ForeignImport # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignImport -> m ForeignImport # | |
Outputable ForeignImport | |
Defined in Language.Haskell.Syntax.Decls Methods ppr :: ForeignImport -> SDoc # | |
ToHie ForeignImport | |
Defined in Compat.HieAst Methods toHie :: ForeignImport -> HieM [HieAST Type] |
data ForeignExport #
Constructors
CExport (Located CExportSpec) (Located SourceText) |
Instances
Data ForeignExport | |
Defined in Language.Haskell.Syntax.Decls Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ForeignExport -> c ForeignExport # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ForeignExport # toConstr :: ForeignExport -> Constr # dataTypeOf :: ForeignExport -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ForeignExport) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ForeignExport) # gmapT :: (forall b. Data b => b -> b) -> ForeignExport -> ForeignExport # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ForeignExport -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ForeignExport -> r # gmapQ :: (forall d. Data d => d -> u) -> ForeignExport -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ForeignExport -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ForeignExport -> m ForeignExport # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignExport -> m ForeignExport # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignExport -> m ForeignExport # | |
Outputable ForeignExport | |
Defined in Language.Haskell.Syntax.Decls Methods ppr :: ForeignExport -> SDoc # | |
ToHie ForeignExport | |
Defined in Compat.HieAst Methods toHie :: ForeignExport -> HieM [HieAST Type] |
data ForeignDecl pass #
Foreign Declaration
Constructors
ForeignImport | |
Fields
| |
ForeignExport | |
Fields
| |
XForeignDecl !(XXForeignDecl pass) |
Instances
ToHie (LocatedA (ForeignDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (ForeignDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
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 (Located (FamilyResultSig GhcRn))) | |
Defined in Compat.HieAst | |
type Anno (FamilyResultSig (GhcPass p)) | |
Defined in GHC.Hs.Decls |
data FamilyInfo pass #
Constructors
DataFamily | |
OpenTypeFamily | |
ClosedTypeFamily (Maybe [LTyFamInstEqn pass]) |
|
Instances
Outputable (FamilyInfo pass) | |
Defined in Language.Haskell.Syntax.Decls Methods ppr :: FamilyInfo pass -> SDoc # | |
ToHie (FamilyInfo GhcRn) | |
Defined in Compat.HieAst Methods toHie :: FamilyInfo GhcRn -> HieM [HieAST Type] |
data FamilyDecl pass #
type Family Declaration
Constructors
FamilyDecl | |
Fields
| |
XFamilyDecl !(XXFamilyDecl pass) |
Instances
ToHie (LocatedA (FamilyDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (FamilyDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
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 Compat.HieAst | |
(HasLoc a, HiePass p) => HasLoc (FamEqn (GhcPass p) a) | |
Defined in Compat.HieAst | |
(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 |
Documentation comment Declaration
Constructors
DocCommentNext HsDocString | |
DocCommentPrev HsDocString | |
DocCommentNamed String HsDocString | |
DocGroup Int HsDocString |
Instances
Data DocDecl | |
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 -> c DocDecl # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DocDecl # toConstr :: DocDecl -> Constr # dataTypeOf :: DocDecl -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DocDecl) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DocDecl) # gmapT :: (forall b. Data b => b -> b) -> DocDecl -> DocDecl # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl -> r # gmapQ :: (forall d. Data d => d -> u) -> DocDecl -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DocDecl -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DocDecl -> m DocDecl # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl -> m DocDecl # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl -> m DocDecl # | |
Outputable DocDecl | |
Defined in Language.Haskell.Syntax.Decls | |
type Anno DocDecl | |
Defined in GHC.Hs.Decls |
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 (Located (DerivStrategy GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (DerivStrategy (GhcPass p)) | |
Defined in GHC.Hs.Decls |
Stand-alone 'deriving instance' declaration
Constructors
DerivDecl | |
Fields
| |
XDerivDecl !(XXDerivDecl pass) |
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 Compat.HieAst | |
type Anno (DerivClauseTys (GhcPass _1)) | |
Defined in GHC.Hs.Decls |
data DefaultDecl pass #
Default Declaration
Constructors
DefaultDecl (XCDefaultDecl pass) [LHsType pass] | |
XDefaultDecl !(XXDefaultDecl pass) |
Instances
ToHie (LocatedA (DefaultDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (DefaultDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
newtype DataFamInstDecl pass #
Data Family Instance Declaration
Constructors
DataFamInstDecl | |
Fields
|
Instances
ToHie (LocatedA (DataFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (DataFamInstDecl (GhcPass p)) | |
Defined in GHC.Hs.Decls |
data DataDeclRn #
Constructors
DataDeclRn | |
Fields
|
Instances
Data DataDeclRn | |
Defined in Language.Haskell.Syntax.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 # |
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 = IntMkT
Int | MkT2 data T a where IntMkT
Int :: T Int
AnnKeywordId
s :AnnOpen
,AnnDotdot
,AnnCLose
,AnnEqual
,AnnVbar
,AnnDarrow
,AnnDarrow
,AnnForall
,AnnDot
data Constructor Declaration
Constructors
ConDeclGADT | |
Fields
| |
ConDeclH98 | |
Fields
| |
XConDecl !(XXConDecl pass) |
data ClsInstDecl pass #
Class Instance Declaration
Constructors
ClsInstDecl | |
Fields
| |
XClsInstDecl !(XXClsInstDecl pass) |
Instances
ToHie (LocatedA (ClsInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
type Anno (ClsInstDecl (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 # |
data AnnProvenance pass #
Annotation Provenance
Constructors
ValueAnnProvenance (LIdP pass) | |
TypeAnnProvenance (LIdP pass) | |
ModuleAnnProvenance |
Instances
ToHie (AnnProvenance GhcRn) | |
Defined in Compat.HieAst Methods toHie :: AnnProvenance GhcRn -> HieM [HieAST Type] |
Annotation Declaration
Constructors
HsAnnotation (XHsAnnotation pass) SourceText (AnnProvenance pass) (XRec pass (HsExpr pass)) | |
XAnnDecl !(XXAnnDecl pass) |
tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass] #
tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass] #
tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass] #
tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass] #
tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass #
pprFullRuleName :: Located (SourceText, RuleName) -> SDoc #
pprFlavour :: FamilyInfo pass -> SDoc #
newOrDataToFlavour :: NewOrData -> TyConFlavour #
Convert a NewOrData
to a TyConFlavour
isTypeFamilyDecl :: TyClDecl pass -> Bool #
type family declaration
isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool #
open type family info
isFamilyDecl :: TyClDecl pass -> Bool #
type/data family declaration
isDataFamilyDecl :: TyClDecl pass -> Bool #
data family declaration
isDataDecl :: TyClDecl pass -> Bool #
True
= argument is a data
/newtype
declaration.
isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool #
closed type family info
isClassDecl :: TyClDecl pass -> Bool #
type class
hsGroupInstDecls :: HsGroup id -> [LInstDecl id] #
docDeclDoc :: DocDecl -> HsDocString #
derivStrategyName :: DerivStrategy a -> SDoc #
A short description of a DerivStrategy'
.
collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass] #
annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p) #
data TcSpecPrags #
Type checker Specialisation Pragmas
TcSpecPrags
conveys SPECIALISE
pragmas from the type checker to the desugarer
Constructors
IsDefaultMethod | Super-specialised: a default method should be macro-expanded at every call site |
SpecPrags [LTcSpecPrag] |
Instances
Data TcSpecPrags | |
Defined in Language.Haskell.Syntax.Binds Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TcSpecPrags -> c TcSpecPrags # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TcSpecPrags # toConstr :: TcSpecPrags -> Constr # dataTypeOf :: TcSpecPrags -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TcSpecPrags) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TcSpecPrags) # gmapT :: (forall b. Data b => b -> b) -> TcSpecPrags -> TcSpecPrags # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TcSpecPrags -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TcSpecPrags -> r # gmapQ :: (forall d. Data d => d -> u) -> TcSpecPrags -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TcSpecPrags -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TcSpecPrags -> m TcSpecPrags # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TcSpecPrags -> m TcSpecPrags # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TcSpecPrags -> m TcSpecPrags # |
data TcSpecPrag #
Type checker Specification Pragma
Constructors
SpecPrag Id HsWrapper InlinePragma | The Id to be specialised, a wrapper that specialises the polymorphic function, and inlining spec for the specialised function |
Instances
Data TcSpecPrag | |
Defined in Language.Haskell.Syntax.Binds Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TcSpecPrag -> c TcSpecPrag # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TcSpecPrag # toConstr :: TcSpecPrag -> Constr # dataTypeOf :: TcSpecPrag -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TcSpecPrag) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TcSpecPrag) # gmapT :: (forall b. Data b => b -> b) -> TcSpecPrag -> TcSpecPrag # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TcSpecPrag -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TcSpecPrag -> r # gmapQ :: (forall d. Data d => d -> u) -> TcSpecPrag -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TcSpecPrag -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TcSpecPrag -> m TcSpecPrag # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TcSpecPrag -> m TcSpecPrag # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TcSpecPrag -> m TcSpecPrag # |
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 |
IdSig (XIdSig pass) Id | A type signature in generated code, notably the code generated for record selectors. We simply record the desired Id itself, replete with its name, type and IdDetails. Otherwise it's just like a type signature: there should be an accompanying binding |
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) SourceText (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) SourceText (LBooleanFormula (LIdP pass)) | A minimal complete definition pragma {-# MINIMAL a | (b, c | (d | e)) #-} |
SCCFunSig (XSCCFunSig pass) SourceText (LIdP pass) (Maybe (XRec pass StringLiteral)) | A "set cost centre" pragma for declarations {-# SCC funName #-} or {-# SCC funName "cost_centre_name" #-} |
CompleteMatchSig (XCompleteMatchSig pass) SourceText (XRec 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) |
data RecordPatSynField pass #
Record Pattern Synonym Field
Constructors
RecordPatSynField | |
Fields
|
Instances
Outputable (RecordPatSynField a) | |
Defined in Language.Haskell.Syntax.Binds Methods ppr :: RecordPatSynField a -> SDoc # | |
HiePass p => ToHie (PatSynFieldContext (RecordPatSynField (GhcPass p))) | |
Defined in Compat.HieAst Methods toHie :: PatSynFieldContext (RecordPatSynField (GhcPass p)) -> HieM [HieAST Type] |
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 Compat.HieAst |
type LTcSpecPrag = Located TcSpecPrag #
Located Type checker Specification Pragmas
type LIPBind id = XRec id (IPBind id) #
Located Implicit Parameter Binding
May have AnnKeywordId
: AnnSemi
when in a
list
type LHsLocalBindsLR idL idR = XRec idL (HsLocalBindsLR idL idR) #
type LHsLocalBinds id = XRec id (HsLocalBinds id) #
Located Haskell local bindings
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
type LHsBindLR idL idR = XRec idL (HsBindLR idL idR) #
Located Haskell Binding with separate Left and Right identifier types
type LFixitySig pass = XRec pass (FixitySig pass) #
Located Fixity Signature
Implicit parameter bindings.
These bindings start off as (Left "x") in the parser and stay that way until after type-checking when they are replaced with (Right d), where "d" is the name of the dictionary holding the evidence for the implicit parameter.
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 Compat.HieAst |
type HsValBinds id = HsValBindsLR id id #
Haskell Value Bindings
data HsPatSynDir id #
Haskell Pattern Synonym Direction
Constructors
Unidirectional | |
ImplicitBidirectional | |
ExplicitBidirectional (MatchGroup id (LHsExpr id)) |
Instances
HiePass p => ToHie (HsPatSynDir (GhcPass p)) | |
Defined in Compat.HieAst Methods toHie :: HsPatSynDir (GhcPass p) -> HieM [HieAST Type] |
type HsPatSynDetails pass = HsConDetails Void (LIdP pass) [RecordPatSynField pass] #
Haskell Pattern Synonym Details
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 Compat.HieAst Methods toHie :: RScoped (HsLocalBinds (GhcPass p)) -> HieM [HieAST Type] |
type HsLocalBinds id = HsLocalBindsLR id id #
Haskell Local Bindings
Haskell Implicit Parameter Bindings
Constructors
IPBinds (XIPBinds id) [LIPBind id] | |
XHsIPBinds !(XXHsIPBinds id) |
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. |
Fields
| |
VarBind | Variable Binding Dictionary binding and suchlike. All VarBinds are introduced by the type checker |
AbsBinds | Abstraction Bindings |
Fields
| |
PatSynBind | Patterns Synonym Binding |
Fields
| |
XHsBindsLR !(XXHsBindsLR idL idR) |
Fixity Signature
Constructors
FixitySig (XFixitySig pass) [LIdP pass] Fixity | |
XFixitySig !(XXFixitySig pass) |
Abstraction Bindings Export
isTypeLSig :: UnXRec p => LSig p -> Bool #
isSpecLSig :: UnXRec p => LSig p -> Bool #
isSpecInstLSig :: UnXRec p => LSig p -> Bool #
isSCCFunSig :: UnXRec p => LSig p -> Bool #
isPragLSig :: UnXRec p => LSig p -> Bool #
isMinimalLSig :: UnXRec p => LSig p -> Bool #
isInlineLSig :: UnXRec p => LSig p -> Bool #
isFixityLSig :: UnXRec p => LSig p -> Bool #
isDefaultMethod :: TcSpecPrags -> Bool #
isCompleteMatchSig :: UnXRec p => LSig p -> Bool #
hasSpecPrags :: TcSpecPrags -> Bool #
type LHsRecUpdField p = XRec p (HsRecUpdField p) #
Located Haskell Record Update Field
type LHsRecField' p id arg = XRec p (HsRecField' id arg) #
Located Haskell Record Field
type LHsRecField p arg = XRec p (HsRecField p arg) #
Located Haskell Record Field
type HsRecUpdField p = HsRecField' (AmbiguousFieldOcc p) (LHsExpr p) #
Haskell Record Update Field
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 Compat.HieAst Methods toHie :: RContext (HsRecFields (GhcPass p) arg) -> HieM [HieAST Type] | |
(Outputable arg, Outputable (XRec p (HsRecField p arg))) => Outputable (HsRecFields p arg) | |
Defined in Language.Haskell.Syntax.Pat Methods ppr :: HsRecFields p arg -> SDoc # |
data HsRecField' id arg #
Haskell Record Field
For details on above see note [exact print annotations] in GHC.Parser.Annotation
Constructors
HsRecField | |
Fields
|
Instances
Foldable (HsRecField' id) | |
Defined in Language.Haskell.Syntax.Pat Methods fold :: Monoid m => HsRecField' id m -> m # foldMap :: Monoid m => (a -> m) -> HsRecField' id a -> m # foldMap' :: Monoid m => (a -> m) -> HsRecField' id a -> m # foldr :: (a -> b -> b) -> b -> HsRecField' id a -> b # foldr' :: (a -> b -> b) -> b -> HsRecField' id a -> b # foldl :: (b -> a -> b) -> b -> HsRecField' id a -> b # foldl' :: (b -> a -> b) -> b -> HsRecField' id a -> b # foldr1 :: (a -> a -> a) -> HsRecField' id a -> a # foldl1 :: (a -> a -> a) -> HsRecField' id a -> a # toList :: HsRecField' id a -> [a] # null :: HsRecField' id a -> Bool # length :: HsRecField' id a -> Int # elem :: Eq a => a -> HsRecField' id a -> Bool # maximum :: Ord a => HsRecField' id a -> a # minimum :: Ord a => HsRecField' id a -> a # sum :: Num a => HsRecField' id a -> a # product :: Num a => HsRecField' id a -> a # | |
Traversable (HsRecField' id) | |
Defined in Language.Haskell.Syntax.Pat Methods traverse :: Applicative f => (a -> f b) -> HsRecField' id a -> f (HsRecField' id b) # sequenceA :: Applicative f => HsRecField' id (f a) -> f (HsRecField' id a) # mapM :: Monad m => (a -> m b) -> HsRecField' id a -> m (HsRecField' id b) # sequence :: Monad m => HsRecField' id (m a) -> m (HsRecField' id a) # | |
Functor (HsRecField' id) | |
Defined in Language.Haskell.Syntax.Pat Methods fmap :: (a -> b) -> HsRecField' id a -> HsRecField' id b # (<$) :: a -> HsRecField' id b -> HsRecField' id a # | |
(ToHie (RFContext (Located label)), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsRecField' label arg))) | |
Defined in Compat.HieAst Methods toHie :: RContext (LocatedA (HsRecField' label arg)) -> HieM [HieAST Type] | |
(Outputable p, OutputableBndr p, Outputable arg) => Outputable (HsRecField' p arg) | |
Defined in Language.Haskell.Syntax.Pat Methods ppr :: HsRecField' p arg -> SDoc # | |
type Anno (HsRecField (GhcPass p) arg) | |
Defined in GHC.Hs.Pat | |
type Anno (HsRecField' (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
Defined in GHC.Hs.Pat | |
type Anno (HsRecField' (AmbiguousFieldOcc p) (LocatedA (HsExpr p))) | |
Defined in GHC.Hs.Pat | |
type Anno (HsRecField' p arg) | |
Defined in GHC.Hs.Pat |
type HsRecField p arg = HsRecField' (FieldOcc p) arg #
Haskell Record Field
type HsConPatDetails p = HsConDetails (HsPatSigType (NoGhcTc p)) (LPat p) (HsRecFields p (LPat p)) #
Haskell Constructor Pattern Details
hsRecFieldsArgs :: UnXRec p => HsRecFields p arg -> [arg] #
hsRecFields :: UnXRec p => HsRecFields p arg -> [XCFieldOcc p] #
hsRecFieldSel :: HsRecField pass arg -> Located (XCFieldOcc pass) #
hsConPatArgs :: UnXRec p => HsConPatDetails p -> [LPat p] #
type LHsWcType pass = HsWildCardBndrs pass (LHsType pass) #
Located Haskell Wildcard Type
type LHsTypeArg p = HsArg (LHsType p) (LHsKind p) #
Arguments
= XRec pass (HsType pass) | May have |
Located Haskell Type
type LHsTyVarBndr flag pass = XRec pass (HsTyVarBndr flag pass) #
Located Haskell Type Variable Binder
type LHsSigWcType pass = HsWildCardBndrs pass (LHsSigType pass) #
Located Haskell Signature Wildcard Type
type LHsSigType pass = XRec pass (HsSigType pass) #
Located Haskell Signature Type
data LHsQTyVars pass #
Located Haskell Quantified Type Variables
Constructors
HsQTvs | |
Fields
| |
XLHsQTyVars !(XXLHsQTyVars pass) |
Instances
ToHie (TScoped (LHsQTyVars GhcRn)) | |
Defined in Compat.HieAst Methods toHie :: TScoped (LHsQTyVars GhcRn) -> HieM [HieAST Type] |
type LHsContext pass #
Arguments
= XRec pass (HsContext pass) |
|
Located Haskell Context
type LConDeclField pass #
Arguments
= XRec pass (ConDeclField pass) | May have |
Located Constructor Declaration Field
data HsWildCardBndrs pass thing #
Haskell Wildcard Binders
Constructors
HsWC | |
XHsWildCardBndrs !(XXHsWildCardBndrs pass thing) |
Instances
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) | |
Defined in Compat.HieAst | |
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) | |
Defined in Compat.HieAst |
Haskell Type
Constructors
Instances
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 Compat.HieAst | |
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 |
Haskell Type Literal
Constructors
HsNumTy SourceText Integer | |
HsStrTy SourceText FastString | |
HsCharTy SourceText Char |
Instances
Data HsTyLit | |
Defined in Language.Haskell.Syntax.Type Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsTyLit -> c HsTyLit # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsTyLit # toConstr :: HsTyLit -> Constr # dataTypeOf :: HsTyLit -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsTyLit) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsTyLit) # gmapT :: (forall b. Data b => b -> b) -> HsTyLit -> HsTyLit # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyLit -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyLit -> r # gmapQ :: (forall d. Data d => d -> u) -> HsTyLit -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyLit -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyLit -> m HsTyLit # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyLit -> m HsTyLit # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyLit -> m HsTyLit # | |
Outputable HsTyLit | |
Defined in Language.Haskell.Syntax.Type |
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 # |
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 Compat.HieAst | |
type Anno (HsSigType (GhcPass p)) | |
Defined in GHC.Hs.Type |
This is used in the syntax. In constructor declaration. It must keep the arrow representation.
Instances
Outputable a => Outputable (HsScaled pass a) | |
Defined in Language.Haskell.Syntax.Type | |
ToHie a => ToHie (HsScaled GhcRn a) | |
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 Compat.HieAst Methods toHie :: TScoped (HsPatSigType GhcRn) -> HieM [HieAST Type] |
The extension field for HsPatSigType
, which is only used in the
renamer onwards. See Note [Pattern signature binders and scoping]
.
Constructors
HsPSRn | |
Fields
|
Instances
Data HsPSRn | |
Defined in Language.Haskell.Syntax.Type Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsPSRn -> c HsPSRn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsPSRn # toConstr :: HsPSRn -> Constr # dataTypeOf :: HsPSRn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsPSRn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsPSRn) # gmapT :: (forall b. Data b => b -> b) -> HsPSRn -> HsPSRn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPSRn -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPSRn -> r # gmapQ :: (forall d. Data d => d -> u) -> HsPSRn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsPSRn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsPSRn -> m HsPSRn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPSRn -> m HsPSRn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPSRn -> m HsPSRn # |
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 Compat.HieAst Methods toHie :: TVScoped (HsOuterTyVarBndrs flag GhcRn) -> HieM [HieAST Type] | |
type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) | |
Defined in GHC.Hs.Type |
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.
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
.
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 # | |
Outputable HsIPName | |
Defined in Language.Haskell.Syntax.Type | |
OutputableBndr HsIPName | |
Defined in Language.Haskell.Syntax.Type Methods pprBndr :: BindingSite -> HsIPName -> SDoc # pprPrefixOcc :: HsIPName -> SDoc # pprInfixOcc :: HsIPName -> SDoc # bndrIsJoin_maybe :: HsIPName -> Maybe Int # | |
Eq HsIPName | |
ToHie (Located HsIPName) | |
type Anno HsIPName | |
Defined in GHC.Hs.Type |
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) |
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
HsConDeclH98Details
in GHC.Hs.Decls). - The arguments in constructor patterns in
case
/function definitions (seeHsConPatDetails
in GHC.Hs.Pat). - The left-hand side arguments in a pattern synonym binding
(see
HsPatSynDetails
in 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
(Data tyarg, Data arg, Data rec) => 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) # | |
(Outputable tyarg, Outputable arg, Outputable rec) => Outputable (HsConDetails tyarg arg rec) | |
Defined in Language.Haskell.Syntax.Type Methods ppr :: HsConDetails tyarg arg rec -> SDoc # | |
(ToHie tyarg, ToHie arg, ToHie rec) => ToHie (HsConDetails tyarg arg rec) | |
Defined in Compat.HieAst Methods toHie :: HsConDetails tyarg arg rec -> HieM [HieAST Type] |
Denotes the type of arrows in the surface language
Constructors
HsUnrestrictedArrow IsUnicodeSyntax | a -> b or a → b |
HsLinearArrow IsUnicodeSyntax (Maybe AddEpAnn) | a %1 -> b or a %1 → b, or a ⊸ b |
HsExplicitMult IsUnicodeSyntax (Maybe AddEpAnn) (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
|
Instances
(Outputable tm, Outputable ty) => Outputable (HsArg tm ty) | |
Defined in Language.Haskell.Syntax.Type | |
(HasLoc tm, HasLoc ty) => HasLoc (HsArg tm ty) | |
Defined in Compat.HieAst | |
(ToHie tm, ToHie ty) => ToHie (HsArg tm ty) | |
Defined in Compat.HieAst |
Field Occurrence
Represents an *occurrence* of an unambiguous 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,
the selector function.
Constructors
FieldOcc | |
Fields
| |
XFieldOcc !(XXFieldOcc pass) |
Instances
data ConDeclField pass #
Constructor Declaration Field
Constructors
ConDeclField | |
Fields
| |
XConDeclField !(XXConDeclField pass) |
Instances
ToHie (LocatedA (ConDeclField GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) | |
Defined in Compat.HieAst | |
type Anno (ConDeclField (GhcPass p)) | |
Defined in GHC.Hs.Type | |
type Anno [LocatedA (ConDeclField (GhcPass _1))] | |
Defined in GHC.Hs.Decls |
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 and Note [Disambiguating record fields] in GHC.Tc.Gen.Head. See Note [Located RdrNames] in GHC.Hs.Expr
Constructors
Unambiguous (XUnambiguous pass) (LocatedN RdrName) | |
Ambiguous (XAmbiguous pass) (LocatedN RdrName) | |
XAmbiguousFieldOcc !(XXAmbiguousFieldOcc pass) |
Instances
ToHie (RFContext (Located (AmbiguousFieldOcc GhcRn))) | |
Defined in Compat.HieAst | |
ToHie (RFContext (Located (AmbiguousFieldOcc GhcTc))) | |
Defined in Compat.HieAst | |
type Anno (AmbiguousFieldOcc GhcTc) | |
Defined in GHC.Hs.Pat | |
type Anno (HsRecField' (AmbiguousFieldOcc p) (LocatedA (HsExpr p))) | |
Defined in GHC.Hs.Pat |
numVisibleArgs :: [HsArg tm ty] -> Arity #
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.
mapHsOuterImplicit :: (XHsOuterImplicit pass -> XHsOuterImplicit pass) -> HsOuterTyVarBndrs flag pass -> HsOuterTyVarBndrs flag pass #
isHsKindedTyVar :: HsTyVarBndr flag pass -> Bool #
Does this HsTyVarBndr
come with an explicit kind annotation?
hsUnrestricted :: a -> HsScaled pass a #
When creating syntax we use the shorthands. It's better for printing, also, the shorthands work trivially at each pass.
hsScaledThing :: HsScaled pass a -> a #
hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr () pass] #
hsPatSigType :: HsPatSigType pass -> LHsType pass #
hsLinear :: a -> HsScaled pass a #
When creating syntax we use the shorthands. It's better for printing, also, the shorthands work trivially at each pass.
hsIPNameFS :: HsIPName -> FastString #
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 Arity | 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
| |
XPat !(XXPat p) | Trees that Grow extension point for new constructors |
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 # | |
Outputable OverLitVal | |
Defined in Language.Haskell.Syntax.Lit Methods ppr :: OverLitVal -> SDoc # | |
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 Overloaded Literal
Constructors
OverLit | |
Fields
| |
XOverLit !(XXOverLit p) |
Instances
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 |
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 |
HsInt64Prim (XHsInt64Prim 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) |
hsOverLitNeedsParens :: PprPrec -> HsOverLit x -> Bool #
returns hsOverLitNeedsParens
p olTrue
if an overloaded literal
ol
needs to be parenthesized under precedence p
.
hsLitNeedsParens :: PprPrec -> HsLit x -> Bool #
returns hsLitNeedsParens
p lTrue
if a literal l
needs
to be parenthesized under precedence p
.
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 |
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 Compat.HieAst |
Arguments
= XRec p (HsExpr p) | May have |
Located Haskell Expression
Haskell Splice
Constructors
HsTypedSplice (XTypedSplice id) SpliceDecoration (IdP id) (LHsExpr id) | |
HsUntypedSplice (XUntypedSplice id) SpliceDecoration (IdP id) (LHsExpr id) | |
HsQuasiQuote (XQuasiQuote id) (IdP id) (IdP id) SrcSpan FastString | |
HsSpliced (XSpliced id) ThModFinalizers (HsSplicedThing id) | |
XSplice !(XXSplice id) |
A Haskell expression.
Constructors
HsVar (XVar p) (LIdP p) | Variable See Note [Located RdrNames] |
HsUnboundVar (XUnboundVar p) OccName | 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. |
HsConLikeOut (XConLikeOut p) ConLike | After typechecker only; must be different HsVar for pretty printing |
HsRecFld (XRecFld p) (AmbiguousFieldOcc p) | Variable pointing to record selector The parser produces HsVars The renamer renames record-field selectors to HsRecFld The typechecker preserves HsRecFld |
HsOverLabel (XOverLabel p) FastString | Overloaded label (Note [Overloaded labels] in GHC.OverloadedLabels) |
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 (XLam p) (MatchGroup p (LHsExpr p)) | Lambda abstraction. Currently always a single match |
HsLamCase (XLamCase p) (MatchGroup p (LHsExpr p)) | Lambda-case |
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 Arity (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) (HsStmtContext (HsDoRn p)) (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 This case only arises when the OverloadedRecordDot langauge extension is enabled. |
HsProjection | Record field selector. e.g. This case only arises when the OverloadedRecordDot langauge extensions is enabled. |
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
|
HsBracket (XBracket p) (HsBracket p) | |
HsRnBracketOut (XRnBracketOut p) (HsBracket (HsBracketRn p)) [PendingRnSplice' p] | |
HsTcBracketOut (XTcBracketOut p) (Maybe QuoteWrapper) (HsBracket (HsBracketRn p)) [PendingTcSplice' p] | |
HsSpliceE (XSpliceE p) (HsSplice p) | |
HsProc (XProc p) (LPat p) (LHsCmdTop p) |
|
HsStatic (XStatic p) (LHsExpr p) | |
HsTick (XTick p) CoreTickish (LHsExpr p) | |
HsBinTick (XBinTick p) Int Int (LHsExpr p) | |
HsPragE (XPragE p) (HsPragE p) (LHsExpr p) | |
XExpr !(XXExpr p) |
Instances
Guarded Right-Hand Sides
GRHSs are used both for pattern bindings and for Matches
Constructors
GRHSs | |
Fields
| |
XGRHSs !(XXGRHSs p body) |
type family XXWarnDecls x #
Instances
type XXWarnDecls (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXWarnDecl x #
Instances
type XXWarnDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXValBindsLR x x' #
Instances
type XXValBindsLR (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
type family XXTyVarBndr x #
Instances
type XXTyVarBndr (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XXTyFamInstDecl x #
Instances
type XXTyFamInstDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXTyClGroup x #
Instances
type XXTyClGroup (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXTyClDecl x #
Instances
type XXTyClDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXStandaloneKindSig x #
Instances
type XXStandaloneKindSig (GhcPass p) | |
Defined in GHC.Hs.Decls |
type family XXSpliceDecl x #
Instances
type XXSpliceDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XXSplice GhcPs | |
Defined in GHC.Hs.Expr | |
type XXSplice GhcRn | |
Defined in GHC.Hs.Expr | |
type XXSplice GhcTc | |
Defined in GHC.Hs.Expr |
type family XXRuleDecls x #
Instances
type XXRuleDecls (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXRuleDecl x #
Instances
type XXRuleDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXRuleBndr x #
Instances
type XXRuleBndr (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXRoleAnnotDecl x #
Instances
type XXRoleAnnotDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXPatSynBind x x' #
Instances
type XXPatSynBind (GhcPass idL) (GhcPass idR) | |
Defined in GHC.Hs.Binds |
type family XXParStmtBlock x x' #
Instances
type XXParStmtBlock (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Expr |
type family XXMatchGroup x b #
Instances
type XXMatchGroup (GhcPass _1) b | |
Defined in GHC.Hs.Expr |
type family XXLHsQTyVars x #
Instances
type XXLHsQTyVars (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XXInstDecl x #
Instances
type XXInstDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXInjectivityAnn x #
Instances
type XXInjectivityAnn (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXImportDecl x #
Instances
type XXImportDecl (GhcPass _1) | |
Defined in GHC.Hs.ImpExp |
type family XXHsWildCardBndrs x b #
Instances
type XXHsWildCardBndrs (GhcPass _1) _2 | |
Defined in GHC.Hs.Type |
type family XXHsSigType x #
Instances
type XXHsSigType (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XXHsPatSigType x #
Instances
type XXHsPatSigType (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XXHsOuterTyVarBndrs x #
Instances
type XXHsOuterTyVarBndrs (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XXHsLocalBindsLR x x' #
Instances
type XXHsLocalBindsLR (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
type family XXHsIPBinds x #
Instances
type XXHsIPBinds (GhcPass p) | |
Defined in GHC.Hs.Binds |
type family XXHsForAllTelescope x #
Instances
type XXHsForAllTelescope (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XXHsFieldLabel x #
Instances
type XXHsFieldLabel (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XXHsDerivingClause x #
Instances
type XXHsDerivingClause (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXHsDataDefn x #
Instances
type XXHsDataDefn (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXHsBindsLR x x' #
Instances
type XXHsBindsLR (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
type family XXForeignDecl x #
Instances
type XXForeignDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXFixitySig x #
Instances
type XXFixitySig (GhcPass p) | |
Defined in GHC.Hs.Binds |
type family XXFieldOcc x #
Instances
type XXFieldOcc (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XXFamilyResultSig x #
Instances
type XXFamilyResultSig (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXFamilyDecl x #
Instances
type XXFamilyDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
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 |
type family XXDerivDecl x #
Instances
type XXDerivDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXDerivClauseTys x #
Instances
type XXDerivClauseTys (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXDefaultDecl x #
Instances
type XXDefaultDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXConDeclField x #
Instances
type XXConDeclField (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XXClsInstDecl x #
Instances
type XXClsInstDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XXApplicativeArg x #
Instances
type XXApplicativeArg (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XXAmbiguousFieldOcc x #
Instances
type XXAmbiguousFieldOcc (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XXABExport x #
Instances
type XXABExport (GhcPass p) | |
Defined in GHC.Hs.Binds |
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 |
type family XWildCardTy x #
Instances
type XWildCardTy (GhcPass _1) | |
Defined in GHC.Hs.Type |
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 |
Instances
type XWarningD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XViewPat GhcPs | |
Defined in GHC.Hs.Pat | |
type XViewPat GhcRn | |
Defined in GHC.Hs.Pat | |
type XViewPat GhcTc | |
Defined in GHC.Hs.Pat |
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 |
Instances
type XVarPat (GhcPass _1) | |
Defined in GHC.Hs.Pat |
Instances
type XVarBr (GhcPass _1) | |
Defined in GHC.Hs.Expr |
Instances
type XVarBind (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
Instances
type XVar (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type XVar (GhcPass _1) | |
Defined in GHC.Hs.Expr |
Instances
type XValD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XValBinds (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
type family XUserTyVar x #
Instances
type XUserTyVar (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XUntypedSplice x #
Instances
type XUntypedSplice (GhcPass _1) | |
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 |
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 |
type family XTypedSplice x #
Instances
type XTypedSplice (GhcPass _1) | |
Defined in GHC.Hs.Expr |
Instances
type XTypBr (GhcPass _1) | |
Defined in GHC.Hs.Expr |
Instances
type XTyVarSig (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XTyLit (GhcPass _1) | |
Defined in GHC.Hs.Type |
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 |
Instances
type XTyClD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
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 |
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 XTick (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XTcBracketOut x #
Instances
type XTcBracketOut (GhcPass _1) | |
Defined in GHC.Hs.Expr |
Instances
type XTExpBr (GhcPass _1) | |
Defined in GHC.Hs.Expr |
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 |
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 |
Instances
type XStarTy (GhcPass _1) | |
Defined in GHC.Hs.Type |
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 |
Instances
type XSpliced (GhcPass _1) | |
Defined in GHC.Hs.Expr |
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 |
type family XSplicePat x #
Instances
type XSplicePat (GhcPass _1) | |
Defined in GHC.Hs.Pat |
type family XSpliceDecl x #
Instances
type XSpliceDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XSpliceD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XSpecInstSig x #
Instances
type XSpecInstSig (GhcPass p) | |
Defined in GHC.Hs.Binds |
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 |
Instances
type XSigD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XSCCFunSig x #
Instances
type XSCCFunSig (GhcPass p) | |
Defined in GHC.Hs.Binds |
Instances
type XRuleD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XRuleBndrSig x #
Instances
type XRuleBndrSig (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XRoleAnnotD x #
Instances
type XRoleAnnotD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XRnBracketOut x #
Instances
type XRnBracketOut (GhcPass _1) | |
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 |
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 XRecFld (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type XRecFld (GhcPass _1) | |
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 |
type family XQuasiQuote x #
Instances
type XQuasiQuote (GhcPass _1) | |
Defined in GHC.Hs.Expr |
Instances
type XQualTy (GhcPass _1) | |
Defined in GHC.Hs.Type |
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 XPragE (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XPatSynSig x #
Instances
type XPatSynSig (GhcPass p) | |
Defined in GHC.Hs.Binds |
type family XPatSynBind x x' #
Instances
type XPatSynBind (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
Instances
type XPatBr (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XParStmtBlock x x' #
Instances
type XParStmtBlock (GhcPass pL) (GhcPass pR) | |
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 |
Instances
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 |
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 XOpTy (GhcPass _1) | |
Defined in GHC.Hs.Type |
Instances
type XNoSig (GhcPass _1) | |
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 |
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 |
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 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 XMissing GhcPs | |
Defined in GHC.Hs.Expr | |
type XMissing GhcRn | |
Defined in GHC.Hs.Expr | |
type XMissing GhcTc | |
Defined in GHC.Hs.Expr |
type family XMinimalSig x #
Instances
type XMinimalSig (GhcPass p) | |
Defined in GHC.Hs.Binds |
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 XLitPat (GhcPass _1) | |
Defined in GHC.Hs.Pat |
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 XLazyPat GhcPs | |
Defined in GHC.Hs.Pat | |
type XLazyPat GhcRn | |
Defined in GHC.Hs.Pat | |
type XLazyPat GhcTc | |
Defined in GHC.Hs.Pat |
type family XLastStmt x x' b #
Instances
type XLastStmt (GhcPass _1) (GhcPass _2) b | |
Defined in GHC.Hs.Expr |
Instances
type XLam (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type XLam (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XKindedTyVar x #
Instances
type XKindedTyVar (GhcPass _1) | |
Defined in GHC.Hs.Type |
Instances
type XKindSigD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XInstD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XInlineSig x #
Instances
type XInlineSig (GhcPass p) | |
Defined in GHC.Hs.Binds |
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 XIdSig (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 |
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 XIEThingWith x #
Instances
type XIEThingWith (GhcPass 'Parsed) | |
Defined in GHC.Hs.ImpExp | |
type XIEThingWith (GhcPass 'Renamed) | |
Defined in GHC.Hs.ImpExp | |
type XIEThingWith (GhcPass 'Typechecked) | |
Defined in GHC.Hs.ImpExp |
type family XIEThingAll x #
Instances
type XIEThingAll (GhcPass _1) | |
Defined in GHC.Hs.ImpExp |
type family XIEThingAbs x #
Instances
type XIEThingAbs (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 |
Instances
type XIEGroup (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 |
type family XHsWordPrim x #
Instances
type XHsWordPrim (GhcPass _1) | |
Defined in GHC.Hs.Lit |
type family XHsWord64Prim x #
Instances
type XHsWord64Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit |
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 XHsValBinds x x' #
Instances
type XHsValBinds (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
type family XHsStringPrim x #
Instances
type XHsStringPrim (GhcPass _1) | |
Defined in GHC.Hs.Lit |
Instances
type XHsString (GhcPass _1) | |
Defined in GHC.Hs.Lit |
Instances
type XHsSig (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XHsRecField x #
Instances
type XHsRecField _1 | |
Defined in GHC.Hs.Pat |
Instances
type XHsRat (GhcPass _1) | |
Defined in GHC.Hs.Lit |
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 |
Instances
type XHsPS GhcPs | |
Defined in GHC.Hs.Type | |
type XHsPS GhcRn | |
Defined in GHC.Hs.Type | |
type XHsPS GhcTc | |
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 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 XHsInteger x #
Instances
type XHsInteger (GhcPass _1) | |
Defined in GHC.Hs.Lit |
type family XHsIntPrim x #
Instances
type XHsIntPrim (GhcPass _1) | |
Defined in GHC.Hs.Lit |
type family XHsInt64Prim x #
Instances
type XHsInt64Prim (GhcPass _1) | |
Defined in GHC.Hs.Lit |
Instances
type XHsInt (GhcPass _1) | |
Defined in GHC.Hs.Lit |
type family XHsIPBinds x x' #
Instances
type XHsIPBinds (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
type family XHsForAllVis x #
Instances
type XHsForAllVis (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XHsForAllInvis x #
Instances
type XHsForAllInvis (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XHsFloatPrim x #
Instances
type XHsFloatPrim (GhcPass _1) | |
Defined in GHC.Hs.Lit |
type family XHsDoublePrim x #
Instances
type XHsDoublePrim (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 XHsAnnotation x #
Instances
type XHsAnnotation (GhcPass _1) | |
Defined in GHC.Hs.Decls |
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 |
Instances
type XFunTy (GhcPass _1) | |
Defined in GHC.Hs.Type |
Instances
type XFunBind (GhcPass pL) GhcPs | |
Defined in GHC.Hs.Binds | |
type XFunBind (GhcPass pL) GhcRn | |
Defined in GHC.Hs.Binds | |
type XFunBind (GhcPass pL) GhcTc | |
Defined in GHC.Hs.Binds |
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 |
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 |
Instances
type XForD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XForAllTy (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XFixitySig x #
Instances
type XFixitySig (GhcPass p) | |
Defined in GHC.Hs.Binds |
Instances
type XFamDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
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 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 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 |
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 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 |
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 XExpBr (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XEmptyLocalBinds x x' #
Instances
type XEmptyLocalBinds (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
Instances
type XDocD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
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 XDerivD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XDefD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XDecBrL (GhcPass _1) | |
Defined in GHC.Hs.Expr |
Instances
type XDecBrG (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XDctSingle x #
Instances
type XDctSingle (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XDctMulti (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XDataFamInstD x #
Instances
type XDataFamInstD GhcPs | |
Defined in GHC.Hs.Decls | |
type XDataFamInstD GhcRn | |
Defined in GHC.Hs.Decls | |
type XDataFamInstD 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 XConPat GhcPs | |
Defined in GHC.Hs.Pat | |
type XConPat GhcRn | |
Defined in GHC.Hs.Pat | |
type XConPat GhcTc | |
Defined in GHC.Hs.Pat |
type family XConLikeOut x #
Instances
type XConLikeOut (GhcPass _1) | |
Defined in GHC.Hs.Expr | |
type XConLikeOut (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XConDeclH98 x #
Instances
type XConDeclH98 (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XConDeclGADT x #
Instances
type XConDeclGADT (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XConDeclField x #
Instances
type XConDeclField (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XCompleteMatchSig x #
Instances
type XCompleteMatchSig (GhcPass p) | |
Defined in GHC.Hs.Binds |
Instances
type XCmdWrap (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 |
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 |
type family XCmdLamCase x #
Instances
type XCmdLamCase (GhcPass _1) | |
Defined in GHC.Hs.Expr |
Instances
type XCmdLam (GhcPass _1) | |
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 |
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 XCmdCase GhcPs | |
Defined in GHC.Hs.Expr | |
type XCmdCase GhcRn | |
Defined in GHC.Hs.Expr | |
type XCmdCase GhcTc | |
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 XClsInstD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XClassOpSig x #
Instances
type XClassOpSig (GhcPass p) | |
Defined in GHC.Hs.Binds |
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 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 XCTyFamInstDecl x #
Instances
type XCTyFamInstDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XCTyClGroup x #
Instances
type XCTyClGroup (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 XCRuleBndr x #
Instances
type XCRuleBndr (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 XCKindSig (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XCInjectivityAnn x #
Instances
type XCInjectivityAnn (GhcPass _1) | |
Defined in GHC.Hs.Decls |
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 |
Instances
type XCHsGroup (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XCHsFieldLabel x #
Instances
type XCHsFieldLabel (GhcPass _1) | |
Defined in GHC.Hs.Expr |
type family XCHsDerivingClause x #
Instances
type XCHsDerivingClause (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XCHsDataDefn x #
Instances
type XCHsDataDefn (GhcPass _1) | |
Defined in GHC.Hs.Decls |
Instances
type XCGRHSs (GhcPass _1) _2 | |
Defined in GHC.Hs.Expr |
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 XCFamilyDecl x #
Instances
type XCFamilyDecl (GhcPass _1) | |
Defined in GHC.Hs.Decls |
type family XCDerivDecl x #
Instances
type XCDerivDecl (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 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 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 |
Instances
type XBinTick (GhcPass _1) | |
Defined in GHC.Hs.Expr |
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 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 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 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 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 XApplicativeArgMany x #
Instances
type XApplicativeArgMany (GhcPass _1) | |
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 XAppTy (GhcPass _1) | |
Defined in GHC.Hs.Type |
type family XAppKindTy x #
Instances
type XAppKindTy (GhcPass _1) | |
Defined in GHC.Hs.Type |
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 |
Instances
type XAnnD (GhcPass _1) | |
Defined in GHC.Hs.Decls |
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 |
Instances
type XAbsBinds (GhcPass pL) (GhcPass pR) | |
Defined in GHC.Hs.Binds |
Instances
type XABE (GhcPass p) | |
Defined in GHC.Hs.Binds |
The trivial wrapper that carries no additional information See Note [XRec and SrcSpans in the AST]
We can strip off the XRec to access the underlying data. See Note [XRec and SrcSpans in the AST]
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 |
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 NoExtCon
, 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 # | |
Outputable NoExtField | |
Defined in Language.Haskell.Syntax.Extension Methods ppr :: NoExtField -> SDoc # | |
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 Compat.HieAst Methods toHie :: Context (Located NoExtField) -> HieM [HieAST Type] |
Used in TTG extension constructors that have yet to be extended with
anything. If an extension constructor has NoExtCon
as its field, it is
not intended to ever be constructed anywhere, and any function that consumes
the extension constructor can eliminate it by way of noExtCon
.
This should not be confused with NoExtField
, which are found in unused
extension points (not constructors) and therefore can be inhabited.
Instances
Data NoExtCon | |
Defined in Language.Haskell.Syntax.Extension Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NoExtCon -> c NoExtCon # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NoExtCon # toConstr :: NoExtCon -> Constr # dataTypeOf :: NoExtCon -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NoExtCon) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NoExtCon) # gmapT :: (forall b. Data b => b -> b) -> NoExtCon -> NoExtCon # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NoExtCon -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NoExtCon -> r # gmapQ :: (forall d. Data d => d -> u) -> NoExtCon -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> NoExtCon -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> NoExtCon -> m NoExtCon # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NoExtCon -> m NoExtCon # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NoExtCon -> m NoExtCon # | |
Outputable NoExtCon | |
Defined in Language.Haskell.Syntax.Extension | |
Eq NoExtCon | |
Ord NoExtCon | |
Defined in Language.Haskell.Syntax.Extension |
We can map over the underlying type contained in an XRec
while preserving
the annotation as is.
Maps the "normal" id type for a given pass
type family Anno a = (b :: Type) #
Instances
Used when constructing a term with an unused extension point.
data SrcUnpackedness #
Source Unpackedness
What unpackedness the user requested
Constructors
SrcUnpack | {-# UNPACK #-} specified |
SrcNoUnpack | {-# NOUNPACK #-} specified |
NoSrcUnpack | no unpack pragma |
Instances
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 GHC.Core.DataCon 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 # | |
Binary SrcStrictness | |
Defined in GHC.Core.DataCon Methods put_ :: BinHandle -> SrcStrictness -> IO () # put :: BinHandle -> SrcStrictness -> IO (Bin SrcStrictness) # get :: BinHandle -> IO SrcStrictness # | |
Outputable SrcStrictness | |
Defined in GHC.Core.DataCon Methods ppr :: SrcStrictness -> SDoc # | |
Eq SrcStrictness | |
Defined in GHC.Core.DataCon Methods (==) :: SrcStrictness -> SrcStrictness -> Bool # (/=) :: SrcStrictness -> SrcStrictness -> Bool # |
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
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 # | |
Outputable HsSrcBang | |
Defined in GHC.Core.DataCon |
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 | Strict but not unpacked field |
HsUnpack (Maybe Coercion) | Strict and unpacked field co :: arg-ty ~ product-ty HsBang |
Instances
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 # | |
Outputable HsImplBang | |
Defined in GHC.Core.DataCon Methods ppr :: HsImplBang -> SDoc # |
Mult is a type alias for Type.
Mult must contain Type because multiplicity variables are mere type variables (of kind Multiplicity) in Haskell. So the simplest implementation is to make Mult be Type.
Multiplicities can be formed with: - One: GHC.Types.One (= oneDataCon) - Many: GHC.Types.Many (= manyDataCon) - Multiplication: GHC.Types.MultMul (= multMulTyCon)
So that Mult feels a bit more structured, we provide pattern synonyms and smart constructors for these.
data SpliceExplicitFlag #
Constructors
ExplicitSplice | = $(f x y) |
ImplicitSplice | = f x y, i.e. a naked top level expression |
Instances
Data SpliceExplicitFlag | |
Defined in GHC.Types.Basic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SpliceExplicitFlag -> c SpliceExplicitFlag # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SpliceExplicitFlag # toConstr :: SpliceExplicitFlag -> Constr # dataTypeOf :: SpliceExplicitFlag -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SpliceExplicitFlag) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SpliceExplicitFlag) # gmapT :: (forall b. Data b => b -> b) -> SpliceExplicitFlag -> SpliceExplicitFlag # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SpliceExplicitFlag -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SpliceExplicitFlag -> r # gmapQ :: (forall d. Data d => d -> u) -> SpliceExplicitFlag -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SpliceExplicitFlag -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SpliceExplicitFlag -> m SpliceExplicitFlag # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SpliceExplicitFlag -> m SpliceExplicitFlag # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SpliceExplicitFlag -> m SpliceExplicitFlag # |
module GHC.Rename.Names
module GHC.Rename.Splice
module GHC.Tc.Instance.Family
module GHC.Tc.Module
module GHC.Tc.Types
type TcMCoercionR = MCoercionR #
type TcMCoercionN = MCoercionN #
type TcMCoercion = MCoercion #
Constructors
TcEvBinds EvBindsVar | |
EvBinds (Bag EvBind) |
Instances
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 # | |
Outputable TcEvBinds | |
Defined in GHC.Tc.Types.Evidence | |
ToHie (EvBindContext (LocatedA TcEvBinds)) | |
type TcCoercionR = CoercionR #
type TcCoercionP = CoercionP #
type TcCoercionN = CoercionN #
type TcCoercion = Coercion #
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 # |
Constructors
Instances
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 # | |
Outputable HsWrapper | |
Defined in GHC.Tc.Types.Evidence | |
ToHie (LocatedA HsWrapper) | |
data HoleExprRef #
Where to store evidence for expression holes See Note [Holes] in GHC.Tc.Types.Constraint
Constructors
HER | |
Instances
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 # | |
Outputable HoleExprRef | |
Defined in GHC.Tc.Types.Evidence Methods ppr :: HoleExprRef -> SDoc # |
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
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 # | |
Outputable EvTypeable | |
Defined in GHC.Tc.Types.Evidence Methods ppr :: EvTypeable -> SDoc # |
Constructors
EvExpr EvExpr | |
EvTypeable Type EvTypeable | |
EvFun | |
Instances
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 # | |
Outputable EvTerm | |
Defined in GHC.Tc.Types.Evidence |
data EvCallStack #
Evidence for CallStack
implicit parameters.
Constructors
EvCsEmpty | |
EvCsPushCall Name RealSrcSpan EvExpr |
|
Instances
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 # | |
Outputable EvCallStack | |
Defined in GHC.Tc.Types.Evidence Methods ppr :: EvCallStack -> SDoc # |
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
EvBindMap | |
Fields |
Instances
Outputable EvBindMap | |
Defined in GHC.Tc.Types.Evidence |
Instances
Outputable EvBind | |
Defined in GHC.Tc.Types.Evidence |
varSetMinusEvBindMap :: VarSet -> EvBindMap -> VarSet #
unwrapIP :: Type -> CoercionR #
Create a Expr
that unwraps an implicit-parameter or
overloaded-label dictionary to expose the underlying value. We
expect the Expr
to have the form `IP sym ty` or `IsLabel sym ty`,
and return a Expr
`co :: IP sym ty ~ ty` or
`co :: IsLabel sym ty ~ ty`. See also
Note [Type-checking overloaded labels] in GHC.Tc.Gen.Expr.
tcDowngradeRole :: Role -> Role -> TcCoercion -> TcCoercion #
tcCoercionRole :: TcCoercion -> Role #
tcCoercionKind :: TcCoercion -> Pair TcType #
quoteWrapperTyVarTy :: QuoteWrapper -> Type #
nonDetStrictFoldEvBindMap :: (EvBind -> a -> a) -> a -> EvBindMap -> a #
mkWpTyLams :: [TyVar] -> HsWrapper #
mkWpTyApps :: [Type] -> HsWrapper #
mkWpEvVarApps :: [EvVar] -> HsWrapper #
mkWpEvApps :: [EvTerm] -> HsWrapper #
mkWpCastR :: TcCoercionR -> HsWrapper #
mkWpCastN :: TcCoercionN -> HsWrapper #
mkWantedEvBind :: EvVar -> EvTerm -> EvBind #
mkTcUnbranchedAxInstCo :: CoAxiom Unbranched -> [TcType] -> [TcCoercion] -> TcCoercionR #
mkTcTyConAppCo :: Role -> TyCon -> [TcCoercion] -> TcCoercion #
mkTcTransCo :: TcCoercion -> TcCoercion -> TcCoercion #
mkTcSymMCo :: TcMCoercion -> TcMCoercion #
mkTcSymCo :: TcCoercion -> TcCoercion #
mkTcSubCo :: HasDebugCallStack => TcCoercionN -> TcCoercionR #
mkTcRepReflCo :: TcType -> TcCoercionR #
mkTcReflCo :: Role -> TcType -> TcCoercion #
mkTcPhantomCo :: TcCoercionN -> TcType -> TcType -> TcCoercionP #
mkTcNthCo :: Role -> Int -> TcCoercion -> TcCoercion #
mkTcNomReflCo :: TcType -> TcCoercionN #
mkTcLRCo :: LeftOrRight -> TcCoercion -> TcCoercion #
mkTcKindCo :: TcCoercion -> TcCoercionN #
mkTcGReflRightMCo :: Role -> TcType -> TcMCoercionN -> TcCoercion #
mkTcGReflRightCo :: Role -> TcType -> TcCoercionN -> TcCoercion #
mkTcGReflLeftMCo :: Role -> TcType -> TcMCoercionN -> TcCoercion #
mkTcGReflLeftCo :: Role -> TcType -> TcCoercionN -> TcCoercion #
mkTcFunCo :: Role -> TcCoercion -> TcCoercion -> TcCoercion -> TcCoercion #
mkTcForAllCos :: [(TyVar, TcCoercionN)] -> TcCoercion -> TcCoercion #
mkTcForAllCo :: TyVar -> TcCoercionN -> TcCoercion -> TcCoercion #
mkTcFamilyTyConAppCo :: TyCon -> [TcCoercionN] -> TcCoercionN #
mkTcCoherenceRightCo :: Role -> TcType -> TcCoercionN -> TcCoercion -> TcCoercion #
mkTcCoherenceLeftCo :: Role -> TcType -> TcCoercionN -> TcCoercion -> TcCoercion #
mkTcCoVarCo :: CoVar -> TcCoercion #
mkTcAxiomRuleCo :: CoAxiomRule -> [TcCoercion] -> TcCoercionR #
mkTcAxInstCo :: forall (br :: BranchFlag). Role -> CoAxiom br -> BranchIndex -> [TcType] -> [TcCoercion] -> TcCoercion #
mkTcAppCo :: TcCoercion -> TcCoercionN -> TcCoercion #
mkGivenEvBind :: EvVar -> EvTerm -> EvBind #
mkEvScSelectors :: Class -> [TcType] -> [(TcPredType, EvExpr)] #
mkEvCast :: EvExpr -> TcCoercion -> EvTerm #
maybeTcSymCo :: SwapFlag -> TcCoercion -> TcCoercion #
maybeTcSubCo :: HasDebugCallStack => EqRel -> TcCoercionN -> TcCoercion #
If the EqRel is ReprEq, makes a SubCo; otherwise, does nothing. Note that the input coercion should always be nominal.
isTcReflexiveCo :: TcCoercion -> Bool #
This version does a slow check, calculating the related types and seeing if they are equal.
isTcReflCo :: TcCoercion -> Bool #
isIdHsWrapper :: HsWrapper -> Bool #
isEmptyTcEvBinds :: TcEvBinds -> Bool #
isEmptyEvBindMap :: EvBindMap -> Bool #
isCoEvBindsVar :: EvBindsVar -> 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!
foldEvBindMap :: (EvBind -> a -> a) -> a -> EvBindMap -> a #
findNeededEvVars :: EvBindMap -> VarSet -> VarSet #
extendEvBinds :: EvBindMap -> EvBind -> EvBindMap #
evVarsOfTerm :: EvTerm -> VarSet #
evTypeable :: Type -> EvTypeable -> EvTerm #
evTermCoercion :: EvTerm -> TcCoercion #
evCoercion :: TcCoercion -> EvTerm #
evCast :: EvExpr -> TcCoercion -> EvTerm #
d |> co
evBindMapToVarSet :: EvBindMap -> VarSet #
evBindMapBinds :: EvBindMap -> Bag EvBind #
collectHsWrapBinders :: HsWrapper -> ([Var], HsWrapper) #
applyQuoteWrapper :: QuoteWrapper -> HsWrapper #
Convert the QuoteWrapper into a normal HsWrapper which can be used to apply its contents.
data CoercionHole #
A coercion to be filled in by the type-checker. See Note [Coercion holes]
Instances
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 # | |
Uniquable CoercionHole | |
Defined in GHC.Core.TyCo.Rep Methods getUnique :: CoercionHole -> Unique # | |
Outputable CoercionHole | |
Defined in GHC.Core.TyCo.Rep Methods ppr :: CoercionHole -> SDoc # |
Constructors
Nominal | |
Representational | |
Phantom |
Instances
Data Role | |
Defined in GHC.Core.Coercion.Axiom 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 # | |
Binary Role | |
Outputable Role | |
Defined in GHC.Core.Coercion.Axiom | |
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
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 # | |
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 # | |
Eq LeftOrRight | |
Defined in GHC.Types.Basic |
pickLR :: LeftOrRight -> (a, a) -> a #
module GHC.Tc.Utils.Env
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.
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 empty
For 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 empty
For 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 $ z
The 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]
data IsExtraConstraint #
Constructors
YesExtraConstraint | |
NoExtraConstraint |
Instances
Outputable IsExtraConstraint | |
Defined in GHC.Tc.Utils.Monad Methods ppr :: IsExtraConstraint -> SDoc # |
writeTcRef :: TcRef a -> a -> TcRnIf gbl lcl () #
wrapLocMA_ :: (a -> TcM ()) -> LocatedA a -> TcM () #
wrapLocMA :: (a -> TcM b) -> GenLocated (SrcSpanAnn' ann) a -> TcRn (GenLocated (SrcSpanAnn' ann) b) #
woptM :: WarningFlag -> TcRnIf gbl lcl Bool #
withoutDynamicNow :: TcRnIf gbl lcl a -> TcRnIf gbl lcl a #
withException :: TcRnIf gbl lcl (MaybeErr SDoc a) -> TcRnIf gbl lcl a #
A convenient wrapper for taking a MaybeErr SDoc a
and throwing
an exception if it is an error.
withDynamicNow :: TcRnIf gbl lcl a -> TcRnIf gbl lcl a #
whenWOptM :: WarningFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () #
whenNoErrs :: TcM () -> TcM () #
whenGOptM :: GeneralFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () #
warnTcM :: WarnReason -> Bool -> (TidyEnv, SDoc) -> TcM () #
Display a warning if a condition is met.
warnIfFlag :: WarningFlag -> Bool -> SDoc -> TcRn () #
Display a warning if a condition is met, and the warning is enabled
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.
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.
unsetXOptM :: Extension -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a #
unsetWOptM :: WarningFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a #
unsetGOptM :: GeneralFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a #
unlessXOptM :: Extension -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () #
tryTcDiscardingErrs :: TcM r -> TcM r -> TcM r #
tryCaptureConstraints :: TcM a -> TcM (Maybe a, WantedConstraints) #
traceTcConstraints :: String -> TcM () #
traceOptTcRn :: DumpFlag -> SDoc -> TcRn () #
traceOptIf :: DumpFlag -> SDoc -> TcRnIf m n () #
traceHiDiffs :: SDoc -> TcRnIf m n () #
tcScalingUsage :: Mult -> TcM a -> TcM a #
tcScalingUsage mult thing_inside
runs thing_inside
and scales all the
usage information by mult
.
tcIsHsBootOrSig :: TcRn Bool #
tcEmitBindingUsage :: UsageEnv -> TcM () #
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.
setTcLevel :: TcLevel -> TcM a -> TcM a #
setTcEvBindsMap :: EvBindsVar -> EvBindMap -> TcM () #
setSrcSpanA :: SrcSpanAnn' ann -> TcRn a -> TcRn a #
setSrcSpan :: SrcSpan -> TcRn a -> TcRn a #
setLocalRdrEnv :: LocalRdrEnv -> RnM a -> RnM a #
setLclTypeEnv :: TcLclEnv -> TcM a -> TcM a #
setImplicitEnvM :: TypeEnv -> IfL a -> IfL a #
setErrsVar :: TcRef (Messages DecoratedSDoc) -> TcRn a -> TcRn a #
setErrCtxt :: [ErrCtxt] -> TcM a -> TcM a #
setConstraintVar :: TcRef WantedConstraints -> TcM a -> TcM a #
reportWarning :: WarnReason -> MsgEnvelope DecoratedSDoc -> TcRn () #
reportErrors :: [MsgEnvelope DecoratedSDoc] -> TcM () #
reportError :: MsgEnvelope DecoratedSDoc -> TcRn () #
recordUnsafeInfer :: WarningMessages -> 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.
recordThUse :: TcM () #
recordThSpliceUse :: TcM () #
pushTcLevelM_ :: TcM a -> TcM a #
pushTcLevelM :: TcM a -> TcM (TcLevel, a) #
pushLevelAndCaptureConstraints :: TcM a -> TcM (TcLevel, WantedConstraints, a) #
The name says it all. The returned TcLevel is the *inner* TcLevel.
printForUserTcRn :: SDoc -> TcRn () #
Like logInfoTcRn, but for user consumption
popErrCtxt :: TcM a -> TcM a #
newUniqueSupply :: TcRnIf gbl lcl UniqSupply #
newSysName :: OccName -> TcRnIf gbl lcl Name #
newSysLocalIds :: FastString -> [Scaled TcType] -> TcRnIf gbl lcl [TcId] #
newSysLocalId :: FastString -> Mult -> TcType -> TcRnIf gbl lcl TcId #
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
newArrowScope :: TcM a -> TcM a #
mkLongErrAt :: SrcSpan -> SDoc -> SDoc -> TcRn (MsgEnvelope DecoratedSDoc) #
mkIfLclEnv :: Module -> SDoc -> IsBootInterface -> IfLclEnv #
Arguments
:: SrcSpan | |
-> SDoc | The important part of the message |
-> SDoc | The context of the message |
-> SDoc | Any supplementary information. |
-> TcRn (MsgEnvelope DecoratedSDoc) |
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
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
isTouchableTcM :: TcTyVar -> TcM Bool #
initTcWithGbl :: HscEnv -> TcGblEnv -> RealSrcSpan -> TcM r -> IO (Messages DecoratedSDoc, Maybe r) #
Run a TcM
action in the context of an existing GblEnv
.
initTcInteractive :: HscEnv -> TcM a -> IO (Messages DecoratedSDoc, Maybe a) #
initTc :: HscEnv -> HscSource -> Bool -> Module -> RealSrcSpan -> TcM r -> IO (Messages DecoratedSDoc, Maybe r) #
Setup the initial typechecking environment
initIfaceTcRn :: IfG a -> TcRn a #
initIfaceLoad :: HscEnv -> IfG a -> IO a #
initIfaceLclWithSubst :: Module -> SDoc -> IsBootInterface -> NameShape -> IfL a -> IfM lcl a #
initIfaceLcl :: Module -> SDoc -> IsBootInterface -> IfL a -> IfM lcl a #
inGeneratedCode :: TcRn Bool #
goptM :: GeneralFlag -> TcRnIf gbl lcl Bool #
getTcLevel :: TcM TcLevel #
getTcEvTyCoVars :: EvBindsVar -> TcM TyCoVarSet #
getTcEvBindsMap :: EvBindsVar -> TcM EvBindMap #
getStageAndBindLevel :: Name -> TcRn (Maybe (TopLevelFlag, ThLevel, ThStage)) #
getSrcSpanM :: TcRn SrcSpan #
getRdrEnvs :: TcRn (GlobalRdrEnv, LocalRdrEnv) #
getIfModule :: IfL Module #
getHpt :: TcRnIf gbl lcl HomePackageTable #
getGhcMode :: TcRnIf gbl lcl GhcMode #
getGHCiMonad :: TcRn Name #
getErrsVar :: TcRn (TcRef (Messages DecoratedSDoc)) #
getErrCtxt :: TcM [ErrCtxt] #
getEpsVar :: TcRnIf gbl lcl (TcRef ExternalPackageState) #
getEpsAndHpt :: TcRnIf gbl lcl (ExternalPackageState, HomePackageTable) #
getEps :: TcRnIf gbl lcl ExternalPackageState #
getDeclaredDefaultTys :: TcRn (Maybe [Type]) #
getCCIndexTcM :: FastString -> TcM CostCentreIndex #
See getCCIndexM
.
getCCIndexM :: (gbl -> TcRef CostCentreState) -> FastString -> TcRnIf gbl lcl CostCentreIndex #
Get the next cost centre index associated with a given name.
forkM_maybe :: SDoc -> IfL a -> IfL (Maybe a) #
Run thing_inside in an interleaved thread. It shares everything with the parent thread, so this is DANGEROUS.
It returns Nothing if the computation fails
It's used for lazily type-checking interface signatures, which is pretty benign.
See Note [Masking exceptions in forkM_maybe]
foldAndRecoverM :: (b -> a -> TcRn b) -> b -> [a] -> TcRn b #
The accumulator is not updated if the action fails
fixSafeInstances :: SafeHaskellMode -> [ClsInst] -> [ClsInst] #
Switch instances to safe instances if we're in Safe mode.
finalSafeMode :: DynFlags -> TcGblEnv -> IO SafeHaskellMode #
Figure out the final correct safe haskell mode
failWithTcM :: (TidyEnv, SDoc) -> TcM a #
failWithTc :: SDoc -> TcM a #
failIfErrsM :: TcRn () #
escapeArrowScope :: TcM a -> TcM a #
emitStaticConstraints :: WantedConstraints -> TcM () #
emitSimples :: Cts -> TcM () #
emitSimple :: Ct -> TcM () #
emitNamedTypeHole :: (Name, TcTyVar) -> TcM () #
emitInsoluble :: Ct -> TcM () #
emitImplications :: Bag Implication -> TcM () #
emitImplication :: Implication -> TcM () #
emitConstraints :: WantedConstraints -> TcM () #
emitAnonTypeHole :: IsExtraConstraint -> TcTyVar -> TcM () #
dumpOptTcRn :: DumpFlag -> String -> DumpFormat -> SDoc -> TcRn () #
Dump if the given DumpFlag
is set.
discardWarnings :: TcRn a -> TcRn a #
discardResult :: TcM a -> TcM () #
discardErrs :: TcRn a -> TcRn a #
discardConstraints :: TcM a -> TcM a #
Throw out any constraints emitted by the thing_inside
cloneLocalName :: Name -> TcM Name #
cloneEvBindsVar :: EvBindsVar -> TcM EvBindsVar #
checkNoErrs :: TcM r -> TcM r #
captureConstraints :: TcM a -> TcM (a, WantedConstraints) #
add_warn :: WarnReason -> SDoc -> SDoc -> TcRn () #
Display a warning, with an optional flag, for the current source location.
addWarnTcM :: WarnReason -> (TidyEnv, SDoc) -> TcM () #
Display a warning in a given context.
addWarnTc :: WarnReason -> SDoc -> TcM () #
Display a warning in the current context.
addWarnAt :: WarnReason -> SrcSpan -> SDoc -> TcRn () #
Display a warning for a given source location.
addWarn :: WarnReason -> SDoc -> TcRn () #
Display a warning for the current source location.
addTcEvBind :: EvBindsVar -> EvBind -> TcM () #
addModFinalizersWithLclEnv :: ThModFinalizers -> TcM () #
Adds the given modFinalizers to the global environment and set them to use the current local environment.
addMessages :: Messages DecoratedSDoc -> TcRn () #
addLocMA :: (a -> TcM b) -> GenLocated (SrcSpanAnn' ann) a -> TcM b #
addLandmarkErrCtxtM :: (TidyEnv -> TcM (TidyEnv, SDoc)) -> TcM a -> TcM a #
Variant of addLandmarkErrCtxt
that allows for monadic operations
and 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.
addErrCtxtM :: (TidyEnv -> TcM (TidyEnv, SDoc)) -> TcM a -> TcM a #
Add a message to the error context. This message may do tidying.
addErrCtxt :: SDoc -> TcM a -> TcM a #
Add a fixed message to the error context. This message should not do any tidying.
addDependentFiles :: [FilePath] -> TcRn () #
Constructors
ImportByUser IsBootInterface | |
ImportBySystem | |
ImportByPlugin |
Instances
Outputable WhereFrom | |
Defined in GHC.Tc.Types |
Constructors
Splice SpliceType | |
RunSplice (TcRef [ForeignRef (Q ())]) | |
Comp | |
Brack ThStage PendingStuff |
Instances
Outputable ThStage | |
Defined in GHC.Tc.Types |
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 |
Constructors
TcIdSig TcIdSigInfo | |
TcPatSynSig TcPatSynInfo |
Instances
Outputable TcSigInfo | |
Defined in GHC.Tc.Types |
type TcPluginSolver = [Ct] -> [Ct] -> [Ct] -> TcPluginM TcPluginResult #
data TcPluginResult #
Constructors
TcPluginContradiction [Ct] | The plugin found a contradiction. The returned constraints are removed from the inert set, and recorded as insoluble. |
TcPluginOk [(EvTerm, Ct)] [Ct] | The first field is for constraints that were solved. These are removed from the inert set, and the evidence for them is recorded. The second field contains new work, that should be processed by the constraint solver. |
Instances
Constructors
TcPlugin | |
Fields
|
data TcPatSynInfo #
Constructors
TPSI | |
Fields |
Instances
Outputable TcPatSynInfo | |
Defined in GHC.Tc.Types Methods ppr :: TcPatSynInfo -> SDoc # |
data TcIdSigInst #
Constructors
TISI | |
Fields
|
Instances
Outputable TcIdSigInst | |
Defined in GHC.Tc.Types Methods ppr :: TcIdSigInst -> SDoc # |
data TcIdSigInfo #
Constructors
CompleteSig | |
PartialSig | |
Fields
|
Instances
Outputable TcIdSigInfo | |
Defined in GHC.Tc.Types Methods ppr :: TcIdSigInfo -> SDoc # |
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 # |
type TcBinderStack = [TcBinder] #
Constructors
TcIdBndr TcId TopLevelFlag | |
TcIdBndr_ExpType Name ExpType TopLevelFlag | |
TcTvBndr Name TyVar |
Instances
HasOccName TcBinder | |
Defined in GHC.Tc.Types | |
Outputable TcBinder | |
Defined in GHC.Tc.Types |
type THDocs = Map DocLoc String #
The current collection of docs that Template Haskell has built up via putDoc.
data SpliceType #
data SelfBootInfo #
Constructors
NoSelfBoot | |
SelfBoot | |
Fields
|
type RoleAnnotEnv = NameEnv (LRoleAnnotDecl GhcRn) #
type RecFieldEnv = NameEnv [FieldLabel] #
data PromotionErr #
Constructors
TyConPE | |
ClassPE | |
FamDataConPE | |
ConstrainedDataConPE PredType | |
PatSynPE | |
RecDataConPE | |
NoDataKindsTC | |
NoDataKindsDC |
Instances
Outputable PromotionErr | |
Defined in GHC.Tc.Types Methods ppr :: PromotionErr -> SDoc # |
data PendingStuff #
Constructors
RnPendingUntyped (TcRef [PendingRnSplice]) | |
RnPendingTyped | |
TcPending (TcRef [PendingTcSplice]) (TcRef WantedConstraints) QuoteWrapper |
A NameShape
is a substitution on Name
s 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 intruiging thing about a NameShape
, however, is
how it's constructed. A NameShape
is *implied* by the
exported AvailInfo
s 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 AvailInfo
s 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
|
data IsGroupClosed #
IsGroupClosed describes a group of mutually-recursive bindings
Constructors
IsGroupClosed (NameEnv RhsNames) ClosedTypeId |
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
|
Constructors
IfLclEnv | |
Fields
|
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 Methods ppr :: IdBindingInfo -> SDoc # |
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 |
Instances
ContainsHooks (Env gbl lcl) | |
Defined in GHC.Tc.Types Methods extractHooks :: Env gbl lcl -> Hooks # | |
ContainsDynFlags (Env gbl lcl) | |
Defined in GHC.Tc.Types Methods extractDynFlags :: Env gbl lcl -> DynFlags # | |
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 # |
This is a mirror of Template Haskell's DocLoc, but the TH names are resolved to GHC names.
type ClosedTypeId = Bool #
Constructors
NoArrowCtxt | |
ArrowCtxt LocalRdrEnv (TcRef WantedConstraints) |
unsafeTcPluginTcM :: TcM a -> TcPluginM a #
topAnnStage :: ThStage #
tcTyThingCategory :: TcTyThing -> String #
runTcPluginM :: TcPluginM a -> EvBindsVar -> TcM a #
removeBindingShadowing :: HasOccName a => [a] -> [a] #
pushErrCtxtSameOrigin :: ErrCtxt -> CtLoc -> CtLoc #
pprTcTyThingCategory :: TcTyThing -> SDoc #
pprPECategory :: PromotionErr -> SDoc #
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.
peCategory :: PromotionErr -> String #
outerLevel :: ThLevel #
mkRoleAnnotEnv :: [LRoleAnnotDecl GhcRn] -> RoleAnnotEnv #
lookupRoleAnnot :: RoleAnnotEnv -> Name -> Maybe (LRoleAnnotDecl GhcRn) #
lintGblEnv :: Logger -> DynFlags -> TcGblEnv -> TcM () #
Check the TcGblEnv
for consistency. Currently, only checks
axioms, but should check other aspects, too.
isPartialSig :: TcIdSigInst -> Bool #
hasCompleteSig :: TcSigFun -> Name -> Bool #
No signature or a partial signature
getRoleAnnots :: [Name] -> RoleAnnotEnv -> [LRoleAnnotDecl GhcRn] #
getPlatform :: TcM Platform #
Get target platform
getEvBindsTcPluginM :: TcPluginM EvBindsVar #
Access the EvBindsVar
carried by the TcPluginM
during
constraint solving. Returns Nothing
if invoked during
tcPluginInit
or tcPluginStop
.
Constructors
TcLclEnv | |
Fields
|
setLclEnvTcLevel :: TcLclEnv -> TcLevel -> TcLclEnv #
setLclEnvLoc :: TcLclEnv -> RealSrcSpan -> TcLclEnv #
getLclEnvTcLevel :: TcLclEnv -> TcLevel #
getLclEnvLoc :: TcLclEnv -> RealSrcSpan #
data IOEnvFailure #
Constructors
IOEnvFailure |
Instances
Exception IOEnvFailure | |
Defined in GHC.Data.IOEnv Methods toException :: IOEnvFailure -> SomeException # fromException :: SomeException -> Maybe IOEnvFailure # displayException :: IOEnvFailure -> String # | |
Show IOEnvFailure | |
Defined in GHC.Data.IOEnv Methods showsPrec :: Int -> IOEnvFailure -> ShowS # show :: IOEnvFailure -> String # showList :: [IOEnvFailure] -> ShowS # |
Instances
MonadFail (IOEnv m) | |
Defined in GHC.Data.IOEnv | |
MonadFix (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
MonadIO (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
Alternative (IOEnv env) | |
Applicative (IOEnv m) | |
Functor (IOEnv env) | |
Monad (IOEnv m) | |
MonadPlus (IOEnv env) | |
MonadCatch (IOEnv env) | |
MonadMask (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
MonadThrow (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
ContainsHooks env => HasHooks (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
ContainsDynFlags env => HasDynFlags (IOEnv env) | |
Defined in GHC.Data.IOEnv Methods getDynFlags :: IOEnv env DynFlags # | |
ContainsModule env => HasModule (IOEnv env) | |
Defined in GHC.Data.IOEnv | |
ContainsLogger env => HasLogger (IOEnv env) | |
Defined in GHC.Data.IOEnv |
writeMutVar :: IORef a -> a -> IOEnv env () #
updMutVarM :: IORef a -> (a -> IOEnv env a) -> IOEnv env () #
updEnv :: (env -> env') -> IOEnv env' a -> IOEnv env a #
Perform a computation with an altered environment
unsafeInterleaveM :: IOEnv env a -> IOEnv env a #
uninterruptibleMaskM_ :: IOEnv env a -> IOEnv env a #
readMutVar :: IORef a -> IOEnv env a #
atomicUpdMutVar' :: IORef a -> (a -> (a, b)) -> IOEnv env b #
Strict variant of atomicUpdMutVar
.
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'
.
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 # |
zipWithAndUnzipM :: Monad m => (a -> b -> m (c, d)) -> [a] -> [b] -> m ([c], [d]) #
zipWith3M_ :: Monad m => (a -> b -> c -> m d) -> [a] -> [b] -> [c] -> m () #
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
maybeMapM :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b) #
Monadic version of fmap specialised for Maybe
mapAndUnzip5M :: Monad m => (a -> m (b, c, d, e, f)) -> [a] -> m ([b], [c], [d], [e], [f]) #
mapAndUnzip4M :: Monad m => (a -> m (b, c, d, e)) -> [a] -> m ([b], [c], [d], [e]) #
mapAndUnzip3M :: Monad m => (a -> m (b, c, d)) -> [a] -> m ([b], [c], [d]) #
mapAndUnzipM for triples
Arguments
:: Monad m | |
=> (acc -> x -> m (acc, y)) | combining function |
-> acc | initial state |
-> [x] | inputs |
-> m (acc, [y]) | final state, outputs |
Monadic version of mapAccumL
foldlM_ :: (Monad m, Foldable t) => (a -> b -> m a) -> a -> t b -> m () #
Monadic version of foldl that discards its result
fmapMaybeM :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b) #
Monadic version of fmap
fmapEitherM :: Monad m => (a -> m b) -> (c -> m d) -> Either a c -> m (Either b d) #
Monadic version of fmap
filterOutM :: Applicative m => (a -> m Bool) -> [a] -> m [a] #
Like filterM
, only it reverses the sense of the test.
data ForeignSrcLang #
Foreign formats supported by GHC via TH
Constructors
LangC | C |
LangCxx | C++ |
LangObjc | Objective C |
LangObjcxx | Objective C++ |
LangAsm | Assembly language (.s) |
RawObject | Object (.o) |
Instances
module GHC.Types.Basic
module GHC.Types.Id
data BuiltInSyntax #
BuiltInSyntax is for things like (:)
, []
and tuples,
which have special syntactic forms. They aren't in scope
as such.
Constructors
BuiltInSyntax | |
UserSyntax |
stableNameCmp :: Name -> Name -> Ordering #
Compare Names lexicographically This only works for Names that originate in the source code or have been tidied.
setNameLoc :: Name -> SrcSpan -> Name #
pprPrefixName :: NamedThing a => a -> SDoc #
pprNameUnqualified :: Name -> SDoc #
Print the string of Name unqualifiedly directly.
pprNameDefnLoc :: Name -> SDoc #
pprInfixName :: (Outputable a, NamedThing a) => a -> SDoc #
pprDefinedAt :: 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"
nameSrcSpan :: Name -> SrcSpan #
nameSrcLoc :: Name -> SrcLoc #
nameNameSpace :: Name -> NameSpace #
nameModule_maybe :: Name -> Maybe Module #
nameModule :: HasDebugCallStack => Name -> Module #
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
nameIsHomePackageImport :: Module -> Name -> Bool #
nameIsHomePackage :: Module -> Name -> Bool #
nameIsFromExternalPackage :: HomeUnit -> Name -> Bool #
Returns True if the Name comes from some other package: neither this package nor the interactive package.
mkWiredInName :: Module -> OccName -> Unique -> TyThing -> BuiltInSyntax -> Name #
Create a name which is actually defined by the compiler itself
mkSystemVarName :: Unique -> FastString -> Name #
mkSystemName :: Unique -> OccName -> Name #
Create a name brought into being by the compiler
mkSysTvName :: Unique -> FastString -> Name #
mkFCallName :: Unique -> String -> Name #
Make a name for a foreign call
mkExternalName :: Unique -> Module -> OccName -> SrcSpan -> Name #
Create a name which definitely originates in the given module
mkClonedInternalName :: Unique -> Name -> Name #
localiseName :: Name -> Name #
Make the Name
into an internal name, regardless of what it was to begin with
isWiredInName :: Name -> Bool #
isWiredIn :: NamedThing thing => thing -> Bool #
isTyVarName :: Name -> Bool #
isTyConName :: Name -> Bool #
isSystemName :: Name -> Bool #
isInternalName :: Name -> Bool #
isHoleName :: Name -> Bool #
isExternalName :: Name -> Bool #
isDynLinkName :: Platform -> Module -> Name -> Bool #
Will the Name
come from a dynamically linked package?
isDataConName :: Name -> Bool #
isBuiltInSyntax :: Name -> Bool #
getSrcSpan :: NamedThing a => a -> SrcSpan #
getSrcLoc :: NamedThing a => a -> SrcLoc #
getOccString :: NamedThing a => a -> String #
getOccFS :: NamedThing a => a -> FastString #
type TidyOccEnv = UniqFM FastString Int #
Instances
Data a => Data (OccEnv a) | |
Defined in GHC.Types.Name.Occurrence Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OccEnv a -> c (OccEnv a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (OccEnv a) # toConstr :: OccEnv a -> Constr # dataTypeOf :: OccEnv a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (OccEnv a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (OccEnv a)) # gmapT :: (forall b. Data b => b -> b) -> OccEnv a -> OccEnv a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OccEnv a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OccEnv a -> r # gmapQ :: (forall d. Data d => d -> u) -> OccEnv a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> OccEnv a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> OccEnv a -> m (OccEnv a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OccEnv a -> m (OccEnv a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OccEnv a -> m (OccEnv a) # | |
Outputable a => Outputable (OccEnv a) | |
Defined in GHC.Types.Name.Occurrence |
Instances
Binary NameSpace | |
Eq NameSpace | |
Ord NameSpace | |
unitOccSet :: OccName -> OccSet #
unitOccEnv :: OccName -> a -> OccEnv a #
unionOccSets :: OccSet -> OccSet -> OccSet #
unionManyOccSets :: [OccSet] -> OccSet #
tidyOccName :: TidyOccEnv -> OccName -> (TidyOccEnv, OccName) #
startsWithUnderscore :: OccName -> Bool #
Haskell 98 encourages compilers to suppress warnings about unused
names in a pattern if they start with _
: this implements that test
setOccNameSpace :: NameSpace -> OccName -> OccName #
promoteOccName :: OccName -> Maybe OccName #
pprOccName :: OccName -> SDoc #
pprNonVarNameSpace :: NameSpace -> SDoc #
pprNameSpaceBrief :: NameSpace -> SDoc #
pprNameSpace :: NameSpace -> SDoc #
plusOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccEnv a -> OccEnv a #
plusOccEnv :: OccEnv a -> OccEnv a -> OccEnv a #
parenSymOcc :: OccName -> SDoc -> SDoc #
Wrap parens around an operator
occEnvElts :: OccEnv a -> [a] #
nameSpacesRelated :: NameSpace -> NameSpace -> Bool #
mkWorkerOcc :: OccName -> OccName #
mkTyVarOccFS :: FastString -> OccName #
mkTyVarOcc :: String -> OccName #
mkTyConRepOcc :: OccName -> OccName #
mkTcOccFS :: FastString -> OccName #
mkTag2ConOcc :: OccName -> OccName #
mkSuperDictAuxOcc :: Int -> OccName -> OccName #
mkRepEqOcc :: OccName -> OccName #
mkOccNameFS :: NameSpace -> FastString -> OccName #
mkOccEnv_C :: (a -> a -> a) -> [(OccName, a)] -> OccEnv a #
mkNewTyCoOcc :: OccName -> OccName #
mkMethodOcc :: OccName -> OccName #
mkMaxTagOcc :: OccName -> OccName #
mkMatcherOcc :: OccName -> OccName #
Derive a name for the representation type constructor of a
data
/newtype
instance.
mkInstTyCoOcc :: OccName -> OccName #
mkForeignExportOcc :: OccName -> OccName #
mkEqPredCoOcc :: OccName -> OccName #
mkDefaultMethodOcc :: OccName -> OccName #
mkDataTOcc :: OccName -> OccName #
mkDataOccFS :: FastString -> OccName #
mkDataConWrapperOcc :: OccName -> OccName #
mkDataConWorkerOcc :: OccName -> OccName #
mkDataCOcc :: OccName -> OccName #
mkCon2TagOcc :: OccName -> OccName #
mkClsOccFS :: FastString -> OccName #
mkClassOpAuxOcc :: OccName -> OccName #
mkClassDataConOcc :: OccName -> OccName #
mkBuilderOcc :: OccName -> OccName #
minusOccSet :: OccSet -> OccSet -> OccSet #
lookupOccEnv :: OccEnv a -> OccName -> Maybe a #
isVarNameSpace :: NameSpace -> Bool #
Value OccNames
s are those that are either in
the variable or data constructor namespaces
isValNameSpace :: NameSpace -> 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.
isTvNameSpace :: NameSpace -> Bool #
isTcClsNameSpace :: NameSpace -> Bool #
Test if the OccName
is that for any operator (whether
it is a data constructor or variable or whatever)
isEmptyOccSet :: OccSet -> 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 #
isDataSymOcc :: OccName -> Bool #
Test if the OccName
is a data constructor that starts with
a symbol (e.g. :
, or []
)
isDataConNameSpace :: NameSpace -> Bool #
intersectOccSet :: OccSet -> OccSet -> OccSet #
initTidyOccEnv :: [OccName] -> TidyOccEnv #
foldOccEnv :: (a -> b -> b) -> b -> OccEnv a -> b #
filterOccEnv :: (elt -> Bool) -> OccEnv elt -> OccEnv elt #
extendOccSetList :: OccSet -> [OccName] -> OccSet #
extendOccSet :: OccSet -> OccName -> OccSet #
extendOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccName -> a -> OccEnv a #
extendOccEnv_Acc :: (a -> b -> b) -> (a -> b) -> OccEnv b -> OccName -> a -> OccEnv b #
extendOccEnvList :: OccEnv a -> [(OccName, a)] -> OccEnv a #
extendOccEnv :: OccEnv a -> OccName -> a -> OccEnv a #
emptyOccSet :: OccSet #
emptyOccEnv :: OccEnv a #
elemOccSet :: OccName -> OccSet -> Bool #
elemOccEnv :: OccName -> OccEnv a -> Bool #
demoteOccName :: OccName -> Maybe OccName #
delTidyOccEnvList :: TidyOccEnv -> [FastString] -> TidyOccEnv #
delListFromOccEnv :: OccEnv a -> [OccName] -> OccEnv a #
delFromOccEnv :: OccEnv a -> OccName -> OccEnv a #
avoidClashesOccEnv :: TidyOccEnv -> [OccName] -> TidyOccEnv #
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 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 |
A unique, unambiguous name for something, containing information about where that thing originated.
Instances
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 # | |
NFData Name | |
Defined in GHC.Types.Name | |
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 -> Maybe Int # | |
Eq Name | |
Ord Name | Caution: This instance is implemented via See |
ModifyState Name | |
Defined in Compat.HieAst Methods addSubstitution :: Name -> Name -> HieState -> HieState | |
ToHie (LBooleanFormula (LocatedN Name)) | |
Defined in Compat.HieAst | |
ToHie (Context (Located Name)) | |
ToHie (IEContext (LIEWrappedName Name)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (LIEWrappedName Name) -> HieM [HieAST Type] | |
NFData (UniqFM Name [Name]) Source # | |
type Anno Name | |
Defined in GHC.Hs.Extension | |
type Anno (LocatedN Name) | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN Name] | |
Defined in GHC.Hs.Binds |
tidyNameOcc :: Name -> OccName -> Name #
setNameUnique :: Name -> Unique -> Name #
nameUnique :: Name -> Unique #
nameOccName :: Name -> OccName #
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.
mkFsEnv :: [(FastString, a)] -> FastStringEnv a #
lookupFsEnv :: FastStringEnv a -> FastString -> Maybe a #
extendFsEnv :: FastStringEnv a -> FastString -> a -> FastStringEnv a #
emptyFsEnv :: FastStringEnv a #
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
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 Source # | |
NFData OccName | |
Defined in GHC.Types.Name.Occurrence | |
HasOccName OccName | |
Defined in GHC.Types.Name.Occurrence | |
Uniquable 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 # bndrIsJoin_maybe :: OccName -> Maybe Int # | |
Eq OccName | |
Ord OccName | |
Defined in GHC.Types.Name.Occurrence | |
Hashable OccName Source # | |
Defined in Development.IDE.GHC.Orphans |
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 | |
HasOccName GreName | |
Defined in GHC.Types.Avail | |
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 GlobalRdrElt | |
Defined in GHC.Types.Name.Reader Methods occName :: GlobalRdrElt -> OccName # | |
HasOccName RdrName | |
Defined in GHC.Types.Name.Reader | |
HasOccName Var | |
Defined in GHC.Types.Var | |
HasOccName name => HasOccName (IEWrappedName name) | |
Defined in GHC.Hs.ImpExp Methods occName :: IEWrappedName name -> OccName # |
occNameString :: OccName -> String #
mkVarOccFS :: FastString -> OccName #
mkRecFldSelOcc :: String -> OccName #
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
'`'
,AnnVal
AnnTilde
,
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
See Note [Parents]
Instances
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 # | |
Outputable Parent | |
Defined in GHC.Types.Name.Reader | |
Eq Parent | |
data LocalRdrEnv #
Local Reader Environment See Note [LocalRdrEnv]
Instances
Outputable LocalRdrEnv | |
Defined in GHC.Types.Name.Reader Methods ppr :: LocalRdrEnv -> SDoc # |
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
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 # | |
Outputable ImportSpec | |
Defined in GHC.Types.Name.Reader Methods ppr :: ImportSpec -> SDoc # | |
Eq ImportSpec | |
Defined in GHC.Types.Name.Reader |
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 Provenance
s 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 |
type GlobalRdrEnv = OccEnv [GlobalRdrElt] #
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
NB: greOccName gre is usually the same as nameOccName (greMangledName gre), but not always in the case of record selectors; see Note [GreNames]
data GlobalRdrElt #
Global Reader Element
An element of the GlobalRdrEnv
Instances
Data GlobalRdrElt | |
Defined in GHC.Types.Name.Reader Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GlobalRdrElt -> c GlobalRdrElt # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c GlobalRdrElt # toConstr :: GlobalRdrElt -> Constr # dataTypeOf :: GlobalRdrElt -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c GlobalRdrElt) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GlobalRdrElt) # gmapT :: (forall b. Data b => b -> b) -> GlobalRdrElt -> GlobalRdrElt # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GlobalRdrElt -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GlobalRdrElt -> r # gmapQ :: (forall d. Data d => d -> u) -> GlobalRdrElt -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> GlobalRdrElt -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> GlobalRdrElt -> m GlobalRdrElt # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GlobalRdrElt -> m GlobalRdrElt # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GlobalRdrElt -> m GlobalRdrElt # | |
HasOccName GlobalRdrElt | |
Defined in GHC.Types.Name.Reader Methods occName :: GlobalRdrElt -> OccName # | |
Outputable GlobalRdrElt | |
Defined in GHC.Types.Name.Reader Methods ppr :: GlobalRdrElt -> SDoc # | |
Eq GlobalRdrElt | |
Defined in GHC.Types.Name.Reader |
unQualSpecOK :: ImportSpec -> Bool #
Is in scope unqualified?
unQualOK :: GlobalRdrElt -> Bool #
Test if an unqualified version of this thing would be in scope
transformGREs :: (GlobalRdrElt -> GlobalRdrElt) -> [OccName] -> GlobalRdrEnv -> GlobalRdrEnv #
Apply a transformation function to the GREs for these OccNames
starInfo :: Bool -> RdrName -> SDoc #
Display info about the treatment of *
under NoStarIsType.
With StarIsType, three properties of *
hold:
(a) it is not an infix operator (b) it is always in scope (c) it is a synonym for Data.Kind.Type
However, the user might not know that they are working on a module with NoStarIsType and write code that still assumes (a), (b), and (c), which actually do not hold in that module.
Violation of (a) shows up in the parser. For instance, in the following
examples, we have *
not applied to enough arguments:
data A :: * data F :: * -> *
Violation of (b) or (c) show up in the renamer and the typechecker respectively. For instance:
type K = Either * Bool
This will parse differently depending on whether StarIsType is enabled, but it will parse nonetheless. With NoStarIsType it is parsed as a type operator, thus we have ((*) Either Bool). Now there are two cases to consider:
- There is no definition of (*) in scope. In this case the renamer will fail to look it up. This is a violation of assumption (b).
- There is a definition of the (*) type operator in scope (for example coming from GHC.TypeNats). In this case the user will get a kind mismatch error. This is a violation of assumption (c).
The user might unknowingly be working on a module with NoStarIsType
or use *
as Type
out of habit. So it is important to give a
hint whenever an assumption about *
is violated. Unfortunately, it is
somewhat difficult to deal with (c), so we limit ourselves to (a) and (b).
starInfo
generates an appropriate hint to the user depending on the
extensions enabled in the module and the name that triggered the error.
That is, if we have NoStarIsType and the error is related to *
or its
Unicode variant, the resulting SDoc will contain a helpful suggestion.
Otherwise it is empty.
shadowNames :: GlobalRdrEnv -> [GreName] -> GlobalRdrEnv #
rdrNameSpace :: RdrName -> NameSpace #
rdrNameOcc :: RdrName -> OccName #
qualSpecOK :: ModuleName -> ImportSpec -> Bool #
Is in scope qualified with the given module?
promoteRdrName :: RdrName -> Maybe RdrName #
pprNameProvenance :: GlobalRdrElt -> SDoc #
Print out one place where the name was define/imported (With -dppr-debug, print them all)
pprGlobalRdrEnv :: Bool -> GlobalRdrEnv -> SDoc #
pickGREsModExp :: ModuleName -> [GlobalRdrElt] -> [(GlobalRdrElt, GlobalRdrElt)] #
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
pickGREs :: RdrName -> [GlobalRdrElt] -> [GlobalRdrElt] #
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]
nameRdrName :: Name -> RdrName #
mkVarUnqual :: FastString -> RdrName #
mkUnqual :: NameSpace -> FastString -> RdrName #
mkRdrUnqual :: OccName -> RdrName #
mkRdrQual :: ModuleName -> OccName -> 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
mkGlobalRdrEnv :: [GlobalRdrElt] -> GlobalRdrEnv #
lookupLocalRdrOcc :: LocalRdrEnv -> OccName -> Maybe Name #
lookupLocalRdrEnv :: LocalRdrEnv -> RdrName -> Maybe Name #
lookupGlobalRdrEnv :: GlobalRdrEnv -> OccName -> [GlobalRdrElt] #
lookupGRE_RdrName' :: RdrName -> GlobalRdrEnv -> [GlobalRdrElt] #
Look for this RdrName
in the global environment. Includes record fields
without selector functions (see Note [NoFieldSelectors] in GHC.Rename.Env).
lookupGRE_RdrName :: RdrName -> GlobalRdrEnv -> [GlobalRdrElt] #
Look for this RdrName
in the global environment. Omits record fields
without selector functions (see Note [NoFieldSelectors] in GHC.Rename.Env).
lookupGRE_Name_OccName :: GlobalRdrEnv -> Name -> OccName -> Maybe GlobalRdrElt #
Look for precisely this Name
in the environment, but with an OccName
that might differ from that of the Name
. See lookupGRE_FieldLabel
and
Note [GreNames].
lookupGRE_Name :: GlobalRdrEnv -> Name -> Maybe GlobalRdrElt #
lookupGRE_GreName :: GlobalRdrEnv -> GreName -> Maybe GlobalRdrElt #
lookupGRE_FieldLabel :: GlobalRdrEnv -> FieldLabel -> Maybe GlobalRdrElt #
Look for a particular record field selector in the environment, where the selector name and field label may be different: the GlobalRdrEnv is keyed on the label. See Note [GreNames] for why this happens.
localRdrEnvElts :: LocalRdrEnv -> [Name] #
localGREsFromAvail :: AvailInfo -> [GlobalRdrElt] #
isSrcRdrName :: RdrName -> Bool #
isRecFldGRE :: GlobalRdrElt -> Bool #
isRdrTyVar :: RdrName -> Bool #
isRdrDataCon :: RdrName -> Bool #
isQual_maybe :: RdrName -> Maybe (ModuleName, OccName) #
isNoFieldSelectorGRE :: GlobalRdrElt -> Bool #
Is this a record field defined with NoFieldSelectors? (See Note [NoFieldSelectors] in GHC.Rename.Env)
isLocalGRE :: GlobalRdrElt -> Bool #
isFieldSelectorGRE :: GlobalRdrElt -> Bool #
Is this a record field defined with FieldSelectors? (See Note [NoFieldSelectors] in GHC.Rename.Env)
isExplicitItem :: ImpItemSpec -> Bool #
isExact_maybe :: RdrName -> Maybe Name #
isDuplicateRecFldGRE :: GlobalRdrElt -> Bool #
Is this a record field defined with DuplicateRecordFields? (See Note [GreNames])
inLocalRdrEnvScope :: Name -> LocalRdrEnv -> Bool #
importSpecLoc :: ImportSpec -> SrcSpan #
gresToAvailInfo :: [GlobalRdrElt] -> [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 the folding using plusAvail
but needs the
uniqueness assumption.
gresFromAvails :: Maybe ImportSpec -> [AvailInfo] -> [GlobalRdrElt] #
make a GlobalRdrEnv
where all the elements point to the same
Provenance (useful for "hiding" imports, or imports with no details).
gresFromAvail :: (Name -> Maybe ImportSpec) -> AvailInfo -> [GlobalRdrElt] #
greSrcSpan :: GlobalRdrElt -> SrcSpan #
greRdrNames :: GlobalRdrElt -> [RdrName] #
grePrintableName :: GlobalRdrElt -> Name #
A Name
for the GRE suitable for output to the user. Its OccName
will
be the greOccName
(see Note [GreNames]).
greParent_maybe :: GlobalRdrElt -> Maybe Name #
greOccName :: GlobalRdrElt -> OccName #
See Note [GreNames]
greMangledName :: GlobalRdrElt -> Name #
A Name
for the GRE for internal use. Careful: the OccName
of this
Name
is not necessarily the same as the greOccName
(see Note [GreNames]).
greFieldLabel :: GlobalRdrElt -> Maybe FieldLabel #
Returns the field label of this GRE, if it has one
greDefinitionSrcSpan :: GlobalRdrElt -> SrcSpan #
The SrcSpan of the name pointed to by the GRE.
greDefinitionModule :: GlobalRdrElt -> Maybe Module #
The module in which the name pointed to by the GRE is defined.
globalRdrEnvElts :: GlobalRdrEnv -> [GlobalRdrElt] #
getRdrName :: NamedThing thing => thing -> RdrName #
getGRE_NameQualifier_maybes :: GlobalRdrEnv -> Name -> [Maybe [ModuleName]] #
extendLocalRdrEnvList :: LocalRdrEnv -> [Name] -> LocalRdrEnv #
extendLocalRdrEnv :: LocalRdrEnv -> Name -> LocalRdrEnv #
elemLocalRdrEnv :: RdrName -> LocalRdrEnv -> Bool #
demoteRdrName :: RdrName -> Maybe RdrName #
delLocalRdrEnvList :: LocalRdrEnv -> [OccName] -> LocalRdrEnv #
bestImport :: [ImportSpec] -> ImportSpec #
availFromGRE :: GlobalRdrElt -> AvailInfo #
Used where we may have an ordinary name or a record field label. See Note [GreNames] in GHC.Types.Name.Reader.
Constructors
NormalGreName Name | |
FieldGreName FieldLabel |
Instances
Data GreName | |
Defined in GHC.Types.Avail Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GreName -> c GreName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c GreName # toConstr :: GreName -> Constr # dataTypeOf :: GreName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c GreName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GreName) # gmapT :: (forall b. Data b => b -> b) -> GreName -> GreName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GreName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GreName -> r # gmapQ :: (forall d. Data d => d -> u) -> GreName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> GreName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> GreName -> m GreName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GreName -> m GreName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GreName -> m GreName # | |
HasOccName GreName | |
Defined in GHC.Types.Avail | |
Binary GreName | |
Outputable GreName | |
Defined in GHC.Types.Avail | |
Eq GreName | |
greNameSrcSpan :: GreName -> SrcSpan #
Constructors
SevOutput | |
SevFatal | |
SevInteractive | |
SevDump | Log message intended for compiler developers No file/line/column stuff |
SevInfo | Log messages intended for end users. No file/line/column stuff. |
SevWarning | |
SevError | SevWarning and SevError are used for warnings and errors o The message has a file/line/column heading, plus "warning:" or "error:", added by mkLocMessags o Output is intended for end users |
emptyMessages :: Messages e #
greNamePrintableName :: GreName -> Name #
data SourceModified #
Indicates whether a given module's source has been modified since it was last compiled.
Constructors
SourceModified | the source has been modified |
SourceUnmodified | the source has not been modified. Compilation may or may not be necessary, depending on whether any dependencies have changed since we last compiled. |
SourceUnmodifiedAndStable | the source has not been modified, and furthermore all of its (transitive) dependencies are up to date; it definitely does not need to be recompiled. This is important for two reasons: (a) we can omit the version check in checkOldIface, and (b) if the module used TH splices we don't need to force recompilation. |
Instances
Show SourceModified Source # | |
Defined in Development.IDE.GHC.Orphans Methods showsPrec :: Int -> SourceModified -> ShowS # show :: SourceModified -> String # showList :: [SourceModified] -> ShowS # | |
NFData SourceModified Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: SourceModified -> () # | |
Eq SourceModified Source # | |
Defined in Development.IDE.GHC.Orphans Methods (==) :: SourceModified -> SourceModified -> Bool # (/=) :: SourceModified -> SourceModified -> Bool # |
Constructors
HsSrcFile | .hs file |
HsBootFile | .hs-boot file |
HsigFile | .hsig file |
Instances
Show HscSource | |
Binary HscSource | |
Eq HscSource | |
Ord HscSource | |
module GHC.Types.SourceText
module GHC.Types.TyThing
module GHC.Types.TyThing.Ppr
module GHC.Types.Unique.Supply
setVarUnique :: Var -> Unique -> Var #
setTyVarUnique :: TyVar -> Unique -> TyVar #
Variable
Essentially a typed Name
, that may also contain some additional information
about the Var
and its use sites.
Instances
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 # | |
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 | |
Eq Var | |
Ord Var | |
ModifyState Id | |
Defined in Compat.HieAst Methods addSubstitution :: Id -> Id -> HieState -> HieState | |
ToHie (Context (Located Var)) | |
type Anno Id | |
Defined in GHC.Hs.Extension | |
type Anno (LocatedN Id) | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN Id] | |
Defined in GHC.Hs.Binds |
class HasModule (m :: Type -> Type) where #
Instances
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 # |
uninstantiateInstantiatedUnit :: InstantiatedUnit -> InstantiatedUnit #
Remove instantiations of the given instantiated unit
uninstantiateInstantiatedModule :: InstantiatedModule -> InstantiatedModule #
Remove instantiations of the given module instantiated unit
stableModuleCmp :: Module -> Module -> Ordering #
This gives a stable ordering, as opposed to the Ord instance which
gives an ordering based on the Unique
s of the components, which may
not be stable from run to run of the compiler.
moduleStableString :: Module -> String #
Get a string representation of a Module
that's unique and stable
across recompilations.
eg. "$aeson_70dylHtv1FFGeai1IoxcQr$Data.Aeson.Types.Internal"
moduleIsDefinite :: Module -> Bool #
A Module
is definite if it has no free holes.
mkHoleModule :: ModuleName -> GenModule (GenUnit u) #
Create a hole Module
isHoleModule :: GenModule (GenUnit u) -> Bool #
Test if a Module is not instantiated
installedModuleEq :: InstalledModule -> Module -> Bool #
Test if a Module
corresponds to a given InstalledModule
,
modulo instantiation.
getUnitInstantiations :: Unit -> (UnitId, Maybe InstantiatedUnit) #
Return the unit-id this unit is an instance of and the module instantiations (if any).
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.
type ModuleNameEnv elt = UniqFM ModuleName elt #
A map keyed off of ModuleName
s (actually, their Unique
s)
data InstalledModuleEnv elt #
A map keyed off of InstalledModule
type DModuleNameEnv elt = UniqDFM ModuleName elt #
A map keyed off of ModuleName
s (actually, their Unique
s)
Has deterministic folds and can be deterministically converted to a list
unitModuleSet :: Module -> ModuleSet #
unitModuleEnv :: Module -> a -> ModuleEnv a #
unionModuleSet :: ModuleSet -> ModuleSet -> ModuleSet #
plusModuleEnv_C :: (a -> a -> a) -> ModuleEnv a -> ModuleEnv a -> ModuleEnv a #
plusModuleEnv :: ModuleEnv a -> ModuleEnv a -> ModuleEnv a #
moduleSetElts :: ModuleSet -> [Module] #
moduleEnvToList :: ModuleEnv a -> [(Module, a)] #
moduleEnvKeys :: ModuleEnv a -> [Module] #
moduleEnvElts :: ModuleEnv a -> [a] #
mkModuleSet :: [Module] -> ModuleSet #
mkModuleEnv :: [(Module, a)] -> ModuleEnv a #
minusModuleSet :: ModuleSet -> ModuleSet -> ModuleSet #
mapModuleEnv :: (a -> b) -> ModuleEnv a -> ModuleEnv b #
lookupWithDefaultModuleEnv :: ModuleEnv a -> a -> Module -> a #
lookupModuleEnv :: ModuleEnv a -> Module -> Maybe a #
lookupInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> Maybe a #
isEmptyModuleEnv :: ModuleEnv a -> Bool #
intersectModuleSet :: ModuleSet -> ModuleSet -> ModuleSet #
filterInstalledModuleEnv :: (InstalledModule -> a -> Bool) -> InstalledModuleEnv a -> InstalledModuleEnv a #
extendModuleSetList :: ModuleSet -> [Module] -> ModuleSet #
extendModuleSet :: ModuleSet -> Module -> ModuleSet #
extendModuleEnvWith :: (a -> a -> a) -> ModuleEnv a -> Module -> a -> ModuleEnv a #
extendModuleEnvList_C :: (a -> a -> a) -> ModuleEnv a -> [(Module, a)] -> ModuleEnv a #
extendModuleEnvList :: ModuleEnv a -> [(Module, a)] -> ModuleEnv a #
extendModuleEnv :: ModuleEnv a -> Module -> a -> ModuleEnv a #
extendInstalledModuleEnv :: InstalledModuleEnv a -> InstalledModule -> a -> InstalledModuleEnv a #
emptyModuleEnv :: ModuleEnv a #
elemModuleSet :: Module -> ModuleSet -> Bool #
elemModuleEnv :: Module -> ModuleEnv a -> Bool #
delModuleSet :: ModuleSet -> Module -> ModuleSet #
delModuleEnvList :: ModuleEnv a -> [Module] -> ModuleEnv a #
delModuleEnv :: ModuleEnv a -> Module -> ModuleEnv a #
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
addBootSuffixLocnOut :: ModLocation -> ModLocation #
Add the -boot
suffix to all output file paths associated with the
module, not including the input file itself
addBootSuffixLocn :: ModLocation -> ModLocation #
Add the -boot
suffix to all file paths associated with the module
addBootSuffix :: FilePath -> FilePath #
Add the -boot
suffix to .hs, .hi and .o files
A unit key in the database
Constructors
UnitKey FastString |
Instances
IsUnitId UnitKey | |
Defined in GHC.Unit.Types Methods unitFS :: UnitKey -> FastString # |
type ModuleWithIsBoot = GenWithIsBoot Module #
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 # | |
IsUnitId unit => IsUnitId (Indefinite unit) | |
Defined in GHC.Unit.Types Methods unitFS :: Indefinite unit -> FastString # |
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
type Instantiations = GenInstantiations UnitId #
type InstantiatedModule = GenModule InstantiatedUnit #
An InstantiatedModule
is a Module
whose unit is identified with an InstantiatedUnit
.
type InstalledModule = GenModule UnitId #
A InstalledModule
is a Module
whose unit is identified with an
UnitId
.
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
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 IndefUnitId
, and the
brackets enclose the module substitution).
Constructors
InstantiatedUnit | |
Fields
|
Instances
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 # |
wiredInUnitIds :: [UnitId] #
virtualUnitId :: InstantiatedUnit -> UnitId #
Return the virtual UnitId of an on-the-fly instantiated unit.
unitString :: IsUnitId u => u -> String #
unitIsDefinite :: Unit -> Bool #
A Unit
is definite if it has no free holes.
unitIdString :: UnitId -> String #
unitFreeModuleHoles :: GenUnit u -> UniqDSet ModuleName #
Retrieve the set of free module holes of a Unit
.
thisGhcUnitId :: UnitId #
thisGhcUnit :: Unit #
stringToUnitId :: String -> UnitId #
stringToUnit :: String -> Unit #
stableUnitCmp :: Unit -> Unit -> Ordering #
Compares unit ids lexically, rather than by their Unique
s
primUnitId :: UnitId #
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.
mkVirtUnit :: IsUnitId u => Indefinite u -> [(ModuleName, GenModule (GenUnit u))] -> GenUnit u #
Smart constructor for instantiated GenUnit
mkModule :: u -> ModuleName -> GenModule u #
mkInstantiatedUnitHash :: IsUnitId u => Indefinite 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.
mkInstantiatedUnit :: IsUnitId u => Indefinite u -> GenInstantiations u -> GenInstantiatedUnit u #
Create a new GenInstantiatedUnit
given an explicit module substitution.
mapInstantiations :: IsUnitId v => (u -> v) -> GenInstantiations u -> GenInstantiations v #
Map over the unit identifier of unit instantiations.
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 #
isHoleUnit :: GenUnit u -> Bool #
interactiveUnit :: Unit #
fsToUnit :: FastString -> Unit #
Create a new simple unit identifier from a FastString
. Internally,
this is primarily used to specify wired-in unit identifiers.
bignumUnitId :: UnitId #
bignumUnit :: Unit #
baseUnitId :: UnitId #
stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering #
Compares module names lexically, rather than by their Unique
s
pprModuleName :: ModuleName -> SDoc #
moduleNameString :: ModuleName -> String #
moduleNameSlashes :: ModuleName -> String #
Returns the string version of the module name, with dots replaced by slashes.
moduleNameFS :: ModuleName -> FastString #
moduleNameColons :: ModuleName -> String #
Returns the string version of the module name, with dots replaced by colons.
mkModuleNameFS :: FastString -> ModuleName #
mkModuleName :: String -> ModuleName #
unitIdFS :: UnitId -> FastString #
The full hashed unit identifier, including the component id and the hash.
newtype Indefinite unit #
Constructors
Indefinite | |
Fields
|
Instances
type IndefUnitId = Indefinite UnitId #
An IndefUnitId
is an UnitId
with the invariant that it only
refers to an indefinite library; i.e., one that can be instantiated.
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
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 Source # | |
Show Unit | |
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 | |
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) | |
A generic module is a pair of a unit identifier and a ModuleName
.
Constructors
Module !unit !ModuleName |
Instances
Functor GenModule | |
Show Module Source # | |
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 | |
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) # | |
NFData (GenModule a) | |
Defined in GHC.Unit.Types | |
Binary a => Binary (GenModule a) | |
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 # |
data ModuleName #
A ModuleName is essentially a simple string, e.g. Data.List
.
Instances
Syntax re-exports
Haskell Module
All we actually declare here is the top-level structure for a module.
Constructors
HsModule | |
Fields
|
Instances
Data HsModule | |
Defined in GHC.Hs Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsModule -> c HsModule # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsModule # toConstr :: HsModule -> Constr # dataTypeOf :: HsModule -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsModule) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsModule) # gmapT :: (forall b. Data b => b -> b) -> HsModule -> HsModule # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsModule -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsModule -> r # gmapQ :: (forall d. Data d => d -> u) -> HsModule -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsModule -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsModule -> m HsModule # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsModule -> m HsModule # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsModule -> m HsModule # | |
NFData HsModule Source # | |
Defined in Development.IDE.GHC.Orphans | |
Outputable HsModule | |
data SrcSpanAnn' a #
The 'SrcSpanAnn'' type wraps a normal SrcSpan
, together with
an extra annotation type. This is mapped to a specific GenLocated
usage in the AST through the XRec
and Anno
type families.
Instances
Functor SrcSpanAnn' Source # | |
Defined in Development.IDE.GHC.Orphans Methods fmap :: (a -> b) -> SrcSpanAnn' a -> SrcSpanAnn' b # (<$) :: a -> SrcSpanAnn' b -> SrcSpanAnn' a # | |
Data a => Data (SrcSpanAnn' a) | |
Defined in GHC.Parser.Annotation Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcSpanAnn' a -> c (SrcSpanAnn' a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SrcSpanAnn' a) # toConstr :: SrcSpanAnn' a -> Constr # dataTypeOf :: SrcSpanAnn' a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (SrcSpanAnn' a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SrcSpanAnn' a)) # gmapT :: (forall b. Data b => b -> b) -> SrcSpanAnn' a -> SrcSpanAnn' a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpanAnn' a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpanAnn' a -> r # gmapQ :: (forall d. Data d => d -> u) -> SrcSpanAnn' a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcSpanAnn' a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcSpanAnn' a -> m (SrcSpanAnn' a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpanAnn' a -> m (SrcSpanAnn' a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpanAnn' a -> m (SrcSpanAnn' a) # | |
Semigroup an => Semigroup (SrcSpanAnn' an) | |
Defined in GHC.Parser.Annotation Methods (<>) :: SrcSpanAnn' an -> SrcSpanAnn' an -> SrcSpanAnn' an # sconcat :: NonEmpty (SrcSpanAnn' an) -> SrcSpanAnn' an # stimes :: Integral b => b -> SrcSpanAnn' an -> SrcSpanAnn' an # | |
NFData (SrcSpanAnn' a) Source # | |
Defined in Development.IDE.GHC.Orphans Methods rnf :: SrcSpanAnn' a -> () # | |
Binary a => Binary (LocatedL a) | |
Outputable a => Outputable (SrcSpanAnn' a) | |
Defined in GHC.Parser.Annotation Methods ppr :: SrcSpanAnn' a -> SDoc # | |
Eq a => Eq (SrcSpanAnn' a) | |
Defined in GHC.Parser.Annotation Methods (==) :: SrcSpanAnn' a -> SrcSpanAnn' a -> Bool # (/=) :: SrcSpanAnn' a -> SrcSpanAnn' a -> Bool # | |
HasSrcSpan (SrcSpanAnn' ann) Source # | |
Defined in Development.IDE.GHC.Compat.Core Methods getLoc :: SrcSpanAnn' ann -> SrcSpan Source # | |
HasLoc (LocatedA a) | |
Defined in Compat.HieAst | |
HasLoc (LocatedN a) | |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (HsBind (GhcPass p))) | |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct
Since the above is quite costly, we just skip cases where computing the expression's type is going to be expensive. See #16233 |
Defined in Compat.HieAst | |
HiePass p => HasType (LocatedA (Pat (GhcPass p))) | |
Defined in Compat.HieAst | |
ToHie (LBooleanFormula (LocatedN Name)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ImportDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA HsWrapper) | |
ToHie (LocatedA (FixitySig GhcRn)) | |
ToHie (LocatedA (AnnDecl GhcRn)) | |
ToHie (LocatedA (ClsInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ConDecl GhcRn)) | |
ToHie (LocatedA (DataFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (DefaultDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (DerivDecl GhcRn)) | |
ToHie (LocatedA (FamilyDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (ForeignDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (FunDep GhcRn)) | |
ToHie (LocatedA (InstDecl GhcRn)) | |
ToHie (LocatedA (RoleAnnotDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (RuleDecl GhcRn)) | |
ToHie (LocatedA (RuleDecls GhcRn)) | |
ToHie (LocatedA (SpliceDecl GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (StandaloneKindSig GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (TyClDecl GhcRn)) | |
ToHie (LocatedA (TyFamInstDecl GhcRn)) | |
Defined in Compat.HieAst | |
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 (HsSplice (GhcPass p))) | |
(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 (ConDeclField GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedA (HsType GhcRn)) | |
ToHie (LocatedC (DerivClauseTys GhcRn)) | |
Defined in Compat.HieAst | |
ToHie (LocatedC [LocatedA (HsType GhcRn)]) | |
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) | |
Defined in Compat.HieAst | |
ToHie (LocatedP OverlapMode) | |
Defined in Compat.HieAst Methods toHie :: LocatedP OverlapMode -> HieM [HieAST Type] | |
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (Located (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) | |
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) | |
ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) | |
Defined in Compat.HieAst | |
ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) | |
Defined in Compat.HieAst | |
ToHie (EvBindContext (LocatedA TcEvBinds)) | |
ToHie (IEContext (LIEWrappedName Name)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (LIEWrappedName Name) -> HieM [HieAST Type] | |
ToHie (IEContext (LocatedA (IE GhcRn))) | |
ToHie (IEContext (LocatedA ModuleName)) | |
Defined in Compat.HieAst Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type] | |
HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) | |
(ToHie (RFContext (Located label)), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsRecField' label arg))) | |
Defined in Compat.HieAst Methods toHie :: RContext (LocatedA (HsRecField' label arg)) -> HieM [HieAST Type] | |
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 Compat.HieAst | |
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) | |
Defined in Compat.HieAst | |
Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) | |
Defined in Compat.HieAst | |
NamedThing (Located a) => NamedThing (LocatedAn an a) | |
Defined in GHC.Parser.Annotation | |
(Outputable a, Outputable e) => Outputable (GenLocated (SrcSpanAnn' a) e) | |
Defined in GHC.Parser.Annotation Methods ppr :: GenLocated (SrcSpanAnn' a) e -> SDoc # | |
HasSrcSpan (GenLocated (SrcSpanAnn' ann) a) Source # | |
Defined in Development.IDE.GHC.Compat.Core Methods getLoc :: GenLocated (SrcSpanAnn' ann) a -> SrcSpan Source # | |
(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 Compat.HieAst | |
type Anno (LocatedA (IE (GhcPass p))) | |
Defined in GHC.Hs.ImpExp | |
type Anno (LocatedN Name) | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN RdrName) | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN Id) | |
Defined in GHC.Hs.Binds | |
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.PostProcess | |
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 (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 (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 GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] | |
Defined in GHC.Parser.Types | |
type Anno [LocatedA (ConDeclField (GhcPass _1))] | |
Defined in GHC.Hs.Decls | |
type Anno [LocatedA (HsType (GhcPass p))] | |
Defined in GHC.Hs.Type | |
type Anno [LocatedN Name] | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN RdrName] | |
Defined in GHC.Hs.Binds | |
type Anno [LocatedN Id] | |
Defined in GHC.Hs.Binds | |
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.PostProcess | |
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.PostProcess | |
type Anno (HsRecField' (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) | |
Defined in GHC.Hs.Pat | |
type Anno (HsRecField' (AmbiguousFieldOcc p) (LocatedA (HsExpr p))) | |
Defined in GHC.Hs.Pat | |
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr)))) | |
Defined in GHC.Hs.Expr | |
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) | |
Defined in GHC.Parser.PostProcess | |
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) | |
Defined in GHC.Hs.Expr |
module GHC.Hs.Binds
module GHC.Parser
optionsErrorMsgs :: [String] -> [Located String] -> FilePath -> Messages DecoratedSDoc #
mkPrelImports :: ModuleName -> SrcSpan -> Bool -> [LImportDecl GhcPs] -> [LImportDecl GhcPs] #
Parse OPTIONS and LANGUAGE pragmas of the source file.
Throws a SourceError
if flag parsing fails (including unsupported flags.)
Arguments
:: DynFlags | |
-> StringBuffer | Input Buffer |
-> FilePath | Source filename. Used for location info. |
-> [Located String] | 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
data ParserOpts #
Parser options.
See mkParserOpts
to construct this.
Constructors
ParserOpts | |
Fields
|
data ParseResult a #
The result of running a parser.
Constructors
POk | The parser has consumed a (possibly empty) prefix
of the input and produced a result. Use |
Fields
| |
PFailed | The parser has consumed a (possibly empty) prefix of the input and failed. |
Fields
|
Constructors
PState | |
Fields
|
The parsing monad, isomorphic to StateT PState Maybe
.
Constructors
P | |
Fields
|
Instances
Applicative P | |
Functor P | |
Monad P | |
MonadP P | |
Defined in GHC.Parser.Lexer Methods addWarning :: WarningFlag -> PsWarning -> P () # addFatalError :: PsError -> P a # allocateCommentsP :: RealSrcSpan -> P EpAnnComments # |
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
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 :: WarningFlag -> PsWarning -> m () #
Add a warning to the accumulator.
Use getMessages
to get the accumulated warnings.
addFatalError :: PsError -> 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 addWarning :: WarningFlag -> PsWarning -> P () # addFatalError :: PsError -> P a # allocateCommentsP :: RealSrcSpan -> P EpAnnComments # | |
MonadP PV | |
Defined in GHC.Parser.PostProcess Methods addError :: PsError -> PV () # addWarning :: WarningFlag -> PsWarning -> PV () # addFatalError :: PsError -> PV a # getBit :: ExtBits -> PV Bool # allocateCommentsP :: RealSrcSpan -> PV EpAnnComments # |
data HdkComment #
Haddock comment as produced by the lexer. These are accumulated in
PState
and then processed in GHC.Parser.PostProcess.Haddock.
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 # |
Various boolean flags, mostly language extensions, that impact lexing and parsing. Note that a handful of these can change during lexing/parsing.
Constructors
warnopt :: WarningFlag -> ParserOpts -> Bool #
Test whether a WarningFlag
is set
srcParseFail :: P a #
setSrcLoc :: RealSrcLoc -> P () #
setLastToken :: PsSpan -> Int -> P () #
pushModuleContext :: P () #
pushLexState :: Int -> P () #
popLexState :: P Int #
popContext :: P () #
Arguments
:: EnumSet WarningFlag | warnings flags enabled |
-> EnumSet Extension | permitted language extensions enabled |
-> 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
mkParensEpAnn :: RealSrcSpan -> (AddEpAnn, AddEpAnn) #
lexTokenStream :: ParserOpts -> StringBuffer -> RealSrcLoc -> ParseResult [Located Token] #
initPragState :: ParserOpts -> StringBuffer -> RealSrcLoc -> PState #
Set parser options for parsing OPTIONS pragmas
getPriorCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments #
getMessages :: PState -> (Bag PsWarning, Bag PsError) #
Get the warnings and errors accumulated so far. Does not take -Werror into account.
getLexState :: P Int #
getFinalCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments #
getErrorMessages :: PState -> Bag PsError #
Get a bag of the errors that have been accumulated so far. Does not take -Werror into account.
getEofPos :: P (Maybe (RealSrcSpan, RealSrcSpan)) #
getCommentsFor :: MonadP m => SrcSpan -> m EpAnnComments #
failLocMsgP :: RealSrcLoc -> RealSrcLoc -> (SrcSpan -> PsError) -> P a #
allocatePriorComments :: RealSrcSpan -> [LEpaComment] -> Maybe [LEpaComment] -> (Maybe [LEpaComment], [LEpaComment], [LEpaComment]) #
allocateFinalComments :: RealSrcSpan -> [LEpaComment] -> Maybe [LEpaComment] -> (Maybe [LEpaComment], [LEpaComment], [LEpaComment]) #
allocateComments :: RealSrcSpan -> [LEpaComment] -> ([LEpaComment], [LEpaComment]) #
activeContext :: P Bool #
pattern HsFieldBind :: XHsRecField id -> id -> arg -> Bool -> HsRecField' id arg Source #
hfbAnn :: HsRecField' id arg -> XHsRecField id Source #
hfbLHS :: HsRecField' id arg -> id Source #
hfbRHS :: HsRecField' id arg -> arg Source #
hfbPun :: HsRecField' id arg -> Bool Source #
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
Bundled Patterns
pattern NamedFieldPuns :: Extension |
Instances
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 | |
Show Extension | |
NFData Extension Source # | |
Defined in Development.IDE.GHC.Orphans | |
Outputable Extension | |
Defined in GHC.Utils.Outputable | |
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.2.4" '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 "RecordPuns" '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 "InstanceSigs" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ApplicativeDo" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LinearTypes" '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)))))))) |
A finite map from uniques
of one type to
elements in another type.
The key is just here to keep us honest. It's always safe to use a single type as key. If two types don't overlap in their uniques it's also safe to index the same map at multiple key types. But this is very much discouraged.
Instances
Functor (UniqFM key) | |
(Data key, Data ele) => Data (UniqFM key ele) | |
Defined in GHC.Types.Unique.FM Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UniqFM key ele -> c (UniqFM key ele) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (UniqFM key ele) # toConstr :: UniqFM key ele -> Constr # dataTypeOf :: UniqFM key ele -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (UniqFM key ele)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (UniqFM key ele)) # gmapT :: (forall b. Data b => b -> b) -> UniqFM key ele -> UniqFM key ele # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UniqFM key ele -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UniqFM key ele -> r # gmapQ :: (forall d. Data d => d -> u) -> UniqFM key ele -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UniqFM key ele -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UniqFM key ele -> m (UniqFM key ele) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UniqFM key ele -> m (UniqFM key ele) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UniqFM key ele -> m (UniqFM key ele) # | |
Monoid (UniqFM key a) | |
Semigroup (UniqFM key a) | |
NFData (UniqFM Name [Name]) Source # | |
Outputable a => Outputable (UniqFM key a) | |
Defined in GHC.Types.Unique.FM | |
Eq ele => Eq (UniqFM key ele) | |
mkCgInteractiveGuts :: CgGuts -> CgGuts Source #
field_label :: a -> a Source #
groupOrigin :: MatchGroup p body -> Origin Source #