apply-refact-0.14.0.0: Perform refactorings specified by the refact library.

Safe Haskell | None
Language | Haskell2010

Refact.Compat

Contents

- ApiAnnotation / GHC.Parser.ApiAnnotation
- BasicTypes / GHC.Types.Basic
- DynFlags / GHC.Driver.Session
- ErrUtils
- FastString / GHC.Data.FastString
- HeaderInfo / GHC.Parser.Header
- HsExpr / GHC.Hs.Expr
- HsSyn / GHC.Hs
- Name OccName GHC.Types.Name
- Outputable / GHC.Utils.Outputable
- Panic / GHC.Utils.Panic
- RdrName / GHC.Types.Name.Reader
- SrcLoc / GHC.Types.SrcLoc
- StringBuffer
- Misc
- Non-GHC stuff
- GHC 9.4 stuff

Synopsis

- data AnnKeywordId
  - = AnnAnyclass
  - | AnnAs
  - | AnnBang
  - | AnnBackquote
  - | AnnBy
  - | AnnCase
  - | AnnCases
  - | AnnClass
  - | AnnClose
  - | AnnCloseB
  - | AnnCloseBU
  - | AnnCloseC
  - | AnnCloseQ
  - | AnnCloseQU
  - | AnnCloseP
  - | AnnClosePH
  - | AnnCloseS
  - | AnnColon
  - | AnnComma
  - | AnnCommaTuple
  - | AnnDarrow
  - | AnnDarrowU
  - | AnnData
  - | AnnDcolon
  - | AnnDcolonU
  - | AnnDefault
  - | AnnDeriving
  - | AnnDo
  - | AnnDot
  - | AnnDotdot
  - | AnnElse
  - | AnnEqual
  - | AnnExport
  - | AnnFamily
  - | AnnForall
  - | AnnForallU
  - | AnnForeign
  - | AnnFunId
  - | AnnGroup
  - | AnnHeader
  - | AnnHiding
  - | AnnIf
  - | AnnImport
  - | AnnIn
  - | AnnInfix
  - | AnnInstance
  - | AnnLam
  - | AnnLarrow
  - | AnnLarrowU
  - | AnnLet
  - | AnnLollyU
  - | AnnMdo
  - | AnnMinus
  - | AnnModule
  - | AnnNewtype
  - | AnnName
  - | AnnOf
  - | AnnOpen
  - | AnnOpenB
  - | AnnOpenBU
  - | AnnOpenC
  - | AnnOpenE
  - | AnnOpenEQ
  - | AnnOpenEQU
  - | AnnOpenP
  - | AnnOpenS
  - | AnnOpenPH
  - | AnnDollar
  - | AnnDollarDollar
  - | AnnPackageName
  - | AnnPattern
  - | AnnPercent
  - | AnnPercentOne
  - | AnnProc
  - | AnnQualified
  - | AnnRarrow
  - | AnnRarrowU
  - | AnnRec
  - | AnnRole
  - | AnnSafe
  - | AnnSemi
  - | AnnSimpleQuote
  - | AnnSignature
  - | AnnStatic
  - | AnnStock
  - | AnnThen
  - | AnnThTyQuote
  - | AnnTilde
  - | AnnType
  - | AnnUnit
  - | AnnUsing
  - | AnnVal
  - | AnnValStr
  - | AnnVbar
  - | AnnVia
  - | AnnWhere
  - | Annlarrowtail
  - | AnnlarrowtailU
  - | Annrarrowtail
  - | AnnrarrowtailU
  - | AnnLarrowtail
  - | AnnLarrowtailU
  - | AnnRarrowtail
  - | AnnRarrowtailU
- data DeltaPos
  - = SameLine {
    - deltaColumn :: !Int
    }
  - | DifferentLine {
    - deltaLine :: !Int
    - deltaColumn :: !Int
    }
- data Fixity = Fixity SourceText Int FixityDirection
- data SourceText
  - = SourceText FastString
  - | NoSourceText
- data FlagSpec flag = FlagSpec {
  - flagSpecName :: String
  - flagSpecFlag :: flag
  - flagSpecAction :: TurnOnFlag -> DynP ()
  - flagSpecGhcMode :: GhcFlagMode
  }
- data GeneralFlag
  - = Opt_DumpToFile
  - | Opt_DumpWithWays
  - | Opt_D_dump_minimal_imports
  - | Opt_DoCoreLinting
  - | Opt_DoLinearCoreLinting
  - | Opt_DoStgLinting
  - | Opt_DoCmmLinting
  - | Opt_DoAsmLinting
  - | Opt_DoAnnotationLinting
  - | Opt_DoBoundsChecking
  - | Opt_NoLlvmMangler
  - | Opt_FastLlvm
  - | Opt_NoTypeableBinds
  - | Opt_DistinctConstructorTables
  - | Opt_InfoTableMap
  - | Opt_InfoTableMapWithFallback
  - | Opt_InfoTableMapWithStack
  - | Opt_WarnIsError
  - | Opt_ShowWarnGroups
  - | Opt_HideSourcePaths
  - | Opt_PrintExplicitForalls
  - | Opt_PrintExplicitKinds
  - | Opt_PrintExplicitCoercions
  - | Opt_PrintExplicitRuntimeReps
  - | Opt_PrintEqualityRelations
  - | Opt_PrintAxiomIncomps
  - | Opt_PrintUnicodeSyntax
  - | Opt_PrintExpandedSynonyms
  - | Opt_PrintPotentialInstances
  - | Opt_PrintRedundantPromotionTicks
  - | Opt_PrintTypecheckerElaboration
  - | Opt_CallArity
  - | Opt_Exitification
  - | Opt_Strictness
  - | Opt_LateDmdAnal
  - | Opt_KillAbsence
  - | Opt_KillOneShot
  - | Opt_FullLaziness
  - | Opt_FloatIn
  - | Opt_LocalFloatOut
  - | Opt_LocalFloatOutTopLevel
  - | Opt_LateSpecialise
  - | Opt_Specialise
  - | Opt_SpecialiseAggressively
  - | Opt_CrossModuleSpecialise
  - | Opt_PolymorphicSpecialisation
  - | Opt_InlineGenerics
  - | Opt_InlineGenericsAggressively
  - | Opt_StaticArgumentTransformation
  - | Opt_CSE
  - | Opt_StgCSE
  - | Opt_StgLiftLams
  - | Opt_LiberateCase
  - | Opt_SpecConstr
  - | Opt_SpecConstrKeen
  - | Opt_SpecialiseIncoherents
  - | Opt_DoLambdaEtaExpansion
  - | Opt_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_CmmControlFlow
  - | Opt_AsmShortcutting
  - | Opt_OmitYields
  - | Opt_FunToThunk
  - | Opt_DictsStrict
  - | Opt_DmdTxDictSel
  - | Opt_Loopification
  - | Opt_CfgBlocklayout
  - | Opt_WeightlessBlocklayout
  - | Opt_CprAnal
  - | Opt_WorkerWrapper
  - | Opt_WorkerWrapperUnlift
  - | Opt_SolveConstantDicts
  - | Opt_AlignmentSanitisation
  - | Opt_CatchNonexhaustiveCases
  - | Opt_NumConstantFolding
  - | Opt_CoreConstantFolding
  - | Opt_FastPAPCalls
  - | Opt_DoTagInferenceChecks
  - | Opt_SimplPreInlining
  - | Opt_IgnoreInterfacePragmas
  - | Opt_OmitInterfacePragmas
  - | Opt_ExposeAllUnfoldings
  - | Opt_WriteInterface
  - | Opt_WriteHie
  - | Opt_DisableJsMinifier
  - | Opt_AutoSccsOnIndividualCafs
  - | Opt_ProfCountEntries
  - | Opt_ProfLateInlineCcs
  - | Opt_ProfLateCcs
  - | Opt_ProfManualCcs
  - | 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_InsertBreakpoints
  - | Opt_GhciHistory
  - | Opt_GhciLeakCheck
  - | Opt_ValidateHie
  - | Opt_LocalGhciHistory
  - | Opt_NoIt
  - | Opt_HelpfulErrors
  - | Opt_DeferTypeErrors
  - | Opt_DeferTypedHoles
  - | Opt_DeferOutOfScopeVariables
  - | Opt_PIC
  - | Opt_PIE
  - | Opt_PICExecutable
  - | Opt_ExternalDynamicRefs
  - | Opt_Ticky
  - | Opt_Ticky_Allocd
  - | Opt_Ticky_LNE
  - | Opt_Ticky_Dyn_Thunk
  - | Opt_Ticky_Tag
  - | Opt_Ticky_AP
  - | Opt_CmmThreadSanitizer
  - | Opt_RPath
  - | Opt_RelativeDynlibPaths
  - | Opt_CompactUnwind
  - | Opt_Hpc
  - | Opt_FamAppCache
  - | Opt_ExternalInterpreter
  - | Opt_OptimalApplicativeDo
  - | Opt_VersionMacros
  - | Opt_WholeArchiveHsLibs
  - | Opt_SingleLibFolder
  - | Opt_ExposeInternalSymbols
  - | Opt_KeepCAFs
  - | Opt_KeepGoing
  - | Opt_ByteCode
  - | Opt_ByteCodeAndObjectCode
  - | Opt_UnoptimizedCoreForInterpreter
  - | Opt_LinkRts
  - | Opt_ErrorSpans
  - | Opt_DeferDiagnostics
  - | Opt_DiagnosticsShowCaret
  - | Opt_PprCaseAsLet
  - | Opt_PprShowTicks
  - | Opt_ShowHoleConstraints
  - | Opt_ShowValidHoleFits
  - | Opt_SortValidHoleFits
  - | Opt_SortBySizeHoleFits
  - | Opt_SortBySubsumHoleFits
  - | Opt_AbstractRefHoleFits
  - | Opt_UnclutterValidHoleFits
  - | Opt_ShowTypeAppOfHoleFits
  - | Opt_ShowTypeAppVarsOfHoleFits
  - | Opt_ShowDocsOfHoleFits
  - | Opt_ShowTypeOfHoleFits
  - | Opt_ShowProvOfHoleFits
  - | Opt_ShowMatchesOfHoleFits
  - | Opt_ShowLoadedModules
  - | Opt_HexWordLiterals
  - | Opt_SuppressCoercions
  - | Opt_SuppressCoercionTypes
  - | Opt_SuppressVarKinds
  - | Opt_SuppressModulePrefixes
  - | Opt_SuppressTypeApplications
  - | Opt_SuppressIdInfo
  - | Opt_SuppressUnfoldings
  - | Opt_SuppressTypeSignatures
  - | Opt_SuppressUniques
  - | Opt_SuppressStgExts
  - | Opt_SuppressStgReps
  - | Opt_SuppressTicks
  - | Opt_SuppressTimestamps
  - | Opt_SuppressCoreSizes
  - | Opt_ShowErrorContext
  - | Opt_AutoLinkPackages
  - | Opt_ImplicitImportQualified
  - | Opt_KeepHscppFiles
  - | Opt_KeepHiDiffs
  - | Opt_KeepHcFiles
  - | Opt_KeepSFiles
  - | Opt_KeepTmpFiles
  - | Opt_KeepRawTokenStream
  - | Opt_KeepLlvmFiles
  - | Opt_KeepHiFiles
  - | Opt_KeepOFiles
  - | Opt_BuildDynamicToo
  - | Opt_WriteIfSimplifiedCore
  - | Opt_UseBytecodeRatherThanObjects
  - | Opt_DistrustAllPackages
  - | Opt_PackageTrust
  - | Opt_PluginTrustworthy
  - | Opt_G_NoStateHack
  - | Opt_G_NoOptCoercion
- gopt_set :: DynFlags -> GeneralFlag -> DynFlags
- gopt_unset :: DynFlags -> GeneralFlag -> DynFlags
- parseDynamicFilePragma :: MonadIO m => DynFlags -> [Located String] -> m (DynFlags, [Located String], Messages DriverMessage)
- xopt_set :: DynFlags -> Extension -> DynFlags
- xopt_unset :: DynFlags -> Extension -> DynFlags
- xFlags :: [FlagSpec Extension]
- type Errors = ErrorMessages
- type ErrorMessages = Messages GhcMessage
- onError :: String -> Errors -> a
- data FastString
- mkFastString :: String -> FastString
- getOptions :: ParserOpts -> StringBuffer -> FilePath -> (Messages PsMessage, [Located String])
- data GRHS p body
  - = GRHS (XCGRHS p body) [GuardLStmt p] body
  - | XGRHS !(XXGRHS p body)
- data HsExpr p
  - = HsVar (XVar p) (LIdP p)
  - | HsUnboundVar (XUnboundVar p) RdrName
  - | HsRecSel (XRecSel p) (FieldOcc p)
  - | HsOverLabel (XOverLabel p) SourceText FastString
  - | HsIPVar (XIPVar p) HsIPName
  - | HsOverLit (XOverLitE p) (HsOverLit p)
  - | HsLit (XLitE p) (HsLit p)
  - | HsLam (XLam p) (MatchGroup p (LHsExpr p))
  - | HsLamCase (XLamCase p) LamCaseVariant (MatchGroup p (LHsExpr p))
  - | HsApp (XApp p) (LHsExpr p) (LHsExpr p)
  - | HsAppType (XAppTypeE p) (LHsExpr p) !(LHsToken "@" p) (LHsWcType (NoGhcTc p))
  - | OpApp (XOpApp p) (LHsExpr p) (LHsExpr p) (LHsExpr p)
  - | NegApp (XNegApp p) (LHsExpr p) (SyntaxExpr p)
  - | HsPar (XPar p) !(LHsToken "(" p) (LHsExpr p) !(LHsToken ")" p)
  - | SectionL (XSectionL p) (LHsExpr p) (LHsExpr p)
  - | SectionR (XSectionR p) (LHsExpr p) (LHsExpr p)
  - | ExplicitTuple (XExplicitTuple p) [HsTupArg p] Boxity
  - | ExplicitSum (XExplicitSum p) ConTag SumWidth (LHsExpr p)
  - | HsCase (XCase p) (LHsExpr p) (MatchGroup p (LHsExpr p))
  - | HsIf (XIf p) (LHsExpr p) (LHsExpr p) (LHsExpr p)
  - | HsMultiIf (XMultiIf p) [LGRHS p (LHsExpr p)]
  - | HsLet (XLet p) !(LHsToken "let" p) (HsLocalBinds p) !(LHsToken "in" p) (LHsExpr p)
  - | HsDo (XDo p) HsDoFlavour (XRec p [ExprLStmt p])
  - | ExplicitList (XExplicitList p) [LHsExpr p]
  - | RecordCon {
    - rcon_ext :: XRecordCon p
    - rcon_con :: XRec p (ConLikeP p)
    - rcon_flds :: HsRecordBinds p
    }
  - | RecordUpd {
    - rupd_ext :: XRecordUpd p
    - rupd_expr :: LHsExpr p
    - rupd_flds :: LHsRecUpdFields p
    }
  - | HsGetField {
    - gf_ext :: XGetField p
    - gf_expr :: LHsExpr p
    - gf_field :: XRec p (DotFieldOcc p)
    }
  - | HsProjection {
    - proj_ext :: XProjection p
    - proj_flds :: NonEmpty (XRec p (DotFieldOcc p))
    }
  - | ExprWithTySig (XExprWithTySig p) (LHsExpr p) (LHsSigWcType (NoGhcTc p))
  - | ArithSeq (XArithSeq p) (Maybe (SyntaxExpr p)) (ArithSeqInfo p)
  - | HsTypedBracket (XTypedBracket p) (LHsExpr p)
  - | HsUntypedBracket (XUntypedBracket p) (HsQuote p)
  - | HsTypedSplice (XTypedSplice p) (LHsExpr p)
  - | HsUntypedSplice (XUntypedSplice p) (HsUntypedSplice p)
  - | HsProc (XProc p) (LPat p) (LHsCmdTop p)
  - | HsStatic (XStatic p) (LHsExpr p)
  - | HsPragE (XPragE p) (HsPragE p) (LHsExpr p)
  - | XExpr !(XXExpr p)
- data HsMatchContext p
  - = FunRhs {
    - mc_fun :: LIdP (NoGhcTc p)
    - mc_fixity :: LexicalFixity
    - mc_strictness :: SrcStrictness
    }
  - | LambdaExpr
  - | CaseAlt
  - | LamCaseAlt LamCaseVariant
  - | IfAlt
  - | ArrowMatchCtxt HsArrowMatchContext
  - | PatBindRhs
  - | PatBindGuards
  - | RecUpd
  - | StmtCtxt (HsStmtContext p)
  - | ThPatSplice
  - | ThPatQuote
  - | PatSyn
- data HsStmtContext p
  - = HsDoStmt HsDoFlavour
  - | PatGuard (HsMatchContext p)
  - | ParStmtCtxt (HsStmtContext p)
  - | TransStmtCtxt (HsStmtContext p)
  - | ArrowExpr
- data Match p body
  - = Match {
    - m_ext :: XCMatch p body
    - m_ctxt :: HsMatchContext p
    - m_pats :: [LPat p]
    - m_grhss :: GRHSs p body
    }
  - | XMatch !(XXMatch p body)
- data MatchGroup p body
  - = MG {
    - mg_ext :: XMG p body
    - mg_alts :: XRec p [LMatch p body]
    }
  - | XMatchGroup !(XXMatchGroup p body)
- 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 {
    - trS_ext :: XTransStmt idL idR body
    - trS_form :: TransForm
    - trS_stmts :: [ExprLStmt idL]
    - trS_bndrs :: [(IdP idR, IdP idR)]
    - trS_using :: LHsExpr idR
    - trS_by :: Maybe (LHsExpr idR)
    - trS_ret :: SyntaxExpr idR
    - trS_bind :: SyntaxExpr idR
    - trS_fmap :: HsExpr idR
    }
  - | 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)
- data Fixity
- data NewOrData
  - = NewType
  - | DataType
- data DerivStrategy pass
  - = StockStrategy (XStockStrategy pass)
  - | AnyclassStrategy (XAnyClassStrategy pass)
  - | NewtypeStrategy (XNewtypeStrategy pass)
  - | ViaStrategy (XViaStrategy pass)
- data InjectivityAnn pass
  - = InjectivityAnn (XCInjectivityAnn pass) (LIdP pass) [LIdP pass]
  - | XInjectivityAnn !(XXInjectivityAnn pass)
- data RuleBndr pass
  - = RuleBndr (XCRuleBndr pass) (LIdP pass)
  - | RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass)
  - | XRuleBndr !(XXRuleBndr pass)
- data FunDep pass
  - = FunDep (XCFunDep pass) [LIdP pass] [LIdP pass]
  - | XFunDep !(XXFunDep pass)
- type BangType pass = HsType pass
- data Match p body
  - = Match {
    - m_ext :: XCMatch p body
    - m_ctxt :: HsMatchContext p
    - m_pats :: [LPat p]
    - m_grhss :: GRHSs p body
    }
  - | XMatch !(XXMatch p body)
- data AnnKeywordId
  - = AnnAnyclass
  - | AnnAs
  - | AnnBang
  - | AnnBackquote
  - | AnnBy
  - | AnnCase
  - | AnnCases
  - | AnnClass
  - | AnnClose
  - | AnnCloseB
  - | AnnCloseBU
  - | AnnCloseC
  - | AnnCloseQ
  - | AnnCloseQU
  - | AnnCloseP
  - | AnnClosePH
  - | AnnCloseS
  - | AnnColon
  - | AnnComma
  - | AnnCommaTuple
  - | AnnDarrow
  - | AnnDarrowU
  - | AnnData
  - | AnnDcolon
  - | AnnDcolonU
  - | AnnDefault
  - | AnnDeriving
  - | AnnDo
  - | AnnDot
  - | AnnDotdot
  - | AnnElse
  - | AnnEqual
  - | AnnExport
  - | AnnFamily
  - | AnnForall
  - | AnnForallU
  - | AnnForeign
  - | AnnFunId
  - | AnnGroup
  - | AnnHeader
  - | AnnHiding
  - | AnnIf
  - | AnnImport
  - | AnnIn
  - | AnnInfix
  - | AnnInstance
  - | AnnLam
  - | AnnLarrow
  - | AnnLarrowU
  - | AnnLet
  - | AnnLollyU
  - | AnnMdo
  - | AnnMinus
  - | AnnModule
  - | AnnNewtype
  - | AnnName
  - | AnnOf
  - | AnnOpen
  - | AnnOpenB
  - | AnnOpenBU
  - | AnnOpenC
  - | AnnOpenE
  - | AnnOpenEQ
  - | AnnOpenEQU
  - | AnnOpenP
  - | AnnOpenS
  - | AnnOpenPH
  - | AnnDollar
  - | AnnDollarDollar
  - | AnnPackageName
  - | AnnPattern
  - | AnnPercent
  - | AnnPercentOne
  - | AnnProc
  - | AnnQualified
  - | AnnRarrow
  - | AnnRarrowU
  - | AnnRec
  - | AnnRole
  - | AnnSafe
  - | AnnSemi
  - | AnnSimpleQuote
  - | AnnSignature
  - | AnnStatic
  - | AnnStock
  - | AnnThen
  - | AnnThTyQuote
  - | AnnTilde
  - | AnnType
  - | AnnUnit
  - | AnnUsing
  - | AnnVal
  - | AnnValStr
  - | AnnVbar
  - | AnnVia
  - | AnnWhere
  - | Annlarrowtail
  - | AnnlarrowtailU
  - | Annrarrowtail
  - | AnnrarrowtailU
  - | AnnLarrowtail
  - | AnnLarrowtailU
  - | AnnRarrowtail
  - | AnnRarrowtailU
- data AnnDecl pass
  - = HsAnnotation (XHsAnnotation pass) (AnnProvenance pass) (XRec pass (HsExpr pass))
  - | XAnnDecl !(XXAnnDecl pass)
- data IE pass
  - = IEVar (XIEVar pass) (LIEWrappedName pass)
  - | IEThingAbs (XIEThingAbs pass) (LIEWrappedName pass)
  - | IEThingAll (XIEThingAll pass) (LIEWrappedName pass)
  - | IEThingWith (XIEThingWith pass) (LIEWrappedName pass) IEWildcard [LIEWrappedName pass]
  - | IEModuleContents (XIEModuleContents pass) (XRec pass ModuleName)
  - | IEGroup (XIEGroup pass) Int (LHsDoc pass)
  - | IEDoc (XIEDoc pass) (LHsDoc pass)
  - | IEDocNamed (XIEDocNamed pass) String
  - | XIE !(XXIE pass)
- data HsExpr p
  - = HsVar (XVar p) (LIdP p)
  - | HsUnboundVar (XUnboundVar p) RdrName
  - | HsRecSel (XRecSel p) (FieldOcc p)
  - | HsOverLabel (XOverLabel p) SourceText FastString
  - | HsIPVar (XIPVar p) HsIPName
  - | HsOverLit (XOverLitE p) (HsOverLit p)
  - | HsLit (XLitE p) (HsLit p)
  - | HsLam (XLam p) (MatchGroup p (LHsExpr p))
  - | HsLamCase (XLamCase p) LamCaseVariant (MatchGroup p (LHsExpr p))
  - | HsApp (XApp p) (LHsExpr p) (LHsExpr p)
  - | HsAppType (XAppTypeE p) (LHsExpr p) !(LHsToken "@" p) (LHsWcType (NoGhcTc p))
  - | OpApp (XOpApp p) (LHsExpr p) (LHsExpr p) (LHsExpr p)
  - | NegApp (XNegApp p) (LHsExpr p) (SyntaxExpr p)
  - | HsPar (XPar p) !(LHsToken "(" p) (LHsExpr p) !(LHsToken ")" p)
  - | SectionL (XSectionL p) (LHsExpr p) (LHsExpr p)
  - | SectionR (XSectionR p) (LHsExpr p) (LHsExpr p)
  - | ExplicitTuple (XExplicitTuple p) [HsTupArg p] Boxity
  - | ExplicitSum (XExplicitSum p) ConTag SumWidth (LHsExpr p)
  - | HsCase (XCase p) (LHsExpr p) (MatchGroup p (LHsExpr p))
  - | HsIf (XIf p) (LHsExpr p) (LHsExpr p) (LHsExpr p)
  - | HsMultiIf (XMultiIf p) [LGRHS p (LHsExpr p)]
  - | HsLet (XLet p) !(LHsToken "let" p) (HsLocalBinds p) !(LHsToken "in" p) (LHsExpr p)
  - | HsDo (XDo p) HsDoFlavour (XRec p [ExprLStmt p])
  - | ExplicitList (XExplicitList p) [LHsExpr p]
  - | RecordCon {
    - rcon_ext :: XRecordCon p
    - rcon_con :: XRec p (ConLikeP p)
    - rcon_flds :: HsRecordBinds p
    }
  - | RecordUpd {
    - rupd_ext :: XRecordUpd p
    - rupd_expr :: LHsExpr p
    - rupd_flds :: LHsRecUpdFields p
    }
  - | HsGetField {
    - gf_ext :: XGetField p
    - gf_expr :: LHsExpr p
    - gf_field :: XRec p (DotFieldOcc p)
    }
  - | HsProjection {
    - proj_ext :: XProjection p
    - proj_flds :: NonEmpty (XRec p (DotFieldOcc p))
    }
  - | ExprWithTySig (XExprWithTySig p) (LHsExpr p) (LHsSigWcType (NoGhcTc p))
  - | ArithSeq (XArithSeq p) (Maybe (SyntaxExpr p)) (ArithSeqInfo p)
  - | HsTypedBracket (XTypedBracket p) (LHsExpr p)
  - | HsUntypedBracket (XUntypedBracket p) (HsQuote p)
  - | HsTypedSplice (XTypedSplice p) (LHsExpr p)
  - | HsUntypedSplice (XUntypedSplice p) (HsUntypedSplice p)
  - | HsProc (XProc p) (LPat p) (LHsCmdTop p)
  - | HsStatic (XStatic p) (LHsExpr p)
  - | HsPragE (XPragE p) (HsPragE p) (LHsExpr p)
  - | XExpr !(XXExpr p)
- data NoExtField = NoExtField
- data SrcUnpackedness
  - = SrcUnpack
  - | SrcNoUnpack
  - | NoSrcUnpack
- data SrcStrictness
  - = SrcLazy
  - | SrcStrict
  - | NoSrcStrict
- type family NoGhcTc p
- type family XXIEWrappedName p
- type family XIEType p
- type family XIEPattern p
- type family XIEName p
- type family XXIE x
- type family XIEDocNamed x
- type family XIEDoc x
- type family XIEGroup x
- type family XIEModuleContents x
- type family XIEThingWith x
- type family XIEThingAll x
- type family XIEThingAbs x
- type family XIEVar x
- type family ImportDeclPkgQual x
- type family XXImportDecl x
- type family XCImportDecl x
- type family XXFieldOcc x
- type family XCFieldOcc x
- type family XXConDeclField x
- type family XConDeclField x
- data ConDeclField pass
  - = ConDeclField {
    - cd_fld_ext :: XConDeclField pass
    - cd_fld_names :: [LFieldOcc pass]
    - cd_fld_type :: LBangType pass
    - cd_fld_doc :: Maybe (LHsDoc pass)
    }
  - | XConDeclField !(XXConDeclField pass)
- type family XXTyVarBndr x
- type family XKindedTyVar x
- type family XUserTyVar x
- type family XXHsForAllTelescope x
- type family XHsForAllInvis x
- type family XHsForAllVis x
- type family XXTyLit x
- type family XCharTy x
- type family XStrTy x
- type family XNumTy x
- type family XXType x
- type family XWildCardTy x
- type family XTyLit x
- data HsTyLit pass
  - = HsNumTy (XNumTy pass) Integer
  - | HsStrTy (XStrTy pass) FastString
  - | HsCharTy (XCharTy pass) Char
  - | XTyLit !(XXTyLit pass)
- type family XExplicitTupleTy x
- type family XExplicitListTy x
- type family XRecTy x
- type family XBangTy x
- type family XDocTy x
- type family XSpliceTy x
- type family XKindSig x
- type family XStarTy x
- type family XIParamTy x
- type family XParTy x
- type family XOpTy x
- type family XSumTy x
- type family XTupleTy x
- type family XListTy x
- type family XFunTy x
- type family XAppKindTy x
- type family XAppTy x
- type family XTyVar x
- type family XQualTy x
- type family XForAllTy x
- type family XXHsPatSigType x
- type family XHsPS x
- type family XXHsWildCardBndrs x b
- type family XHsWC x b
- type family XXHsSigType x
- type family XHsSig x
- type family XXHsOuterTyVarBndrs x
- type family XHsOuterExplicit x flag
- type family XHsOuterImplicit x
- type family XXLHsQTyVars x
- type family XHsQTvs x
- type family XHsFieldBind x
- type family XXPat x
- type family XCoPat x
- type family XSigPat x
- type family XNPlusKPat x
- type family XNPat x
- type family XLitPat x
- type family XSplicePat x
- type family XViewPat x
- type family XConPat x
- type family XSumPat x
- type family XTuplePat x
- type family XListPat x
- type family XBangPat x
- type family XParPat x
- type family XAsPat x
- type family XLazyPat x
- type family XVarPat x
- type family XWildPat x
- type family XXOverLit x
- type family XOverLit x
- data HsOverLit p
  - = OverLit {
    - ol_ext :: XOverLit p
    - ol_val :: OverLitVal
    }
  - | XOverLit !(XXOverLit p)
- type family XXLit x
- type family XHsDoublePrim x
- type family XHsFloatPrim x
- type family XHsRat x
- type family XHsInteger x
- type family XHsWord64Prim x
- type family XHsWord32Prim x
- type family XHsWord16Prim x
- type family XHsWord8Prim x
- type family XHsInt64Prim x
- type family XHsInt32Prim x
- type family XHsInt16Prim x
- type family XHsInt8Prim x
- type family XHsWordPrim x
- type family XHsIntPrim x
- type family XHsInt x
- type family XHsStringPrim x
- type family XHsString x
- type family XHsCharPrim x
- type family XHsChar x
- type family XXApplicativeArg x
- type family XApplicativeArgMany x
- type family XApplicativeArgOne x
- type family XXParStmtBlock x x'
- type family XParStmtBlock x x'
- data ParStmtBlock idL idR
  - = ParStmtBlock (XParStmtBlock idL idR) [ExprLStmt idL] [IdP idR] (SyntaxExpr idR)
  - | XParStmtBlock !(XXParStmtBlock idL idR)
- type family XXCmd x
- type family XCmdWrap x
- type family XCmdDo x
- type family XCmdLet x
- type family XCmdIf x
- type family XCmdLamCase x
- type family XCmdCase x
- type family XCmdPar x
- type family XCmdLam x
- type family XCmdApp x
- type family XCmdArrForm x
- type family XCmdArrApp x
- type family XXStmtLR x x' b
- type family XRecStmt x x' b
- type family XTransStmt x x' b
- type family XParStmt x x' b
- type family XLetStmt x x' b
- type family XBodyStmt x x' b
- type family XApplicativeStmt x x' b
- type family XBindStmt x x' b
- type family XLastStmt x x' b
- type family XXGRHS x b
- type family XCGRHS x b
- type family XXGRHSs x b
- type family XCGRHSs x b
- type family XXMatch x b
- type family XCMatch x b
- type family XXMatchGroup x b
- type family XMG x b
- type family XXCmdTop x
- type family XCmdTop x
- data HsCmdTop p
  - = HsCmdTop (XCmdTop p) (LHsCmd p)
  - | XCmdTop !(XXCmdTop p)
- type family XXQuote x
- type family XVarBr x
- type family XTypBr x
- type family XDecBrG x
- type family XDecBrL x
- type family XPatBr x
- type family XExpBr x
- type family XXUntypedSplice x
- type family XQuasiQuote x
- type family XUntypedSpliceExpr x
- type family XXTupArg x
- type family XMissing x
- type family XPresent x
- type family XXAmbiguousFieldOcc x
- type family XAmbiguous x
- type family XUnambiguous x
- type family XXPragE x
- type family XSCC x
- type family XXDotFieldOcc x
- type family XCDotFieldOcc x
- type family XXExpr x
- type family XPragE x
- type family XBinTick x
- type family XTick x
- type family XStatic x
- type family XProc x
- type family XUntypedSplice x
- data HsUntypedSplice id
  - = HsUntypedSpliceExpr (XUntypedSpliceExpr id) (LHsExpr id)
  - | HsQuasiQuote (XQuasiQuote id) (IdP id) (XRec id FastString)
  - | XUntypedSplice !(XXUntypedSplice id)
- type family XTypedSplice x
- type family XUntypedBracket x
- type family XTypedBracket x
- type family XArithSeq x
- type family XExprWithTySig x
- type family XProjection x
- type family XGetField x
- type family XLHsOLRecUpdLabels x
- type family XLHsRecUpdLabels x
- type family XRecordUpd x
- type family XRecordCon x
- type family XExplicitList x
- type family XDo x
- type family XLet x
- type family XMultiIf x
- type family XIf x
- type family XCase x
- type family XExplicitSum x
- type family XExplicitTuple x
- type family XSectionR x
- type family XSectionL x
- type family XPar x
- type family XNegApp x
- type family XOpApp x
- type family XAppTypeE x
- type family XApp x
- type family XLamCase x
- type family XLam x
- type family XLitE x
- type family XOverLitE x
- type family XIPVar x
- type family XOverLabel x
- type family XRecSel x
- type family XUnboundVar x
- type family XVar x
- type family XXModule x
- type family XCModule x
- type family XXInjectivityAnn x
- type family XCInjectivityAnn x
- type family XXRoleAnnotDecl x
- type family XCRoleAnnotDecl x
- type family XXAnnDecl x
- type family XHsAnnotation x
- type family XXWarnDecl x
- type family XWarning x
- type family XXWarnDecls x
- type family XWarnings x
- type family XXRuleBndr x
- type family XRuleBndrSig x
- type family XCRuleBndr x
- type family XXRuleDecl x
- type family XHsRule x
- type family XXRuleDecls x
- type family XCRuleDecls x
- type family XXForeignExport x
- type family XCExport x
- type family XXForeignImport x
- type family XCImport x
- type family XXForeignDecl x
- type family XForeignExport x
- data ForeignExport pass
  - = CExport (XCExport pass) (XRec pass CExportSpec)
  - | XForeignExport !(XXForeignExport pass)
- type family XForeignImport x
- data ForeignImport pass
  - = CImport (XCImport pass) (XRec pass CCallConv) (XRec pass Safety) (Maybe Header) CImportSpec
  - | XForeignImport !(XXForeignImport pass)
- type family XXDefaultDecl x
- type family XCDefaultDecl x
- type family XViaStrategy x
- type family XNewtypeStrategy x
- type family XAnyClassStrategy x
- type family XStockStrategy x
- type family XXDerivDecl x
- type family XCDerivDecl x
- type family XXInstDecl x
- type family XTyFamInstD x
- type family XDataFamInstD x
- type family XClsInstD x
- type family XXClsInstDecl x
- type family XCClsInstDecl x
- type family XXTyFamInstDecl x
- type family XCTyFamInstDecl x
- type family XXFamEqn x r
- type family XCFamEqn x r
- type family XXConDecl x
- type family XConDeclH98 x
- type family XConDeclGADT x
- type family XXDerivClauseTys x
- type family XDctMulti x
- type family XDctSingle x
- type family XXHsDerivingClause x
- type family XCHsDerivingClause x
- type family XXHsDataDefn x
- type family XCHsDataDefn x
- type family XXFamilyDecl x
- type family XCFamilyDecl x
- type family XXFamilyResultSig x
- type family XTyVarSig x
- type family XCKindSig x
- type family XNoSig x
- type family XXTyClGroup x
- type family XCTyClGroup x
- type family XXFunDep x
- type family XCFunDep x
- type family XXTyClDecl x
- type family XClassDecl x
- type family XDataDecl x
- type family XSynDecl x
- type family XFamDecl x
- type family XXSpliceDecl x
- type family XSpliceDecl x
- data SpliceDecl p
  - = SpliceDecl (XSpliceDecl p) (XRec p (HsUntypedSplice p)) SpliceDecoration
  - | XSpliceDecl !(XXSpliceDecl p)
- type family XXHsGroup x
- type family XCHsGroup x
- type family XXHsDecl x
- type family XRoleAnnotD x
- type family XDocD x
- type family XSpliceD x
- type family XRuleD x
- type family XAnnD x
- type family XWarningD x
- type family XForD x
- type family XDefD x
- type family XKindSigD x
- type family XSigD x
- type family XValD x
- type family XDerivD x
- type family XInstD x
- type family XTyClD x
- type family XXStandaloneKindSig x
- type family XStandaloneKindSig x
- data StandaloneKindSig pass
  - = StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass)
  - | XStandaloneKindSig !(XXStandaloneKindSig pass)
- type family XXFixitySig x
- type family XFixitySig x
- data FixitySig pass
  - = FixitySig (XFixitySig pass) [LIdP pass] Fixity
  - | XFixitySig !(XXFixitySig pass)
- type family XXSig x
- type family XCompleteMatchSig x
- type family XSCCFunSig x
- type family XMinimalSig x
- type family XSpecInstSig x
- type family XSpecSig x
- type family XInlineSig x
- type family XFixSig x
- type family XIdSig x
- type family XClassOpSig x
- type family XPatSynSig x
- type family XTypeSig x
- type family XXIPBind x
- type family XCIPBind x
- type family XXHsIPBinds x
- type family XIPBinds x
- type family XXPatSynBind x x'
- type family XPSB x x'
- type family XXHsBindsLR x x'
- type family XPatSynBind x x'
- data PatSynBind idL idR
  - = PSB {
    - psb_ext :: XPSB idL idR
    - psb_id :: LIdP idL
    - psb_args :: HsPatSynDetails idR
    - psb_def :: LPat idR
    - psb_dir :: HsPatSynDir idR
    }
  - | XPatSynBind !(XXPatSynBind idL idR)
- type family XVarBind x x'
- type family XPatBind x x'
- type family XFunBind x x'
- type family XXValBindsLR x x'
- type family XValBinds x x'
- type family XXHsLocalBindsLR x x'
- type family XEmptyLocalBinds x x'
- type family XHsIPBinds x x'
- data HsIPBinds id
  - = IPBinds (XIPBinds id) [LIPBind id]
  - | XHsIPBinds !(XXHsIPBinds id)
- type family XHsValBinds x x'
- type LIdP p = XRec p (IdP p)
- type family IdP p
- class WrapXRec p a where
  - wrapXRec :: a -> XRec p a
- class MapXRec p where
  - mapXRec :: Anno a ~ Anno b => (a -> b) -> XRec p a -> XRec p b
- class UnXRec p where
  - unXRec :: XRec p a -> a
- type family Anno a = (b :: Type)
- type family XRec p a = (r :: Type) | r -> a
- data DataConCantHappen
- noExtField :: NoExtField
- dataConCantHappen :: DataConCantHappen -> a
- newtype ModuleName = ModuleName FastString
- stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering
- moduleNameFS :: ModuleName -> FastString
- moduleNameString :: ModuleName -> String
- mkModuleName :: String -> ModuleName
- mkModuleNameFS :: FastString -> ModuleName
- moduleNameSlashes :: ModuleName -> String
- moduleNameColons :: ModuleName -> String
- data IsBootInterface
  - = NotBoot
  - | IsBoot
- type Mult = Type
- data LayoutInfo pass
  - = ExplicitBraces !(LHsToken "{" pass) !(LHsToken "}" pass)
  - | VirtualBraces !Int
  - | NoLayoutInfo
- data HsUniToken (tok :: Symbol) (utok :: Symbol)
  - = HsNormalTok
  - | HsUnicodeTok
- data HsToken (tok :: Symbol) = HsTok
- type LHsUniToken (tok :: Symbol) (utok :: Symbol) p = XRec p (HsUniToken tok utok)
- type LHsToken (tok :: Symbol) p = XRec p (HsToken tok)
- newtype HsDocStringChunk = HsDocStringChunk ByteString
- type LHsDocStringChunk = Located HsDocStringChunk
- data HsDocStringDecorator
  - = HsDocStringNext
  - | HsDocStringPrevious
  - | HsDocStringNamed !String
  - | HsDocStringGroup !Int
- data HsDocString
  - = MultiLineDocString !HsDocStringDecorator !(NonEmpty LHsDocStringChunk)
  - | NestedDocString !HsDocStringDecorator LHsDocStringChunk
  - | GeneratedDocString HsDocStringChunk
- type LHsDocString = Located HsDocString
- pprWithDocString :: HsDocString -> SDoc -> SDoc
- mkHsDocStringChunk :: String -> HsDocStringChunk
- mkHsDocStringChunkUtf8ByteString :: ByteString -> HsDocStringChunk
- unpackHDSC :: HsDocStringChunk -> String
- mkGeneratedHsDocString :: String -> HsDocString
- isEmptyDocString :: HsDocString -> Bool
- docStringChunks :: HsDocString -> [LHsDocStringChunk]
- pprHsDocString :: HsDocString -> SDoc
- pprHsDocStrings :: [HsDocString] -> SDoc
- exactPrintHsDocString :: HsDocString -> String
- renderHsDocString :: HsDocString -> String
- renderHsDocStrings :: [HsDocString] -> String
- type LPat p = XRec p (Pat p)
- type LHsExpr p = XRec p (HsExpr p)
- type family SyntaxExpr p
- data GRHSs p body
  - = GRHSs {
    - grhssExt :: XCGRHSs p body
    - grhssGRHSs :: [LGRHS p body]
    - grhssLocalBinds :: HsLocalBinds p
    }
  - | XGRHSs !(XXGRHSs p body)
- data MatchGroup p body
  - = MG {
    - mg_ext :: XMG p body
    - mg_alts :: XRec p [LMatch p body]
    }
  - | XMatchGroup !(XXMatchGroup p body)
- data PromotionFlag
  - = NotPromoted
  - | IsPromoted
- isPromoted :: PromotionFlag -> Bool
- data CImportSpec
  - = CLabel CLabelString
  - | CFunction CCallTarget
  - | CWrapper
- data NoEpAnns = NoEpAnns
- type EpAnnCO = EpAnn NoEpAnns
- data AnnSortKey
  - = NoAnnSortKey
  - | AnnSortKey [RealSrcSpan]
- data AnnPragma = AnnPragma {
  - apr_open :: AddEpAnn
  - apr_close :: AddEpAnn
  - apr_rest :: [AddEpAnn]
  }
- data NameAdornment
  - = NameParens
  - | NameParensHash
  - | NameBackquotes
  - | NameSquare
- data NameAnn
  - = NameAnn {
    - nann_adornment :: NameAdornment
    - nann_open :: EpaLocation
    - nann_name :: EpaLocation
    - nann_close :: EpaLocation
    - nann_trailing :: [TrailingAnn]
    }
  - | NameAnnCommas {
    - nann_adornment :: NameAdornment
    - nann_open :: EpaLocation
    - nann_commas :: [EpaLocation]
    - nann_close :: EpaLocation
    - nann_trailing :: [TrailingAnn]
    }
  - | NameAnnBars {
    - nann_adornment :: NameAdornment
    - nann_open :: EpaLocation
    - nann_bars :: [EpaLocation]
    - nann_close :: EpaLocation
    - nann_trailing :: [TrailingAnn]
    }
  - | NameAnnOnly {
    - nann_adornment :: NameAdornment
    - nann_open :: EpaLocation
    - nann_close :: EpaLocation
    - nann_trailing :: [TrailingAnn]
    }
  - | NameAnnRArrow {
    - nann_unicode :: Bool
    - nann_mopen :: Maybe EpaLocation
    - nann_name :: EpaLocation
    - nann_mclose :: Maybe EpaLocation
    - nann_trailing :: [TrailingAnn]
    }
  - | NameAnnQuote {
    - nann_quote :: EpaLocation
    - nann_quoted :: SrcSpanAnnN
    - nann_trailing :: [TrailingAnn]
    }
  - | NameAnnTrailing {
    - nann_trailing :: [TrailingAnn]
    }
- data AnnContext = AnnContext {
  - ac_darrow :: Maybe (IsUnicodeSyntax, EpaLocation)
  - ac_open :: [EpaLocation]
  - ac_close :: [EpaLocation]
  }
- data ParenType
  - = AnnParens
  - | AnnParensHash
  - | AnnParensSquare
- data AnnParen = AnnParen {
  - ap_adornment :: ParenType
  - ap_open :: EpaLocation
  - ap_close :: EpaLocation
  }
- data AnnList = AnnList {
  - al_anchor :: Maybe Anchor
  - al_open :: Maybe AddEpAnn
  - al_close :: Maybe AddEpAnn
  - al_rest :: [AddEpAnn]
  - al_trailing :: [TrailingAnn]
  }
- data AnnListItem = AnnListItem {
  - lann_trailing :: [TrailingAnn]
  }
- data TrailingAnn
  - = AddSemiAnn EpaLocation
  - | AddCommaAnn EpaLocation
  - | AddVbarAnn EpaLocation
- type LocatedAn an = GenLocated (SrcAnn an)
- type SrcSpanAnnC = SrcAnn AnnContext
- type SrcSpanAnnP = SrcAnn AnnPragma
- type SrcSpanAnnL = SrcAnn AnnList
- type SrcSpanAnnN = SrcAnn NameAnn
- type SrcSpanAnnA = SrcAnn AnnListItem
- type LocatedC = GenLocated SrcSpanAnnC
- type LocatedP = GenLocated SrcSpanAnnP
- type LocatedL = GenLocated SrcSpanAnnL
- type LocatedN = GenLocated SrcSpanAnnN
- type LocatedA = GenLocated SrcSpanAnnA
- type SrcAnn ann = SrcSpanAnn' (EpAnn ann)
- data SrcSpanAnn' a = SrcSpanAnn {
  - ann :: !a
  - locA :: !SrcSpan
  }
- type LEpaComment = GenLocated Anchor EpaComment
- data EpAnnComments
  - = EpaComments {
    - priorComments :: ![LEpaComment]
    }
  - | EpaCommentsBalanced {
    - priorComments :: ![LEpaComment]
    - followingComments :: ![LEpaComment]
    }
- data AnchorOperation
  - = UnchangedAnchor
  - | MovedAnchor DeltaPos
- data Anchor = Anchor {
  - anchor :: RealSrcSpan
  - anchor_op :: AnchorOperation
  }
- data EpAnn ann
  - = EpAnn {
    - entry :: !Anchor
    - anns :: !ann
    - comments :: !EpAnnComments
    }
  - | EpAnnNotUsed
- data DeltaPos
  - = SameLine {
    - deltaColumn :: !Int
    }
  - | DifferentLine {
    - deltaLine :: !Int
    - deltaColumn :: !Int
    }
- data TokenLocation
  - = NoTokenLoc
  - | TokenLoc !EpaLocation
- data EpaLocation
  - = EpaSpan !RealSrcSpan !(Maybe BufSpan)
  - | EpaDelta !DeltaPos ![LEpaComment]
- data AddEpAnn = AddEpAnn AnnKeywordId EpaLocation
- data EpaCommentTok
  - = EpaDocComment HsDocString
  - | EpaDocOptions String
  - | EpaLineComment String
  - | EpaBlockComment String
  - | EpaEofComment
- data EpaComment = EpaComment {
  - ac_tok :: EpaCommentTok
  - ac_prior_tok :: RealSrcSpan
  }
- data HasE
  - = HasE
  - | NoE
- data IsUnicodeSyntax
  - = UnicodeSyntax
  - | NormalSyntax
- unicodeAnn :: AnnKeywordId -> AnnKeywordId
- getTokenSrcSpan :: TokenLocation -> SrcSpan
- deltaPos :: Int -> Int -> DeltaPos
- getDeltaLine :: DeltaPos -> Int
- epaLocationRealSrcSpan :: EpaLocation -> RealSrcSpan
- epaLocationFromSrcAnn :: SrcAnn ann -> EpaLocation
- spanAsAnchor :: SrcSpan -> Anchor
- realSpanAsAnchor :: RealSrcSpan -> Anchor
- emptyComments :: EpAnnComments
- parenTypeKws :: ParenType -> (AnnKeywordId, AnnKeywordId)
- trailingAnnToAddEpAnn :: TrailingAnn -> AddEpAnn
- addTrailingAnnToL :: SrcSpan -> TrailingAnn -> EpAnnComments -> EpAnn AnnList -> EpAnn AnnList
- addTrailingAnnToA :: SrcSpan -> TrailingAnn -> EpAnnComments -> EpAnn AnnListItem -> EpAnn AnnListItem
- addTrailingCommaToN :: SrcSpan -> EpAnn NameAnn -> EpaLocation -> EpAnn NameAnn
- l2n :: LocatedAn a1 a2 -> LocatedN a2
- n2l :: LocatedN a -> LocatedA a
- la2na :: SrcSpanAnn' a -> SrcSpanAnnN
- la2la :: LocatedAn ann1 a2 -> LocatedAn ann2 a2
- l2l :: SrcSpanAnn' a -> SrcAnn ann
- na2la :: SrcSpanAnn' a -> SrcAnn ann
- reLoc :: LocatedAn a e -> Located e
- reLocA :: Located e -> LocatedAn ann e
- reLocL :: LocatedN e -> LocatedA e
- reLocC :: LocatedN e -> LocatedC e
- reLocN :: LocatedN a -> Located a
- realSrcSpan :: SrcSpan -> RealSrcSpan
- srcSpan2e :: SrcSpan -> EpaLocation
- la2e :: SrcSpanAnn' a -> EpaLocation
- extraToAnnList :: AnnList -> [AddEpAnn] -> AnnList
- reAnn :: [TrailingAnn] -> EpAnnComments -> Located a -> LocatedA a
- reAnnC :: AnnContext -> EpAnnComments -> Located a -> LocatedC a
- reAnnL :: ann -> EpAnnComments -> Located e -> GenLocated (SrcAnn ann) e
- getLocAnn :: Located a -> SrcSpanAnnA
- getLocA :: GenLocated (SrcSpanAnn' a) e -> SrcSpan
- noLocA :: a -> LocatedAn an a
- noAnnSrcSpan :: SrcSpan -> SrcAnn ann
- noSrcSpanA :: SrcAnn ann
- noAnn :: EpAnn a
- addAnns :: EpAnn [AddEpAnn] -> [AddEpAnn] -> EpAnnComments -> EpAnn [AddEpAnn]
- addAnnsA :: SrcSpanAnnA -> [TrailingAnn] -> EpAnnComments -> SrcSpanAnnA
- widenSpan :: SrcSpan -> [AddEpAnn] -> SrcSpan
- widenAnchor :: Anchor -> [AddEpAnn] -> Anchor
- widenAnchorR :: Anchor -> RealSrcSpan -> Anchor
- widenLocatedAn :: SrcSpanAnn' an -> [AddEpAnn] -> SrcSpanAnn' an
- epAnnAnnsL :: EpAnn a -> [a]
- epAnnAnns :: EpAnn [AddEpAnn] -> [AddEpAnn]
- annParen2AddEpAnn :: EpAnn AnnParen -> [AddEpAnn]
- epAnnComments :: EpAnn an -> EpAnnComments
- sortLocatedA :: [GenLocated (SrcSpanAnn' a) e] -> [GenLocated (SrcSpanAnn' a) e]
- mapLocA :: (a -> b) -> GenLocated SrcSpan a -> GenLocated (SrcAnn ann) b
- combineLocsA :: Semigroup a => GenLocated (SrcAnn a) e1 -> GenLocated (SrcAnn a) e2 -> SrcAnn a
- combineSrcSpansA :: Semigroup a => SrcAnn a -> SrcAnn a -> SrcAnn a
- addCLocA :: GenLocated (SrcSpanAnn' a) e1 -> GenLocated SrcSpan e2 -> e3 -> GenLocated (SrcAnn ann) e3
- addCLocAA :: GenLocated (SrcSpanAnn' a1) e1 -> GenLocated (SrcSpanAnn' a2) e2 -> e3 -> GenLocated (SrcAnn ann) e3
- getFollowingComments :: EpAnnComments -> [LEpaComment]
- setFollowingComments :: EpAnnComments -> [LEpaComment] -> EpAnnComments
- setPriorComments :: EpAnnComments -> [LEpaComment] -> EpAnnComments
- noComments :: EpAnnCO
- placeholderRealSpan :: RealSrcSpan
- comment :: RealSrcSpan -> EpAnnComments -> EpAnnCO
- addCommentsToSrcAnn :: Monoid ann => SrcAnn ann -> EpAnnComments -> SrcAnn ann
- setCommentsSrcAnn :: Monoid ann => SrcAnn ann -> EpAnnComments -> SrcAnn ann
- addCommentsToEpAnn :: Monoid a => SrcSpan -> EpAnn a -> EpAnnComments -> EpAnn a
- setCommentsEpAnn :: Monoid a => SrcSpan -> EpAnn a -> EpAnnComments -> EpAnn a
- transferAnnsA :: SrcSpanAnnA -> SrcSpanAnnA -> (SrcSpanAnnA, SrcSpanAnnA)
- commentsOnlyA :: Monoid ann => SrcAnn ann -> SrcAnn ann
- removeCommentsA :: SrcAnn ann -> SrcAnn ann
- type OutputableBndrId (pass :: Pass) = (OutputableBndr (IdGhcP pass), OutputableBndr (IdGhcP (NoGhcTcPass pass)), Outputable (GenLocated (Anno (IdGhcP pass)) (IdGhcP pass)), Outputable (GenLocated (Anno (IdGhcP (NoGhcTcPass pass))) (IdGhcP (NoGhcTcPass pass))), IsPass pass)
- type family NoGhcTcPass (p :: Pass) :: Pass where ...
- type family IdGhcP (pass :: Pass) where ...
- class (NoGhcTcPass (NoGhcTcPass p) ~ NoGhcTcPass p, IsPass (NoGhcTcPass p)) => IsPass (p :: Pass) where
  - ghcPass :: GhcPass p
- type GhcTc = GhcPass 'Typechecked
- data GhcPass (c :: Pass) where
  - GhcPs :: GhcPass 'Parsed
  - GhcRn :: GhcPass 'Renamed
  - GhcTc :: GhcPass 'Typechecked
- type GhcRn = GhcPass 'Renamed
- type GhcPs = GhcPass 'Parsed
- data Pass
  - = Parsed
  - | Renamed
  - | Typechecked
- type IsSrcSpanAnn (p :: Pass) a = (Anno (IdGhcP p) ~ SrcSpanAnn' (EpAnn a), IsPass p)
- pprIfPs :: forall (p :: Pass). IsPass p => (p ~ 'Parsed => SDoc) -> SDoc
- pprIfRn :: forall (p :: Pass). IsPass p => (p ~ 'Renamed => SDoc) -> SDoc
- pprIfTc :: forall (p :: Pass). IsPass p => (p ~ 'Typechecked => SDoc) -> SDoc
- noHsTok :: forall (tok :: Symbol). GenLocated TokenLocation (HsToken tok)
- noHsUniTok :: forall (tok :: Symbol) (utok :: Symbol). GenLocated TokenLocation (HsUniToken tok utok)
- data ExtractedTHDocs = ExtractedTHDocs {
  - ethd_mod_header :: Maybe (HsDoc GhcRn)
  - ethd_decl_docs :: UniqMap Name (HsDoc GhcRn)
  - ethd_arg_docs :: UniqMap Name (IntMap (HsDoc GhcRn))
  - ethd_inst_docs :: UniqMap Name (HsDoc GhcRn)
  }
- data Docs = Docs {
  - docs_mod_hdr :: Maybe (HsDoc GhcRn)
  - docs_decls :: UniqMap Name [HsDoc GhcRn]
  - docs_args :: UniqMap Name (IntMap (HsDoc GhcRn))
  - docs_structure :: DocStructure
  - docs_named_chunks :: Map String (HsDoc GhcRn)
  - docs_haddock_opts :: Maybe String
  - docs_language :: Maybe Language
  - docs_extensions :: EnumSet Extension
  }
- type DocStructure = [DocStructureItem]
- data DocStructureItem
  - = DsiSectionHeading !Int !(HsDoc GhcRn)
  - | DsiDocChunk !(HsDoc GhcRn)
  - | DsiNamedChunkRef !String
  - | DsiExports !Avails
  - | DsiModExport !(NonEmpty ModuleName) !Avails
- type LHsDoc pass = Located (HsDoc pass)
- data WithHsDocIdentifiers a pass = WithHsDocIdentifiers {
  - hsDocString :: !a
  - hsDocIdentifiers :: ![Located (IdP pass)]
  }
- type HsDoc = WithHsDocIdentifiers HsDocString
- hsDocIds :: WithHsDocIdentifiers a GhcRn -> NameSet
- pprWithDoc :: LHsDoc name -> SDoc -> SDoc
- pprMaybeWithDoc :: Maybe (LHsDoc name) -> SDoc -> SDoc
- pprHsDocDebug :: Outputable (IdP name) => HsDoc name -> SDoc
- emptyDocs :: Docs
- type LIEWrappedName p = XRec p (IEWrappedName p)
- data IEWrappedName p
  - = IEName (XIEName p) (LIdP p)
  - | IEPattern (XIEPattern p) (LIdP p)
  - | IEType (XIEType p) (LIdP p)
  - | XIEWrappedName !(XXIEWrappedName p)
- data IEWildcard
  - = NoIEWildcard
  - | IEWildcard Int
- type LIE pass = XRec pass (IE pass)
- data ImportListInterpretation
  - = Exactly
  - | EverythingBut
- data ImportDecl pass
  - = ImportDecl {
    - ideclExt :: XCImportDecl pass
    - ideclName :: XRec pass ModuleName
    - ideclPkgQual :: ImportDeclPkgQual pass
    - ideclSource :: IsBootInterface
    - ideclSafe :: Bool
    - ideclQualified :: ImportDeclQualifiedStyle
    - ideclAs :: Maybe (XRec pass ModuleName)
    - ideclImportList :: Maybe (ImportListInterpretation, XRec pass [LIE pass])
    }
  - | XImportDecl !(XXImportDecl pass)
- data ImportDeclQualifiedStyle
  - = QualifiedPre
  - | QualifiedPost
  - | NotQualified
- type LImportDecl pass = XRec pass (ImportDecl pass)
- data WarnDecls pass
  - = Warnings {
    - wd_ext :: XWarnings pass
    - wd_warnings :: [LWarnDecl pass]
    }
  - | XWarnDecls !(XXWarnDecls pass)
- data EpAnnImportDecl = EpAnnImportDecl {
  - importDeclAnnImport :: EpaLocation
  - importDeclAnnPragma :: Maybe (EpaLocation, EpaLocation)
  - importDeclAnnSafe :: Maybe EpaLocation
  - importDeclAnnQualified :: Maybe EpaLocation
  - importDeclAnnPackage :: Maybe EpaLocation
  - importDeclAnnAs :: Maybe EpaLocation
  }
- data XImportDeclPass = XImportDeclPass {
  - ideclAnn :: EpAnn EpAnnImportDecl
  - ideclSourceText :: SourceText
  - ideclImplicit :: Bool
  }
- importDeclQualifiedStyle :: Maybe EpaLocation -> Maybe EpaLocation -> (Maybe EpaLocation, ImportDeclQualifiedStyle)
- isImportDeclQualified :: ImportDeclQualifiedStyle -> Bool
- simpleImportDecl :: ModuleName -> ImportDecl GhcPs
- ieName :: forall (p :: Pass). IE (GhcPass p) -> IdP (GhcPass p)
- ieNames :: forall (p :: Pass). IE (GhcPass p) -> [IdP (GhcPass p)]
- ieDeprecation :: forall (p :: Pass). IsPass p => IE (GhcPass p) -> Maybe (WarningTxt (GhcPass p))
- ieWrappedLName :: forall (p :: Pass). IEWrappedName (GhcPass p) -> LIdP (GhcPass p)
- ieWrappedName :: forall (p :: Pass). IEWrappedName (GhcPass p) -> IdP (GhcPass p)
- lieWrappedName :: forall (p :: Pass). LIEWrappedName (GhcPass p) -> IdP (GhcPass p)
- ieLWrappedName :: forall (p :: Pass). LIEWrappedName (GhcPass p) -> LIdP (GhcPass p)
- replaceWrappedName :: IEWrappedName GhcPs -> IdP GhcRn -> IEWrappedName GhcRn
- replaceLWrappedName :: LIEWrappedName GhcPs -> IdP GhcRn -> LIEWrappedName GhcRn
- pprImpExp :: (HasOccName name, OutputableBndr name) => name -> SDoc
- data OverLitVal
  - = HsIntegral !IntegralLit
  - | HsFractional !FractionalLit
  - | HsIsString !SourceText !FastString
- data HsLit x
  - = HsChar (XHsChar x) Char
  - | HsCharPrim (XHsCharPrim x) Char
  - | HsString (XHsString x) FastString
  - | HsStringPrim (XHsStringPrim x) !ByteString
  - | HsInt (XHsInt x) IntegralLit
  - | HsIntPrim (XHsIntPrim x) Integer
  - | HsWordPrim (XHsWordPrim x) Integer
  - | HsInt8Prim (XHsInt8Prim x) Integer
  - | HsInt16Prim (XHsInt16Prim x) Integer
  - | HsInt32Prim (XHsInt32Prim x) Integer
  - | HsInt64Prim (XHsInt64Prim x) Integer
  - | HsWord8Prim (XHsWord8Prim x) Integer
  - | HsWord16Prim (XHsWord16Prim x) Integer
  - | HsWord32Prim (XHsWord32Prim x) Integer
  - | HsWord64Prim (XHsWord64Prim x) Integer
  - | HsInteger (XHsInteger x) Integer Type
  - | HsRat (XHsRat x) FractionalLit Type
  - | HsFloatPrim (XHsFloatPrim x) FractionalLit
  - | HsDoublePrim (XHsDoublePrim x) FractionalLit
  - | XLit !(XXLit x)
- negateOverLitVal :: OverLitVal -> OverLitVal
- data HsImplBang
  - = HsLazy
  - | HsStrict Bool
  - | HsUnpack (Maybe Coercion)
- data HsSrcBang = HsSrcBang SourceText SrcUnpackedness SrcStrictness
- data AmbiguousFieldOcc pass
  - = Unambiguous (XUnambiguous pass) (XRec pass RdrName)
  - | Ambiguous (XAmbiguous pass) (XRec pass RdrName)
  - | XAmbiguousFieldOcc !(XXAmbiguousFieldOcc pass)
- type LAmbiguousFieldOcc pass = XRec pass (AmbiguousFieldOcc pass)
- data FieldOcc pass
  - = FieldOcc {
    - foExt :: XCFieldOcc pass
    - foLabel :: XRec pass RdrName
    }
  - | XFieldOcc !(XXFieldOcc pass)
- type LFieldOcc pass = XRec pass (FieldOcc pass)
- type LHsTypeArg p = HsArg p (LHsType p) (LHsKind p)
- data HsArg p tm ty
  - = HsValArg tm
  - | HsTypeArg !(LHsToken "@" p) ty
  - | HsArgPar SrcSpan
- data HsConDetails tyarg arg rec
  - = PrefixCon [tyarg] [arg]
  - | RecCon rec
  - | InfixCon arg arg
- type LConDeclField pass = XRec pass (ConDeclField pass)
- data HsTupleSort
  - = HsUnboxedTuple
  - | HsBoxedOrConstraintTuple
- data HsScaled pass a = HsScaled (HsArrow pass) a
- data HsLinearArrowTokens pass
  - = HsPct1 !(LHsToken "%1" pass) !(LHsUniToken "->" "\8594" pass)
  - | HsLolly !(LHsToken "\8888" pass)
- data HsArrow pass
  - = HsUnrestrictedArrow !(LHsUniToken "->" "\8594" pass)
  - | HsLinearArrow !(HsLinearArrowTokens pass)
  - | HsExplicitMult !(LHsToken "%" pass) !(LHsType pass) !(LHsUniToken "->" "\8594" pass)
- data HsType pass
  - = HsForAllTy {
    - hst_xforall :: XForAllTy pass
    - hst_tele :: HsForAllTelescope pass
    - hst_body :: LHsType pass
    }
  - | HsQualTy {
    - hst_xqual :: XQualTy pass
    - hst_ctxt :: LHsContext pass
    - hst_body :: LHsType pass
    }
  - | HsTyVar (XTyVar pass) PromotionFlag (LIdP pass)
  - | HsAppTy (XAppTy pass) (LHsType pass) (LHsType pass)
  - | HsAppKindTy (XAppKindTy pass) (LHsType pass) !(LHsToken "@" pass) (LHsKind pass)
  - | HsFunTy (XFunTy pass) (HsArrow pass) (LHsType pass) (LHsType pass)
  - | HsListTy (XListTy pass) (LHsType pass)
  - | HsTupleTy (XTupleTy pass) HsTupleSort [LHsType pass]
  - | HsSumTy (XSumTy pass) [LHsType pass]
  - | HsOpTy (XOpTy pass) PromotionFlag (LHsType pass) (LIdP pass) (LHsType pass)
  - | HsParTy (XParTy pass) (LHsType pass)
  - | HsIParamTy (XIParamTy pass) (XRec pass HsIPName) (LHsType pass)
  - | HsStarTy (XStarTy pass) Bool
  - | HsKindSig (XKindSig pass) (LHsType pass) (LHsKind pass)
  - | HsSpliceTy (XSpliceTy pass) (HsUntypedSplice pass)
  - | HsDocTy (XDocTy pass) (LHsType pass) (LHsDoc pass)
  - | HsBangTy (XBangTy pass) HsSrcBang (LHsType pass)
  - | HsRecTy (XRecTy pass) [LConDeclField pass]
  - | HsExplicitListTy (XExplicitListTy pass) PromotionFlag [LHsType pass]
  - | HsExplicitTupleTy (XExplicitTupleTy pass) [LHsType pass]
  - | HsTyLit (XTyLit pass) (HsTyLit pass)
  - | HsWildCardTy (XWildCardTy pass)
  - | XHsType !(XXType pass)
- data HsBndrVis pass
  - = HsBndrRequired
  - | HsBndrInvisible (LHsToken "@" pass)
- data HsTyVarBndr flag pass
  - = UserTyVar (XUserTyVar pass) flag (LIdP pass)
  - | KindedTyVar (XKindedTyVar pass) flag (LIdP pass) (LHsKind pass)
  - | XTyVarBndr !(XXTyVarBndr pass)
- newtype HsIPName = HsIPName FastString
- data HsSigType pass
  - = HsSig {
    - sig_ext :: XHsSig pass
    - sig_bndrs :: HsOuterSigTyVarBndrs pass
    - sig_body :: LHsType pass
    }
  - | XHsSigType !(XXHsSigType pass)
- type LHsSigWcType pass = HsWildCardBndrs pass (LHsSigType pass)
- type LHsWcType pass = HsWildCardBndrs pass (LHsType pass)
- type LHsSigType pass = XRec pass (HsSigType pass)
- data HsPatSigType pass
  - = HsPS {
    - hsps_ext :: XHsPS pass
    - hsps_body :: LHsType pass
    }
  - | XHsPatSigType !(XXHsPatSigType pass)
- data HsWildCardBndrs pass thing
  - = HsWC {
    - hswc_ext :: XHsWC pass thing
    - hswc_body :: thing
    }
  - | XHsWildCardBndrs !(XXHsWildCardBndrs pass thing)
- type HsOuterFamEqnTyVarBndrs = HsOuterTyVarBndrs ()
- type HsOuterSigTyVarBndrs = HsOuterTyVarBndrs Specificity
- data HsOuterTyVarBndrs flag pass
  - = HsOuterImplicit {
    - hso_ximplicit :: XHsOuterImplicit pass
    }
  - | HsOuterExplicit {
    - hso_xexplicit :: XHsOuterExplicit pass flag
    - hso_bndrs :: [LHsTyVarBndr flag (NoGhcTc pass)]
    }
  - | XHsOuterTyVarBndrs !(XXHsOuterTyVarBndrs pass)
- data LHsQTyVars pass
  - = HsQTvs {
    - hsq_ext :: XHsQTvs pass
    - hsq_explicit :: [LHsTyVarBndr (HsBndrVis pass) pass]
    }
  - | XLHsQTyVars !(XXLHsQTyVars pass)
- type LHsTyVarBndr flag pass = XRec pass (HsTyVarBndr flag pass)
- data HsForAllTelescope pass
  - = HsForAllVis {
    - hsf_xvis :: XHsForAllVis pass
    - hsf_vis_bndrs :: [LHsTyVarBndr () pass]
    }
  - | HsForAllInvis {
    - hsf_xinvis :: XHsForAllInvis pass
    - hsf_invis_bndrs :: [LHsTyVarBndr Specificity pass]
    }
  - | XHsForAllTelescope !(XXHsForAllTelescope pass)
- type LHsKind pass = XRec pass (HsKind pass)
- type HsKind pass = HsType pass
- type LHsType pass = XRec pass (HsType pass)
- type HsContext pass = [LHsType pass]
- type LHsContext pass = XRec pass (HsContext pass)
- type LBangType pass = XRec pass (BangType pass)
- hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr (HsBndrVis pass) pass]
- hsPatSigType :: HsPatSigType pass -> LHsType pass
- mapHsOuterImplicit :: (XHsOuterImplicit pass -> XHsOuterImplicit pass) -> HsOuterTyVarBndrs flag pass -> HsOuterTyVarBndrs flag pass
- hsIPNameFS :: HsIPName -> FastString
- isHsBndrInvisible :: HsBndrVis pass -> Bool
- isHsKindedTyVar :: HsTyVarBndr flag pass -> Bool
- hsMult :: HsScaled pass a -> HsArrow pass
- hsScaledThing :: HsScaled pass a -> a
- noTypeArgs :: [Void]
- conDetailsArity :: (rec -> Arity) -> HsConDetails tyarg arg rec -> Arity
- data HsFieldBind lhs rhs = HsFieldBind {
  - hfbAnn :: XHsFieldBind lhs
  - hfbLHS :: lhs
  - hfbRHS :: rhs
  - hfbPun :: Bool
  }
- type HsRecUpdField p q = HsFieldBind (LAmbiguousFieldOcc p) (LHsExpr q)
- type HsRecField p arg = HsFieldBind (LFieldOcc p) arg
- type LHsRecUpdField p q = XRec p (HsRecUpdField p q)
- type LHsRecField p arg = XRec p (HsRecField p arg)
- type LHsFieldBind p id arg = XRec p (HsFieldBind id arg)
- newtype RecFieldsDotDot = RecFieldsDotDot {
  - unRecFieldsDotDot :: Int
  }
- data HsRecFields p arg = HsRecFields {
  - rec_flds :: [LHsRecField p arg]
  - rec_dotdot :: Maybe (XRec p RecFieldsDotDot)
  }
- type HsConPatDetails p = HsConDetails (HsConPatTyArg (NoGhcTc p)) (LPat p) (HsRecFields p (LPat p))
- data HsConPatTyArg p = HsConPatTyArg !(LHsToken "@" p) (HsPatSigType p)
- type family ConLikeP x
- pattern WildPat :: XWildPat p -> Pat p
- pattern VarPat :: XVarPat p -> LIdP p -> Pat p
- pattern LazyPat :: XLazyPat p -> LPat p -> Pat p
- pattern AsPat :: XAsPat p -> LIdP p -> !(LHsToken "@" p) -> LPat p -> Pat p
- pattern ParPat :: XParPat p -> !(LHsToken "(" p) -> LPat p -> !(LHsToken ")" p) -> Pat p
- pattern BangPat :: XBangPat p -> LPat p -> Pat p
- pattern ListPat :: XListPat p -> [LPat p] -> Pat p
- pattern TuplePat :: XTuplePat p -> [LPat p] -> Boxity -> Pat p
- pattern SumPat :: XSumPat p -> LPat p -> ConTag -> SumWidth -> Pat p
- pattern ConPat :: XConPat p -> XRec p (ConLikeP p) -> HsConPatDetails p -> Pat p
- pattern ViewPat :: XViewPat p -> LHsExpr p -> LPat p -> Pat p
- pattern SplicePat :: XSplicePat p -> HsUntypedSplice p -> Pat p
- pattern LitPat :: XLitPat p -> HsLit p -> Pat p
- pattern NPat :: XNPat p -> XRec p (HsOverLit p) -> Maybe (SyntaxExpr p) -> SyntaxExpr p -> Pat p
- pattern NPlusKPat :: XNPlusKPat p -> LIdP p -> XRec p (HsOverLit p) -> HsOverLit p -> SyntaxExpr p -> SyntaxExpr p -> Pat p
- pattern SigPat :: XSigPat p -> LPat p -> HsPatSigType (NoGhcTc p) -> Pat p
- pattern XPat :: !(XXPat p) -> Pat p
- pat_args :: Pat p -> HsConPatDetails p
- pat_con :: Pat p -> XRec p (ConLikeP p)
- pat_con_ext :: Pat p -> XConPat p
- hsConPatArgs :: UnXRec p => HsConPatDetails p -> [LPat p]
- hsRecFields :: UnXRec p => HsRecFields p arg -> [XCFieldOcc p]
- hsRecFieldsArgs :: UnXRec p => HsRecFields p arg -> [arg]
- hsRecFieldSel :: UnXRec p => HsRecField p arg -> XCFieldOcc p
- pprLPat :: forall (p :: Pass). OutputableBndrId p => LPat (GhcPass p) -> SDoc
- data HsPatSynDir id
  - = Unidirectional
  - | ImplicitBidirectional
  - | ExplicitBidirectional (MatchGroup id (LHsExpr id))
- data RecordPatSynField pass = RecordPatSynField {
  - recordPatSynField :: FieldOcc pass
  - recordPatSynPatVar :: LIdP pass
  }
- type HsPatSynDetails pass = HsConDetails Void (LIdP pass) [RecordPatSynField pass]
- type LFixitySig pass = XRec pass (FixitySig pass)
- data Sig pass
  - = TypeSig (XTypeSig pass) [LIdP pass] (LHsSigWcType pass)
  - | PatSynSig (XPatSynSig pass) [LIdP pass] (LHsSigType pass)
  - | ClassOpSig (XClassOpSig pass) Bool [LIdP pass] (LHsSigType pass)
  - | FixSig (XFixSig pass) (FixitySig pass)
  - | InlineSig (XInlineSig pass) (LIdP pass) InlinePragma
  - | SpecSig (XSpecSig pass) (LIdP pass) [LHsSigType pass] InlinePragma
  - | SpecInstSig (XSpecInstSig pass) (LHsSigType pass)
  - | MinimalSig (XMinimalSig pass) (LBooleanFormula (LIdP pass))
  - | SCCFunSig (XSCCFunSig pass) (LIdP pass) (Maybe (XRec pass StringLiteral))
  - | CompleteMatchSig (XCompleteMatchSig pass) (XRec pass [LIdP pass]) (Maybe (LIdP pass))
  - | XSig !(XXSig pass)
- type LSig pass = XRec pass (Sig pass)
- data IPBind id
  - = IPBind (XCIPBind id) (XRec id HsIPName) (LHsExpr id)
  - | XIPBind !(XXIPBind id)
- type LIPBind id = XRec id (IPBind id)
- data HsLocalBindsLR idL idR
  - = HsValBinds (XHsValBinds idL idR) (HsValBindsLR idL idR)
  - | HsIPBinds (XHsIPBinds idL idR) (HsIPBinds idR)
  - | EmptyLocalBinds (XEmptyLocalBinds idL idR)
  - | XHsLocalBindsLR !(XXHsLocalBindsLR idL idR)
- data HsBindLR idL idR
  - = FunBind {
    - fun_ext :: XFunBind idL idR
    - fun_id :: LIdP idL
    - fun_matches :: MatchGroup idR (LHsExpr idR)
    }
  - | PatBind {
    - pat_ext :: XPatBind idL idR
    - pat_lhs :: LPat idL
    - pat_rhs :: GRHSs idR (LHsExpr idR)
    }
  - | VarBind {
    - var_ext :: XVarBind idL idR
    - var_id :: IdP idL
    - var_rhs :: LHsExpr idR
    }
  - | PatSynBind (XPatSynBind idL idR) (PatSynBind idL idR)
  - | XHsBindsLR !(XXHsBindsLR idL idR)
- type LHsBindLR idL idR = XRec idL (HsBindLR idL idR)
- type LHsBindsLR idL idR = Bag (LHsBindLR idL idR)
- type HsBind id = HsBindLR id id
- type LHsBinds id = LHsBindsLR id id
- type LHsBind id = LHsBindLR id id
- data HsValBindsLR idL idR
  - = ValBinds (XValBinds idL idR) (LHsBindsLR idL idR) [LSig idR]
  - | XValBindsLR !(XXValBindsLR idL idR)
- type HsValBinds id = HsValBindsLR id id
- type LHsLocalBindsLR idL idR = XRec idL (HsLocalBindsLR idL idR)
- type LHsLocalBinds id = XRec id (HsLocalBinds id)
- type HsLocalBinds id = HsLocalBindsLR id id
- isFixityLSig :: UnXRec p => LSig p -> Bool
- isTypeLSig :: UnXRec p => LSig p -> Bool
- isSpecLSig :: UnXRec p => LSig p -> Bool
- isSpecInstLSig :: UnXRec p => LSig p -> Bool
- isPragLSig :: UnXRec p => LSig p -> Bool
- isInlineLSig :: UnXRec p => LSig p -> Bool
- isMinimalLSig :: UnXRec p => LSig p -> Bool
- isSCCFunSig :: UnXRec p => LSig p -> Bool
- isCompleteMatchSig :: UnXRec p => LSig p -> Bool
- data RoleAnnotDecl pass
  - = RoleAnnotDecl (XCRoleAnnotDecl pass) (LIdP pass) [XRec pass (Maybe Role)]
  - | XRoleAnnotDecl !(XXRoleAnnotDecl pass)
- type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass)
- data AnnProvenance pass
  - = ValueAnnProvenance (LIdP pass)
  - | TypeAnnProvenance (LIdP pass)
  - | ModuleAnnProvenance
- type LAnnDecl pass = XRec pass (AnnDecl pass)
- data WarnDecl pass
  - = Warning (XWarning pass) [LIdP pass] (WarningTxt pass)
  - | XWarnDecl !(XXWarnDecl pass)
- type LWarnDecl pass = XRec pass (WarnDecl pass)
- type LWarnDecls pass = XRec pass (WarnDecls pass)
- data DocDecl pass
  - = DocCommentNext (LHsDoc pass)
  - | DocCommentPrev (LHsDoc pass)
  - | DocCommentNamed String (LHsDoc pass)
  - | DocGroup Int (LHsDoc pass)
- type LDocDecl pass = XRec pass (DocDecl pass)
- type LRuleBndr pass = XRec pass (RuleBndr pass)
- data RuleDecl pass
  - = HsRule {
    - rd_ext :: XHsRule pass
    - rd_name :: XRec pass RuleName
    - rd_act :: Activation
    - rd_tyvs :: Maybe [LHsTyVarBndr () (NoGhcTc pass)]
    - rd_tmvs :: [LRuleBndr pass]
    - rd_lhs :: XRec pass (HsExpr pass)
    - rd_rhs :: XRec pass (HsExpr pass)
    }
  - | XRuleDecl !(XXRuleDecl pass)
- type LRuleDecl pass = XRec pass (RuleDecl pass)
- data RuleDecls pass
  - = HsRules {
    - rds_ext :: XCRuleDecls pass
    - rds_rules :: [LRuleDecl pass]
    }
  - | XRuleDecls !(XXRuleDecls pass)
- type LRuleDecls pass = XRec pass (RuleDecls pass)
- data ForeignDecl pass
  - = ForeignImport {
    - fd_i_ext :: XForeignImport pass
    - fd_name :: LIdP pass
    - fd_sig_ty :: LHsSigType pass
    - fd_fi :: ForeignImport pass
    }
  - | ForeignExport {
    - fd_e_ext :: XForeignExport pass
    - fd_name :: LIdP pass
    - fd_sig_ty :: LHsSigType pass
    - fd_fe :: ForeignExport pass
    }
  - | XForeignDecl !(XXForeignDecl pass)
- type LForeignDecl pass = XRec pass (ForeignDecl pass)
- data DefaultDecl pass
  - = DefaultDecl (XCDefaultDecl pass) [LHsType pass]
  - | XDefaultDecl !(XXDefaultDecl pass)
- type LDefaultDecl pass = XRec pass (DefaultDecl pass)
- type LDerivStrategy pass = XRec pass (DerivStrategy pass)
- data DerivDecl pass
  - = DerivDecl {
    - deriv_ext :: XCDerivDecl pass
    - deriv_type :: LHsSigWcType pass
    - deriv_strategy :: Maybe (LDerivStrategy pass)
    - deriv_overlap_mode :: Maybe (XRec pass OverlapMode)
    }
  - | XDerivDecl !(XXDerivDecl pass)
- type LDerivDecl pass = XRec pass (DerivDecl pass)
- data InstDecl pass
  - = ClsInstD {
    - cid_d_ext :: XClsInstD pass
    - cid_inst :: ClsInstDecl pass
    }
  - | DataFamInstD {
    - dfid_ext :: XDataFamInstD pass
    - dfid_inst :: DataFamInstDecl pass
    }
  - | TyFamInstD {
    - tfid_ext :: XTyFamInstD pass
    - tfid_inst :: TyFamInstDecl pass
    }
  - | XInstDecl !(XXInstDecl pass)
- type LInstDecl pass = XRec pass (InstDecl pass)
- data ClsInstDecl pass
  - = ClsInstDecl {
    - cid_ext :: XCClsInstDecl pass
    - cid_poly_ty :: LHsSigType pass
    - cid_binds :: LHsBinds pass
    - cid_sigs :: [LSig pass]
    - cid_tyfam_insts :: [LTyFamInstDecl pass]
    - cid_datafam_insts :: [LDataFamInstDecl pass]
    - cid_overlap_mode :: Maybe (XRec pass OverlapMode)
    }
  - | XClsInstDecl !(XXClsInstDecl pass)
- type LClsInstDecl pass = XRec pass (ClsInstDecl pass)
- data FamEqn pass rhs
  - = FamEqn {
    - feqn_ext :: XCFamEqn pass rhs
    - feqn_tycon :: LIdP pass
    - feqn_bndrs :: HsOuterFamEqnTyVarBndrs pass
    - feqn_pats :: HsTyPats pass
    - feqn_fixity :: LexicalFixity
    - feqn_rhs :: rhs
    }
  - | XFamEqn !(XXFamEqn pass rhs)
- newtype DataFamInstDecl pass = DataFamInstDecl {
  - dfid_eqn :: FamEqn pass (HsDataDefn pass)
  }
- type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass)
- data TyFamInstDecl pass
  - = TyFamInstDecl {
    - tfid_xtn :: XCTyFamInstDecl pass
    - tfid_eqn :: TyFamInstEqn pass
    }
  - | XTyFamInstDecl !(XXTyFamInstDecl pass)
- type LTyFamInstDecl pass = XRec pass (TyFamInstDecl pass)
- type LTyFamDefltDecl pass = XRec pass (TyFamDefltDecl pass)
- type TyFamDefltDecl = TyFamInstDecl
- type TyFamInstEqn pass = FamEqn pass (LHsType pass)
- type HsTyPats pass = [LHsTypeArg pass]
- type LTyFamInstEqn pass = XRec pass (TyFamInstEqn pass)
- data HsConDeclGADTDetails pass
  - = PrefixConGADT [HsScaled pass (LBangType pass)]
  - | RecConGADT (XRec pass [LConDeclField pass]) (LHsUniToken "->" "\8594" pass)
- type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass])
- data ConDecl pass
  - = ConDeclGADT {
    - con_g_ext :: XConDeclGADT pass
    - con_names :: NonEmpty (LIdP pass)
    - con_dcolon :: !(LHsUniToken "::" "\8759" pass)
    - con_bndrs :: XRec pass (HsOuterSigTyVarBndrs pass)
    - con_mb_cxt :: Maybe (LHsContext pass)
    - con_g_args :: HsConDeclGADTDetails pass
    - con_res_ty :: LHsType pass
    - con_doc :: Maybe (LHsDoc pass)
    }
  - | ConDeclH98 {
    - con_ext :: XConDeclH98 pass
    - con_name :: LIdP pass
    - con_forall :: Bool
    - con_ex_tvs :: [LHsTyVarBndr Specificity pass]
    - con_mb_cxt :: Maybe (LHsContext pass)
    - con_args :: HsConDeclH98Details pass
    - con_doc :: Maybe (LHsDoc pass)
    }
  - | XConDecl !(XXConDecl pass)
- type LConDecl pass = XRec pass (ConDecl pass)
- data DataDefnCons a
  - = NewTypeCon a
  - | DataTypeCons Bool [a]
- type LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass)
- data DerivClauseTys pass
  - = DctSingle (XDctSingle pass) (LHsSigType pass)
  - | DctMulti (XDctMulti pass) [LHsSigType pass]
  - | XDerivClauseTys !(XXDerivClauseTys pass)
- type LDerivClauseTys pass = XRec pass (DerivClauseTys pass)
- data HsDerivingClause pass
  - = HsDerivingClause {
    - deriv_clause_ext :: XCHsDerivingClause pass
    - deriv_clause_strategy :: Maybe (LDerivStrategy pass)
    - deriv_clause_tys :: LDerivClauseTys pass
    }
  - | XHsDerivingClause !(XXHsDerivingClause pass)
- type LHsDerivingClause pass = XRec pass (HsDerivingClause pass)
- type HsDeriving pass = [LHsDerivingClause pass]
- data HsDataDefn pass
  - = HsDataDefn {
    - dd_ext :: XCHsDataDefn pass
    - dd_ctxt :: Maybe (LHsContext pass)
    - dd_cType :: Maybe (XRec pass CType)
    - dd_kindSig :: Maybe (LHsKind pass)
    - dd_cons :: DataDefnCons (LConDecl pass)
    - dd_derivs :: HsDeriving pass
    }
  - | XHsDataDefn !(XXHsDataDefn pass)
- data FamilyInfo pass
  - = DataFamily
  - | OpenTypeFamily
  - | ClosedTypeFamily (Maybe [LTyFamInstEqn pass])
- type LInjectivityAnn pass = XRec pass (InjectivityAnn pass)
- data FamilyDecl pass
  - = FamilyDecl {
    - fdExt :: XCFamilyDecl pass
    - fdInfo :: FamilyInfo pass
    - fdTopLevel :: TopLevelFlag
    - fdLName :: LIdP pass
    - fdTyVars :: LHsQTyVars pass
    - fdFixity :: LexicalFixity
    - fdResultSig :: LFamilyResultSig pass
    - fdInjectivityAnn :: Maybe (LInjectivityAnn pass)
    }
  - | XFamilyDecl !(XXFamilyDecl pass)
- type LFamilyDecl pass = XRec pass (FamilyDecl pass)
- data FamilyResultSig pass
  - = NoSig (XNoSig pass)
  - | KindSig (XCKindSig pass) (LHsKind pass)
  - | TyVarSig (XTyVarSig pass) (LHsTyVarBndr () pass)
  - | XFamilyResultSig !(XXFamilyResultSig pass)
- type LFamilyResultSig pass = XRec pass (FamilyResultSig pass)
- data TyClGroup pass
  - = TyClGroup {
    - group_ext :: XCTyClGroup pass
    - group_tyclds :: [LTyClDecl pass]
    - group_roles :: [LRoleAnnotDecl pass]
    - group_kisigs :: [LStandaloneKindSig pass]
    - group_instds :: [LInstDecl pass]
    }
  - | XTyClGroup !(XXTyClGroup pass)
- type LHsFunDep pass = XRec pass (FunDep pass)
- data TyClDecl pass
  - = FamDecl {
    - tcdFExt :: XFamDecl pass
    - tcdFam :: FamilyDecl pass
    }
  - | SynDecl {
    - tcdSExt :: XSynDecl pass
    - tcdLName :: LIdP pass
    - tcdTyVars :: LHsQTyVars pass
    - tcdFixity :: LexicalFixity
    - tcdRhs :: LHsType pass
    }
  - | DataDecl {
    - tcdDExt :: XDataDecl pass
    - tcdLName :: LIdP pass
    - tcdTyVars :: LHsQTyVars pass
    - tcdFixity :: LexicalFixity
    - tcdDataDefn :: HsDataDefn pass
    }
  - | ClassDecl {
    - tcdCExt :: XClassDecl pass
    - tcdLayout :: !(LayoutInfo 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)
- type LTyClDecl pass = XRec pass (TyClDecl pass)
- data SpliceDecoration
  - = DollarSplice
  - | BareSplice
- type LSpliceDecl pass = XRec pass (SpliceDecl pass)
- data HsGroup p
  - = HsGroup {
    - hs_ext :: XCHsGroup p
    - hs_valds :: HsValBinds p
    - hs_splcds :: [LSpliceDecl p]
    - hs_tyclds :: [TyClGroup p]
    - hs_derivds :: [LDerivDecl p]
    - hs_fixds :: [LFixitySig p]
    - hs_defds :: [LDefaultDecl p]
    - hs_fords :: [LForeignDecl p]
    - hs_warnds :: [LWarnDecls p]
    - hs_annds :: [LAnnDecl p]
    - hs_ruleds :: [LRuleDecls p]
    - hs_docs :: [LDocDecl p]
    }
  - | XHsGroup !(XXHsGroup p)
- data HsDecl p
  - = TyClD (XTyClD p) (TyClDecl p)
  - | InstD (XInstD p) (InstDecl p)
  - | DerivD (XDerivD p) (DerivDecl p)
  - | ValD (XValD p) (HsBind p)
  - | SigD (XSigD p) (Sig p)
  - | KindSigD (XKindSigD p) (StandaloneKindSig p)
  - | DefD (XDefD p) (DefaultDecl p)
  - | ForD (XForD p) (ForeignDecl p)
  - | WarningD (XWarningD p) (WarnDecls p)
  - | AnnD (XAnnD p) (AnnDecl p)
  - | RuleD (XRuleD p) (RuleDecls p)
  - | SpliceD (XSpliceD p) (SpliceDecl p)
  - | DocD (XDocD p) (DocDecl p)
  - | RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p)
  - | XHsDecl !(XXHsDecl p)
- type LHsDecl p = XRec p (HsDecl p)
- hsGroupInstDecls :: HsGroup id -> [LInstDecl id]
- isDataDecl :: TyClDecl pass -> Bool
- isSynDecl :: TyClDecl pass -> Bool
- isClassDecl :: TyClDecl pass -> Bool
- isFamilyDecl :: TyClDecl pass -> Bool
- isTypeFamilyDecl :: TyClDecl pass -> Bool
- isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool
- isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool
- isDataFamilyDecl :: TyClDecl pass -> Bool
- tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass
- tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass]
- tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass]
- tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass]
- tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass]
- familyInfoTyConFlavour :: Maybe tc -> FamilyInfo pass -> TyConFlavour tc
- dataDefnConsNewOrData :: DataDefnCons a -> NewOrData
- isTypeDataDefnCons :: DataDefnCons a -> Bool
- firstDataDefnCon :: DataDefnCons a -> Maybe a
- collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass]
- docDeclDoc :: DocDecl pass -> LHsDoc pass
- annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p)
- data HsDoFlavour
  - = DoExpr (Maybe ModuleName)
  - | MDoExpr (Maybe ModuleName)
  - | GhciStmtCtxt
  - | ListComp
  - | MonadComp
- data HsArrowMatchContext
  - = ProcExpr
  - | ArrowCaseAlt
  - | ArrowLamCaseAlt LamCaseVariant
  - | KappaExpr
- data HsStmtContext p
  - = HsDoStmt HsDoFlavour
  - | PatGuard (HsMatchContext p)
  - | ParStmtCtxt (HsStmtContext p)
  - | TransStmtCtxt (HsStmtContext p)
  - | ArrowExpr
- data HsMatchContext p
  - = FunRhs {
    - mc_fun :: LIdP (NoGhcTc p)
    - mc_fixity :: LexicalFixity
    - mc_strictness :: SrcStrictness
    }
  - | LambdaExpr
  - | CaseAlt
  - | LamCaseAlt LamCaseVariant
  - | IfAlt
  - | ArrowMatchCtxt HsArrowMatchContext
  - | PatBindRhs
  - | PatBindGuards
  - | RecUpd
  - | StmtCtxt (HsStmtContext p)
  - | ThPatSplice
  - | ThPatQuote
  - | PatSyn
- data ArithSeqInfo id
  - = From (LHsExpr id)
  - | FromThen (LHsExpr id) (LHsExpr id)
  - | FromTo (LHsExpr id) (LHsExpr id)
  - | FromThenTo (LHsExpr id) (LHsExpr id) (LHsExpr id)
- data HsQuote p
  - = ExpBr (XExpBr p) (LHsExpr p)
  - | PatBr (XPatBr p) (LPat p)
  - | DecBrL (XDecBrL p) [LHsDecl p]
  - | DecBrG (XDecBrG p) (HsGroup p)
  - | TypBr (XTypBr p) (LHsType p)
  - | VarBr (XVarBr p) Bool (LIdP p)
  - | XQuote !(XXQuote p)
- data ApplicativeArg idL
  - = ApplicativeArgOne {
    - xarg_app_arg_one :: XApplicativeArgOne idL
    - app_arg_pattern :: LPat idL
    - arg_expr :: LHsExpr idL
    - is_body_stmt :: Bool
    }
  - | ApplicativeArgMany {
    - xarg_app_arg_many :: XApplicativeArgMany idL
    - app_stmts :: [ExprLStmt idL]
    - final_expr :: HsExpr idL
    - bv_pattern :: LPat idL
    - stmt_context :: HsDoFlavour
    }
  - | XApplicativeArg !(XXApplicativeArg idL)
- type FailOperator id = Maybe (SyntaxExpr id)
- data TransForm
  - = ThenForm
  - | GroupForm
- 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 {
    - trS_ext :: XTransStmt idL idR body
    - trS_form :: TransForm
    - trS_stmts :: [ExprLStmt idL]
    - trS_bndrs :: [(IdP idR, IdP idR)]
    - trS_using :: LHsExpr idR
    - trS_by :: Maybe (LHsExpr idR)
    - trS_ret :: SyntaxExpr idR
    - trS_bind :: SyntaxExpr idR
    - trS_fmap :: HsExpr idR
    }
  - | RecStmt {
    - recS_ext :: XRecStmt idL idR body
    - recS_stmts :: XRec idR [LStmtLR idL idR body]
    - recS_later_ids :: [IdP idR]
    - recS_rec_ids :: [IdP idR]
    - recS_bind_fn :: SyntaxExpr idR
    - recS_ret_fn :: SyntaxExpr idR
    - recS_mfix_fn :: SyntaxExpr idR
    }
  - | XStmtLR !(XXStmtLR idL idR body)
- type GhciStmt id = Stmt id (LHsExpr id)
- type GhciLStmt id = LStmt id (LHsExpr id)
- type GuardStmt id = Stmt id (LHsExpr id)
- type GuardLStmt id = LStmt id (LHsExpr id)
- type ExprStmt id = Stmt id (LHsExpr id)
- type ExprLStmt id = LStmt id (LHsExpr id)
- type CmdStmt id = Stmt id (LHsCmd id)
- type CmdLStmt id = LStmt id (LHsCmd id)
- type LStmtLR idL idR body = XRec idL (StmtLR idL idR body)
- type LStmt id body = XRec id (StmtLR id id body)
- data GRHS p body
  - = GRHS (XCGRHS p body) [GuardLStmt p] body
  - | XGRHS !(XXGRHS p body)
- type LGRHS id body = XRec id (GRHS id body)
- type LMatch id body = XRec id (Match id body)
- type HsRecordBinds p = HsRecFields p (LHsExpr p)
- type LHsCmdTop p = XRec p (HsCmdTop p)
- data HsArrAppType
  - = HsHigherOrderApp
  - | HsFirstOrderApp
- 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) !(LHsToken "(" id) (LHsCmd id) !(LHsToken ")" id)
  - | HsCmdCase (XCmdCase id) (LHsExpr id) (MatchGroup id (LHsCmd id))
  - | HsCmdLamCase (XCmdLamCase id) LamCaseVariant (MatchGroup id (LHsCmd id))
  - | HsCmdIf (XCmdIf id) (SyntaxExpr id) (LHsExpr id) (LHsCmd id) (LHsCmd id)
  - | HsCmdLet (XCmdLet id) !(LHsToken "let" id) (HsLocalBinds id) !(LHsToken "in" id) (LHsCmd id)
  - | HsCmdDo (XCmdDo id) (XRec id [CmdLStmt id])
  - | XCmd !(XXCmd id)
- type LHsCmd id = XRec id (HsCmd id)
- data LamCaseVariant
  - = LamCase
  - | LamCases
- data HsTupArg id
  - = Present (XPresent id) (LHsExpr id)
  - | Missing (XMissing id)
  - | XTupArg !(XXTupArg id)
- type LHsTupArg id = XRec id (HsTupArg id)
- data HsPragE p
  - = HsPragSCC (XSCC p) StringLiteral
  - | XHsPragE !(XXPragE p)
- data DotFieldOcc p
  - = DotFieldOcc {
    - dfoExt :: XCDotFieldOcc p
    - dfoLabel :: XRec p FieldLabelString
    }
  - | XDotFieldOcc !(XXDotFieldOcc p)
- data LHsRecUpdFields p where
  - RegularRecUpdFields :: forall p. {..} -> LHsRecUpdFields p
  - OverloadedRecUpdFields :: forall p. {..} -> LHsRecUpdFields p
- type LHsRecUpdProj p = XRec p (RecUpdProj p)
- type RecUpdProj p = RecProj p (LHsExpr p)
- type LHsRecProj p arg = XRec p (RecProj p arg)
- type RecProj p arg = HsFieldBind (LFieldLabelStrings p) arg
- newtype FieldLabelStrings p = FieldLabelStrings [XRec p (DotFieldOcc p)]
- type LFieldLabelStrings p = XRec p (FieldLabelStrings p)
- isInfixMatch :: Match id body -> Bool
- isPatSynCtxt :: HsMatchContext p -> Bool
- qualifiedDoModuleName_maybe :: HsStmtContext p -> Maybe ModuleName
- isComprehensionContext :: HsStmtContext id -> Bool
- isDoComprehensionContext :: HsDoFlavour -> Bool
- isMonadStmtContext :: HsStmtContext id -> Bool
- isMonadDoStmtContext :: HsDoFlavour -> Bool
- isMonadCompContext :: HsStmtContext id -> Bool
- isMonadDoCompContext :: HsDoFlavour -> Bool
- data HsUntypedSpliceResult thing
  - = HsUntypedSpliceTop {
    - utsplice_result_finalizers :: ThModFinalizers
    - utsplice_result :: thing
    }
  - | HsUntypedSpliceNested SplicePointName
- newtype ThModFinalizers = ThModFinalizers [ForeignRef (Q ())]
- type SplicePointName = Name
- pprFunBind :: forall (idR :: Pass). OutputableBndrId idR => MatchGroup (GhcPass idR) (LHsExpr (GhcPass idR)) -> SDoc
- pprPatBind :: forall (bndr :: Pass) (p :: Pass). (OutputableBndrId bndr, OutputableBndrId p) => LPat (GhcPass bndr) -> GRHSs (GhcPass p) (LHsExpr (GhcPass p)) -> SDoc
- pprUntypedSplice :: forall (p :: Pass). OutputableBndrId p => Bool -> Maybe SplicePointName -> HsUntypedSplice (GhcPass p) -> SDoc
- pprTypedSplice :: forall (p :: Pass). OutputableBndrId p => Maybe SplicePointName -> LHsExpr (GhcPass p) -> SDoc
- pprExpr :: forall (p :: Pass). OutputableBndrId p => HsExpr (GhcPass p) -> SDoc
- pprLExpr :: forall (p :: Pass). OutputableBndrId p => LHsExpr (GhcPass p) -> SDoc
- data HsModule p
  - = HsModule {
    - hsmodExt :: XCModule p
    - hsmodName :: Maybe (XRec p ModuleName)
    - hsmodExports :: Maybe (XRec p [LIE p])
    - hsmodImports :: [LImportDecl p]
    - hsmodDecls :: [LHsDecl p]
    }
  - | XModule !(XXModule p)
- pprParendExpr :: forall (p :: Pass). OutputableBndrId p => PprPrec -> HsExpr (GhcPass p) -> SDoc
- class OutputableBndrFlag flag (p :: Pass)
- data OpName
  - = NormalOp Name
  - | NegateOp
  - | UnboundOp RdrName
  - | RecFldOp (FieldOcc GhcRn)
- type HsCoreTy = Type
- data HsPSRn = HsPSRn {
  - hsps_nwcs :: [Name]
  - hsps_imp_tvs :: [Name]
  }
- type EpAnnForallTy = EpAnn (AddEpAnn, AddEpAnn)
- getBangType :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p)
- getBangStrictness :: forall (p :: Pass). LHsType (GhcPass p) -> HsSrcBang
- fromMaybeContext :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> HsContext (GhcPass p)
- mkHsForAllVisTele :: forall (p :: Pass). EpAnnForallTy -> [LHsTyVarBndr () (GhcPass p)] -> HsForAllTelescope (GhcPass p)
- mkHsForAllInvisTele :: forall (p :: Pass). EpAnnForallTy -> [LHsTyVarBndr Specificity (GhcPass p)] -> HsForAllTelescope (GhcPass p)
- mkHsQTvs :: [LHsTyVarBndr (HsBndrVis GhcPs) GhcPs] -> LHsQTyVars GhcPs
- emptyLHsQTvs :: LHsQTyVars GhcRn
- hsSigWcType :: UnXRec p => LHsSigWcType p -> LHsType p
- dropWildCards :: LHsSigWcType pass -> LHsSigType pass
- hsOuterTyVarNames :: HsOuterTyVarBndrs flag GhcRn -> [Name]
- hsOuterExplicitBndrs :: forall flag (p :: Pass). HsOuterTyVarBndrs flag (GhcPass p) -> [LHsTyVarBndr flag (NoGhcTc (GhcPass p))]
- mkHsOuterImplicit :: HsOuterTyVarBndrs flag GhcPs
- mkHsOuterExplicit :: EpAnnForallTy -> [LHsTyVarBndr flag GhcPs] -> HsOuterTyVarBndrs flag GhcPs
- mkHsImplicitSigType :: LHsType GhcPs -> HsSigType GhcPs
- mkHsExplicitSigType :: EpAnnForallTy -> [LHsTyVarBndr Specificity GhcPs] -> LHsType GhcPs -> HsSigType GhcPs
- mkHsWildCardBndrs :: thing -> HsWildCardBndrs GhcPs thing
- mkHsPatSigType :: EpAnnCO -> LHsType GhcPs -> HsPatSigType GhcPs
- mkEmptyWildCardBndrs :: thing -> HsWildCardBndrs GhcRn thing
- hsTyVarBndrFlag :: forall flag (pass :: Pass). HsTyVarBndr flag (GhcPass pass) -> flag
- setHsTyVarBndrFlag :: forall flag flag' (pass :: Pass). flag -> HsTyVarBndr flag' (GhcPass pass) -> HsTyVarBndr flag (GhcPass pass)
- updateHsTyVarBndrFlag :: forall flag flag' (pass :: Pass). (flag -> flag') -> HsTyVarBndr flag (GhcPass pass) -> HsTyVarBndr flag' (GhcPass pass)
- hsTvbAllKinded :: forall (p :: Pass). LHsQTyVars (GhcPass p) -> Bool
- hsLinear :: forall a (p :: Pass). a -> HsScaled (GhcPass p) a
- hsUnrestricted :: forall a (p :: Pass). a -> HsScaled (GhcPass p) a
- isUnrestricted :: HsArrow GhcRn -> Bool
- arrowToHsType :: HsArrow GhcRn -> LHsType GhcRn
- pprHsArrow :: forall (pass :: Pass). OutputableBndrId pass => HsArrow (GhcPass pass) -> SDoc
- hsWcScopedTvs :: LHsSigWcType GhcRn -> [Name]
- hsScopedTvs :: LHsSigType GhcRn -> [Name]
- hsScopedKvs :: LHsKind GhcRn -> [Name]
- hsTyVarName :: forall flag (p :: Pass). HsTyVarBndr flag (GhcPass p) -> IdP (GhcPass p)
- hsLTyVarName :: forall flag (p :: Pass). LHsTyVarBndr flag (GhcPass p) -> IdP (GhcPass p)
- hsLTyVarNames :: forall flag (p :: Pass). [LHsTyVarBndr flag (GhcPass p)] -> [IdP (GhcPass p)]
- hsExplicitLTyVarNames :: forall (p :: Pass). LHsQTyVars (GhcPass p) -> [IdP (GhcPass p)]
- hsAllLTyVarNames :: LHsQTyVars GhcRn -> [Name]
- hsLTyVarLocName :: forall (p :: Pass) flag. Anno (IdGhcP p) ~ SrcSpanAnnN => LHsTyVarBndr flag (GhcPass p) -> LocatedN (IdP (GhcPass p))
- hsLTyVarLocNames :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsQTyVars (GhcPass p) -> [LocatedN (IdP (GhcPass p))]
- hsTyKindSig :: forall (p :: Pass). LHsType (GhcPass p) -> Maybe (LHsKind (GhcPass p))
- ignoreParens :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p)
- mkAnonWildCardTy :: HsType GhcPs
- mkHsOpTy :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => PromotionFlag -> LHsType (GhcPass p) -> LocatedN (IdP (GhcPass p)) -> LHsType (GhcPass p) -> HsType (GhcPass p)
- mkHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- mkHsAppTys :: forall (p :: Pass). LHsType (GhcPass p) -> [LHsType (GhcPass p)] -> LHsType (GhcPass p)
- mkHsAppKindTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsToken "@" (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- splitHsFunType :: forall (p :: Pass). LHsType (GhcPass p) -> ([AddEpAnn], EpAnnComments, [HsScaled (GhcPass p) (LHsType (GhcPass p))], LHsType (GhcPass p))
- hsTyGetAppHead_maybe :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsType (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p)))
- lhsTypeArgSrcSpan :: forall (pass :: Pass). LHsTypeArg (GhcPass pass) -> SrcSpan
- numVisibleArgs :: [HsArg p tm ty] -> Arity
- pprHsArgsApp :: (OutputableBndr id, Outputable tm, Outputable ty) => id -> LexicalFixity -> [HsArg p tm ty] -> SDoc
- splitLHsPatSynTy :: forall (p :: Pass). LHsSigType (GhcPass p) -> ([LHsTyVarBndr Specificity (GhcPass (NoGhcTcPass p))], Maybe (LHsContext (GhcPass p)), [LHsTyVarBndr Specificity (GhcPass p)], Maybe (LHsContext (GhcPass p)), LHsType (GhcPass p))
- splitLHsSigmaTyInvis :: forall (p :: Pass). LHsType (GhcPass p) -> ([LHsTyVarBndr Specificity (GhcPass p)], Maybe (LHsContext (GhcPass p)), LHsType (GhcPass p))
- splitLHsGadtTy :: LHsSigType GhcPs -> (HsOuterSigTyVarBndrs GhcPs, Maybe (LHsContext GhcPs), LHsType GhcPs)
- splitLHsForAllTyInvis :: forall (pass :: Pass). LHsType (GhcPass pass) -> ((EpAnnForallTy, [LHsTyVarBndr Specificity (GhcPass pass)]), LHsType (GhcPass pass))
- splitLHsForAllTyInvis_KP :: forall (pass :: Pass). LHsType (GhcPass pass) -> (Maybe (EpAnnForallTy, [LHsTyVarBndr Specificity (GhcPass pass)]), LHsType (GhcPass pass))
- splitLHsQualTy :: forall (pass :: Pass). LHsType (GhcPass pass) -> (Maybe (LHsContext (GhcPass pass)), LHsType (GhcPass pass))
- splitLHsInstDeclTy :: LHsSigType GhcRn -> ([Name], Maybe (LHsContext GhcRn), LHsType GhcRn)
- getLHsInstDeclHead :: forall (p :: Pass). LHsSigType (GhcPass p) -> LHsType (GhcPass p)
- getLHsInstDeclClass_maybe :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsSigType (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p)))
- mkFieldOcc :: LocatedN RdrName -> FieldOcc GhcPs
- mkAmbiguousFieldOcc :: LocatedN RdrName -> AmbiguousFieldOcc GhcPs
- ambiguousFieldOccRdrName :: forall (p :: Pass). AmbiguousFieldOcc (GhcPass p) -> RdrName
- ambiguousFieldOccLRdrName :: forall (p :: Pass). AmbiguousFieldOcc (GhcPass p) -> LocatedN RdrName
- selectorAmbiguousFieldOcc :: AmbiguousFieldOcc GhcTc -> Id
- unambiguousFieldOcc :: AmbiguousFieldOcc GhcTc -> FieldOcc GhcTc
- ambiguousFieldOcc :: FieldOcc GhcTc -> AmbiguousFieldOcc GhcTc
- pprAnonWildCard :: SDoc
- pprHsOuterFamEqnTyVarBndrs :: forall (p :: Pass). OutputableBndrId p => HsOuterFamEqnTyVarBndrs (GhcPass p) -> SDoc
- pprHsOuterSigTyVarBndrs :: forall (p :: Pass). OutputableBndrId p => HsOuterSigTyVarBndrs (GhcPass p) -> SDoc
- pprHsForAll :: forall (p :: Pass). OutputableBndrId p => HsForAllTelescope (GhcPass p) -> Maybe (LHsContext (GhcPass p)) -> SDoc
- pprLHsContext :: forall (p :: Pass). OutputableBndrId p => Maybe (LHsContext (GhcPass p)) -> SDoc
- pprConDeclFields :: forall (p :: Pass). OutputableBndrId p => [LConDeclField (GhcPass p)] -> SDoc
- pprHsType :: forall (p :: Pass). OutputableBndrId p => HsType (GhcPass p) -> SDoc
- hsTypeNeedsParens :: forall (p :: Pass). PprPrec -> HsType (GhcPass p) -> Bool
- parenthesizeHsType :: forall (p :: Pass). PprPrec -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- parenthesizeHsContext :: forall (p :: Pass). PprPrec -> LHsContext (GhcPass p) -> LHsContext (GhcPass p)
- data OverLitTc = OverLitTc {
  - ol_rebindable :: Bool
  - ol_witness :: HsExpr GhcTc
  - ol_type :: Type
  }
- data OverLitRn = OverLitRn {
  - ol_rebindable :: Bool
  - ol_from_fun :: LIdP GhcRn
  }
- pprXOverLit :: forall (p :: Pass). GhcPass p -> XOverLit (GhcPass p) -> SDoc
- overLitType :: HsOverLit GhcTc -> Type
- hsOverLitNeedsParens :: PprPrec -> HsOverLit x -> Bool
- hsLitNeedsParens :: PprPrec -> HsLit x -> Bool
- convertLit :: forall (p1 :: Pass) (p2 :: Pass). HsLit (GhcPass p1) -> HsLit (GhcPass p2)
- pmPprHsLit :: forall (x :: Pass). HsLit (GhcPass x) -> SDoc
- data TcSpecPrag = SpecPrag Id HsWrapper InlinePragma
- type LTcSpecPrag = Located TcSpecPrag
- data TcSpecPrags
  - = IsDefaultMethod
  - | SpecPrags [LTcSpecPrag]
- data AnnSig = AnnSig {
  - asDcolon :: AddEpAnn
  - asRest :: [AddEpAnn]
  }
- newtype IdSig = IdSig {
  - unIdSig :: Id
  }
- data ABExport = ABE {
  - abe_poly :: Id
  - abe_mono :: Id
  - abe_wrap :: HsWrapper
  - abe_prags :: TcSpecPrags
  }
- data AbsBinds = AbsBinds {
  - abs_tvs :: [TyVar]
  - abs_ev_vars :: [EvVar]
  - abs_exports :: [ABExport]
  - abs_ev_binds :: [TcEvBinds]
  - abs_binds :: LHsBinds GhcTc
  - abs_sig :: Bool
  }
- type family XVarBindGhc (pL :: Pass) (pR :: Pass) where ...
- data NHsValBindsLR idL = NValBinds [(RecFlag, LHsBinds idL)] [LSig GhcRn]
- pprLHsBinds :: forall (idL :: Pass) (idR :: Pass). (OutputableBndrId idL, OutputableBndrId idR) => LHsBindsLR (GhcPass idL) (GhcPass idR) -> SDoc
- pprLHsBindsForUser :: forall (idL :: Pass) (idR :: Pass) (id2 :: Pass). (OutputableBndrId idL, OutputableBndrId idR, OutputableBndrId id2) => LHsBindsLR (GhcPass idL) (GhcPass idR) -> [LSig (GhcPass id2)] -> [SDoc]
- pprDeclList :: [SDoc] -> SDoc
- emptyLocalBinds :: forall (a :: Pass) (b :: Pass). HsLocalBindsLR (GhcPass a) (GhcPass b)
- eqEmptyLocalBinds :: HsLocalBindsLR a b -> Bool
- isEmptyValBinds :: forall (a :: Pass) (b :: Pass). HsValBindsLR (GhcPass a) (GhcPass b) -> Bool
- emptyValBindsIn :: forall (a :: Pass) (b :: Pass). HsValBindsLR (GhcPass a) (GhcPass b)
- emptyValBindsOut :: forall (a :: Pass) (b :: Pass). HsValBindsLR (GhcPass a) (GhcPass b)
- emptyLHsBinds :: forall (idL :: Pass) idR. LHsBindsLR (GhcPass idL) idR
- isEmptyLHsBinds :: forall (idL :: Pass) idR. LHsBindsLR (GhcPass idL) idR -> Bool
- plusHsValBinds :: forall (a :: Pass). HsValBinds (GhcPass a) -> HsValBinds (GhcPass a) -> HsValBinds (GhcPass a)
- ppr_monobind :: forall (idL :: Pass) (idR :: Pass). (OutputableBndrId idL, OutputableBndrId idR) => HsBindLR (GhcPass idL) (GhcPass idR) -> SDoc
- pprTicks :: SDoc -> SDoc -> SDoc
- isEmptyIPBindsPR :: forall (p :: Pass). HsIPBinds (GhcPass p) -> Bool
- isEmptyIPBindsTc :: HsIPBinds GhcTc -> Bool
- noSpecPrags :: TcSpecPrags
- hasSpecPrags :: TcSpecPrags -> Bool
- isDefaultMethod :: TcSpecPrags -> Bool
- ppr_sig :: forall (p :: Pass). OutputableBndrId p => Sig (GhcPass p) -> SDoc
- hsSigDoc :: forall (p :: Pass). IsPass p => Sig (GhcPass p) -> SDoc
- extractSpecPragName :: SourceText -> String
- pragBrackets :: SDoc -> SDoc
- pragSrcBrackets :: SourceText -> String -> SDoc -> SDoc
- pprVarSig :: OutputableBndr id => [id] -> SDoc -> SDoc
- pprSpec :: OutputableBndr id => id -> SDoc -> InlinePragma -> SDoc
- pprTcSpecPrags :: TcSpecPrags -> SDoc
- pprMinimalSig :: OutputableBndr name => LBooleanFormula (GenLocated l name) -> SDoc
- data ConPatTc = ConPatTc {
  - cpt_arg_tys :: [Type]
  - cpt_tvs :: [TyVar]
  - cpt_dicts :: [EvVar]
  - cpt_binds :: TcEvBinds
  - cpt_wrap :: HsWrapper
  }
- data HsPatExpansion a b = HsPatExpanded a b
- data XXPatGhcTc
  - = CoPat {
    - co_cpt_wrap :: HsWrapper
    - co_pat_inner :: Pat GhcTc
    - co_pat_ty :: Type
    }
  - | ExpansionPat (Pat GhcRn) (Pat GhcTc)
- data EpAnnSumPat = EpAnnSumPat {
  - sumPatParens :: [AddEpAnn]
  - sumPatVbarsBefore :: [EpaLocation]
  - sumPatVbarsAfter :: [EpaLocation]
  }
- hsRecFieldId :: HsRecField GhcTc arg -> Id
- hsRecUpdFieldRdr :: forall (p :: Pass) q. HsRecUpdField (GhcPass p) q -> Located RdrName
- hsRecUpdFieldId :: HsFieldBind (LAmbiguousFieldOcc GhcTc) arg -> Located Id
- hsRecUpdFieldOcc :: HsFieldBind (LAmbiguousFieldOcc GhcTc) arg -> LFieldOcc GhcTc
- pprParendLPat :: forall (p :: Pass). OutputableBndrId p => PprPrec -> LPat (GhcPass p) -> SDoc
- pprConArgs :: forall (p :: Pass). (OutputableBndrId p, Outputable (Anno (IdGhcP p))) => HsConPatDetails (GhcPass p) -> SDoc
- mkPrefixConPat :: DataCon -> [LPat GhcTc] -> [Type] -> LPat GhcTc
- mkNilPat :: Type -> LPat GhcTc
- mkCharLitPat :: SourceText -> Char -> LPat GhcTc
- isBangedLPat :: forall (p :: Pass). LPat (GhcPass p) -> Bool
- looksLazyPatBind :: HsBind GhcTc -> Bool
- isIrrefutableHsPat :: forall (p :: Pass). OutputableBndrId p => Bool -> LPat (GhcPass p) -> Bool
- isSimplePat :: forall (x :: Pass). LPat (GhcPass x) -> Maybe (IdP (GhcPass x))
- isBoringHsPat :: forall (p :: Pass). OutputableBndrId p => LPat (GhcPass p) -> Bool
- patNeedsParens :: forall (p :: Pass). IsPass p => PprPrec -> Pat (GhcPass p) -> Bool
- gParPat :: forall (pass :: Pass). LPat (GhcPass pass) -> Pat (GhcPass pass)
- parenthesizePat :: forall (p :: Pass). IsPass p => PprPrec -> LPat (GhcPass p) -> LPat (GhcPass p)
- collectEvVarsPats :: [Pat GhcTc] -> Bag EvVar
- collectEvVarsPat :: Pat GhcTc -> Bag EvVar
- data HsRuleAnn = HsRuleAnn {
  - ra_tyanns :: Maybe (AddEpAnn, AddEpAnn)
  - ra_tmanns :: Maybe (AddEpAnn, AddEpAnn)
  - ra_rest :: [AddEpAnn]
  }
- data HsRuleRn = HsRuleRn NameSet NameSet
- data XViaStrategyPs = XViaStrategyPs (EpAnn [AddEpAnn]) (LHsSigType GhcPs)
- data DataDeclRn = DataDeclRn {
  - tcdDataCusk :: Bool
  - tcdFVs :: NameSet
  }
- partitionBindsAndSigs :: [LHsDecl GhcPs] -> (LHsBinds GhcPs, [LSig GhcPs], [LFamilyDecl GhcPs], [LTyFamInstDecl GhcPs], [LDataFamInstDecl GhcPs], [LDocDecl GhcPs])
- emptyRdrGroup :: forall (p :: Pass). HsGroup (GhcPass p)
- emptyRnGroup :: forall (p :: Pass). HsGroup (GhcPass p)
- hsGroupTopLevelFixitySigs :: forall (p :: Pass). HsGroup (GhcPass p) -> [LFixitySig (GhcPass p)]
- appendGroups :: forall (p :: Pass). HsGroup (GhcPass p) -> HsGroup (GhcPass p) -> HsGroup (GhcPass p)
- tyFamInstDeclName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyFamInstDecl (GhcPass p) -> IdP (GhcPass p)
- tyFamInstDeclLName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyFamInstDecl (GhcPass p) -> LocatedN (IdP (GhcPass p))
- tyClDeclLName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyClDecl (GhcPass p) -> LocatedN (IdP (GhcPass p))
- countTyClDecls :: [TyClDecl pass] -> (Int, Int, Int, Int, Int)
- tcdName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyClDecl (GhcPass p) -> IdP (GhcPass p)
- hsDeclHasCusk :: TyClDecl GhcRn -> Bool
- pp_vanilla_decl_head :: forall (p :: Pass). OutputableBndrId p => XRec (GhcPass p) (IdP (GhcPass p)) -> LHsQTyVars (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc
- pprTyClDeclFlavour :: forall (p :: Pass). TyClDecl (GhcPass p) -> SDoc
- familyDeclLName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> XRec (GhcPass p) (IdP (GhcPass p))
- familyDeclName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> IdP (GhcPass p)
- famResultKindSignature :: forall (p :: Pass). FamilyResultSig (GhcPass p) -> Maybe (LHsKind (GhcPass p))
- resultVariableName :: forall (a :: Pass). FamilyResultSig (GhcPass a) -> Maybe (IdP (GhcPass a))
- derivStrategyName :: DerivStrategy a -> SDoc
- standaloneKindSigName :: forall (p :: Pass). StandaloneKindSig (GhcPass p) -> IdP (GhcPass p)
- getConNames :: ConDecl GhcRn -> [LocatedN Name]
- getRecConArgs_maybe :: ConDecl GhcRn -> Maybe (LocatedL [LConDeclField GhcRn])
- hsConDeclTheta :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> [LHsType (GhcPass p)]
- ppDataDefnHeader :: forall (p :: Pass). OutputableBndrId p => (Maybe (LHsContext (GhcPass p)) -> SDoc) -> HsDataDefn (GhcPass p) -> SDoc
- pprTyFamInstDecl :: forall (p :: Pass). OutputableBndrId p => TopLevelFlag -> TyFamInstDecl (GhcPass p) -> SDoc
- pprDataFamInstFlavour :: forall (p :: Pass). DataFamInstDecl (GhcPass p) -> SDoc
- pprHsFamInstLHS :: forall (p :: Pass). OutputableBndrId p => IdP (GhcPass p) -> HsOuterFamEqnTyVarBndrs (GhcPass p) -> HsTyPats (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc
- instDeclDataFamInsts :: forall (p :: Pass). [LInstDecl (GhcPass p)] -> [DataFamInstDecl (GhcPass p)]
- newOrDataToFlavour :: NewOrData -> TyConFlavour tc
- anyLConIsGadt :: Foldable f => f (GenLocated l (ConDecl pass)) -> Bool
- foldDerivStrategy :: forall p (pass :: Pass) r. p ~ GhcPass pass => r -> (XViaStrategy p -> r) -> DerivStrategy p -> r
- mapDerivStrategy :: forall p (pass :: Pass). p ~ GhcPass pass => (XViaStrategy p -> XViaStrategy p) -> DerivStrategy p -> DerivStrategy p
- flattenRuleDecls :: forall (p :: Pass). [LRuleDecls (GhcPass p)] -> [LRuleDecl (GhcPass p)]
- pprFullRuleName :: SourceText -> GenLocated a RuleName -> SDoc
- roleAnnotDeclName :: forall (p :: Pass). RoleAnnotDecl (GhcPass p) -> IdP (GhcPass p)
- data PendingTcSplice = PendingTcSplice SplicePointName (LHsExpr GhcTc)
- data PendingRnSplice = PendingRnSplice UntypedSpliceFlavour SplicePointName (LHsExpr GhcRn)
- data UntypedSpliceFlavour
  - = UntypedExpSplice
  - | UntypedPatSplice
  - | UntypedTypeSplice
  - | UntypedDeclSplice
- data DelayedSplice = DelayedSplice TcLclEnv (LHsExpr GhcRn) TcType (LHsExpr GhcTc)
- data XBindStmtTc = XBindStmtTc {
  - xbstc_bindOp :: SyntaxExpr GhcTc
  - xbstc_boundResultType :: Type
  - xbstc_boundResultMult :: Mult
  - xbstc_failOp :: FailOperator GhcTc
  }
- data XBindStmtRn = XBindStmtRn {
  - xbsrn_bindOp :: SyntaxExpr GhcRn
  - xbsrn_failOp :: FailOperator GhcRn
  }
- data RecStmtTc = RecStmtTc {
  - recS_bind_ty :: Type
  - recS_later_rets :: [PostTcExpr]
  - recS_rec_rets :: [PostTcExpr]
  - recS_ret_ty :: Type
  }
- data GrhsAnn = GrhsAnn {
  - ga_vbar :: Maybe EpaLocation
  - ga_sep :: AddEpAnn
  }
- data MatchGroupTc = MatchGroupTc {
  - mg_arg_tys :: [Scaled Type]
  - mg_res_ty :: Type
  - mg_origin :: Origin
  }
- data CmdTopTc = CmdTopTc Type Type (CmdSyntaxTable GhcTc)
- type CmdSyntaxTable p = [(Name, HsExpr p)]
- data HsExpansion orig expanded = HsExpanded orig expanded
- data XXExprGhcTc
  - = WrapExpr !(HsWrap HsExpr)
  - | ExpansionExpr !(HsExpansion (HsExpr GhcRn) (HsExpr GhcTc))
  - | ConLikeTc ConLike [TcTyVar] [Scaled TcType]
  - | HsTick CoreTickish (LHsExpr GhcTc)
  - | HsBinTick Int Int (LHsExpr GhcTc)
- data AnnsIf = AnnsIf {
  - aiIf :: EpaLocation
  - aiThen :: EpaLocation
  - aiElse :: EpaLocation
  - aiThenSemi :: Maybe EpaLocation
  - aiElseSemi :: Maybe EpaLocation
  }
- data AnnProjection = AnnProjection {
  - apOpen :: EpaLocation
  - apClose :: EpaLocation
  }
- data AnnFieldLabel = AnnFieldLabel {
  - afDot :: Maybe EpaLocation
  }
- data AnnExplicitSum = AnnExplicitSum {
  - aesOpen :: EpaLocation
  - aesBarsBefore :: [EpaLocation]
  - aesBarsAfter :: [EpaLocation]
  - aesClose :: EpaLocation
  }
- data family HsRecUpdParent x
- data EpAnnUnboundVar = EpAnnUnboundVar {
  - hsUnboundBackquotes :: (EpaLocation, EpaLocation)
  - hsUnboundHole :: EpaLocation
  }
- data EpAnnHsCase = EpAnnHsCase {
  - hsCaseAnnCase :: EpaLocation
  - hsCaseAnnOf :: EpaLocation
  - hsCaseAnnsRest :: [AddEpAnn]
  }
- data HsBracketTc = HsBracketTc {
  - hsb_quote :: HsQuote GhcRn
  - hsb_ty :: Type
  - hsb_wrap :: Maybe QuoteWrapper
  - hsb_splices :: [PendingTcSplice]
  }
- data HsWrap (hs_syn :: Type -> Type) = HsWrap HsWrapper (hs_syn GhcTc)
- data SyntaxExprTc
  - = SyntaxExprTc {
    - syn_expr :: HsExpr GhcTc
    - syn_arg_wraps :: [HsWrapper]
    - syn_res_wrap :: HsWrapper
    }
  - | NoSyntaxExprTc
- data SyntaxExprRn
  - = SyntaxExprRn (HsExpr GhcRn)
  - | NoSyntaxExprRn
- type family SyntaxExprGhc (p :: Pass) = (r :: Type) | r -> p where ...
- type PostTcTable = [(Name, PostTcExpr)]
- type PostTcExpr = HsExpr GhcTc
- noExpr :: forall (p :: Pass). HsExpr (GhcPass p)
- noSyntaxExpr :: forall (p :: Pass). IsPass p => SyntaxExpr (GhcPass p)
- mkSyntaxExpr :: HsExpr GhcRn -> SyntaxExprRn
- mkRnSyntaxExpr :: Name -> SyntaxExprRn
- tupArgPresent :: forall (p :: Pass). HsTupArg (GhcPass p) -> Bool
- isQuietHsExpr :: HsExpr id -> Bool
- pprBinds :: forall (idL :: Pass) (idR :: Pass). (OutputableBndrId idL, OutputableBndrId idR) => HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> SDoc
- ppr_lexpr :: forall (p :: Pass). OutputableBndrId p => LHsExpr (GhcPass p) -> SDoc
- ppr_expr :: forall (p :: Pass). OutputableBndrId p => HsExpr (GhcPass p) -> SDoc
- ppr_infix_expr :: forall (p :: Pass). OutputableBndrId p => HsExpr (GhcPass p) -> Maybe SDoc
- ppr_infix_expr_rn :: HsExpansion (HsExpr GhcRn) (HsExpr GhcRn) -> Maybe SDoc
- ppr_infix_expr_tc :: XXExprGhcTc -> Maybe SDoc
- ppr_apps :: forall (p :: Pass). OutputableBndrId p => HsExpr (GhcPass p) -> [Either (LHsExpr (GhcPass p)) (LHsWcType (NoGhcTc (GhcPass p)))] -> SDoc
- pprDebugParendExpr :: forall (p :: Pass). OutputableBndrId p => PprPrec -> LHsExpr (GhcPass p) -> SDoc
- pprParendLExpr :: forall (p :: Pass). OutputableBndrId p => PprPrec -> LHsExpr (GhcPass p) -> SDoc
- hsExprNeedsParens :: forall (p :: Pass). IsPass p => PprPrec -> HsExpr (GhcPass p) -> Bool
- gHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -> HsExpr (GhcPass id)
- parenthesizeHsExpr :: forall (p :: Pass). IsPass p => PprPrec -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- stripParensLHsExpr :: forall (p :: Pass). LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- stripParensHsExpr :: forall (p :: Pass). HsExpr (GhcPass p) -> HsExpr (GhcPass p)
- isAtomicHsExpr :: forall (p :: Pass). IsPass p => HsExpr (GhcPass p) -> Bool
- pprLCmd :: forall (p :: Pass). OutputableBndrId p => LHsCmd (GhcPass p) -> SDoc
- pprCmd :: forall (p :: Pass). OutputableBndrId p => HsCmd (GhcPass p) -> SDoc
- isQuietHsCmd :: HsCmd id -> Bool
- ppr_lcmd :: forall (p :: Pass). OutputableBndrId p => LHsCmd (GhcPass p) -> SDoc
- ppr_cmd :: forall (p :: Pass). OutputableBndrId p => HsCmd (GhcPass p) -> SDoc
- pprCmdArg :: forall (p :: Pass). OutputableBndrId p => HsCmdTop (GhcPass p) -> SDoc
- isEmptyMatchGroup :: forall (p :: Pass) body. MatchGroup (GhcPass p) body -> Bool
- isSingletonMatchGroup :: forall (p :: Pass) body. [LMatch (GhcPass p) body] -> Bool
- matchGroupArity :: forall (id :: Pass) body. MatchGroup (GhcPass id) body -> Arity
- hsLMatchPats :: forall (id :: Pass) body. LMatch (GhcPass id) body -> [LPat (GhcPass id)]
- pprMatches :: forall (idR :: Pass) body. (OutputableBndrId idR, Outputable body) => MatchGroup (GhcPass idR) body -> SDoc
- pprMatch :: forall (idR :: Pass) body. (OutputableBndrId idR, Outputable body) => Match (GhcPass idR) body -> SDoc
- pprGRHSs :: forall (idR :: Pass) body passL. (OutputableBndrId idR, Outputable body) => HsMatchContext passL -> GRHSs (GhcPass idR) body -> SDoc
- pprGRHS :: forall (idR :: Pass) body passL. (OutputableBndrId idR, Outputable body) => HsMatchContext passL -> GRHS (GhcPass idR) body -> SDoc
- pp_rhs :: Outputable body => HsMatchContext passL -> body -> SDoc
- pprStmt :: forall (idL :: Pass) (idR :: Pass) body. (OutputableBndrId idL, OutputableBndrId idR, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA, Outputable body) => StmtLR (GhcPass idL) (GhcPass idR) body -> SDoc
- pprBindStmt :: (Outputable pat, Outputable expr) => pat -> expr -> SDoc
- pprArg :: forall (idL :: Pass). OutputableBndrId idL => ApplicativeArg (GhcPass idL) -> SDoc
- pprTransformStmt :: forall (p :: Pass). OutputableBndrId p => [IdP (GhcPass p)] -> LHsExpr (GhcPass p) -> Maybe (LHsExpr (GhcPass p)) -> SDoc
- pprTransStmt :: Outputable body => Maybe body -> body -> TransForm -> SDoc
- pprBy :: Outputable body => Maybe body -> SDoc
- pprDo :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => HsDoFlavour -> [LStmt (GhcPass p) body] -> SDoc
- pprArrowExpr :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc
- ppr_module_name_prefix :: Maybe ModuleName -> SDoc
- ppr_do_stmts :: forall (idL :: Pass) (idR :: Pass) body. (OutputableBndrId idL, OutputableBndrId idR, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA, Outputable body) => [LStmtLR (GhcPass idL) (GhcPass idR) body] -> SDoc
- pprComp :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc
- pprQuals :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc
- pprPendingSplice :: forall (p :: Pass). OutputableBndrId p => SplicePointName -> LHsExpr (GhcPass p) -> SDoc
- ppr_quasi :: OutputableBndr p => p -> FastString -> SDoc
- ppr_splice :: forall (p :: Pass). OutputableBndrId p => SDoc -> Maybe SplicePointName -> LHsExpr (GhcPass p) -> SDoc
- thBrackets :: SDoc -> SDoc -> SDoc
- thTyBrackets :: SDoc -> SDoc
- ppr_with_pending_tc_splices :: SDoc -> [PendingTcSplice] -> SDoc
- pp_dotdot :: SDoc
- lamCaseKeyword :: LamCaseVariant -> SDoc
- pprExternalSrcLoc :: (StringLiteral, (Int, Int), (Int, Int)) -> SDoc
- pprHsArrType :: HsArrAppType -> SDoc
- matchContextErrString :: forall (p :: Pass). OutputableBndrId p => HsMatchContext (GhcPass p) -> SDoc
- matchArrowContextErrString :: HsArrowMatchContext -> SDoc
- matchDoContextErrString :: HsDoFlavour -> SDoc
- pprMatchInCtxt :: forall (idR :: Pass) body. (OutputableBndrId idR, Outputable body) => Match (GhcPass idR) body -> SDoc
- pprStmtInCtxt :: forall (idL :: Pass) (idR :: Pass) (ctx :: Pass) body. (OutputableBndrId idL, OutputableBndrId idR, OutputableBndrId ctx, Outputable body, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA) => HsStmtContext (GhcPass ctx) -> StmtLR (GhcPass idL) (GhcPass idR) body -> SDoc
- matchSeparator :: HsMatchContext p -> SDoc
- pprMatchContext :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsMatchContext p -> SDoc
- pprMatchContextNoun :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsMatchContext p -> SDoc
- pprMatchContextNouns :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsMatchContext p -> SDoc
- pprArrowMatchContextNoun :: HsArrowMatchContext -> SDoc
- pprArrowMatchContextNouns :: HsArrowMatchContext -> SDoc
- pprAStmtContext :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsStmtContext p -> SDoc
- pprStmtContext :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsStmtContext p -> SDoc
- pprStmtCat :: forall (p :: Pass) body. Stmt (GhcPass p) body -> SDoc
- pprAHsDoFlavour :: HsDoFlavour -> SDoc
- pprHsDoFlavour :: HsDoFlavour -> SDoc
- prependQualified :: Maybe ModuleName -> SDoc -> SDoc
- pprFieldLabelStrings :: (UnXRec p, Outputable (XRec p FieldLabelString)) => FieldLabelStrings p -> SDoc
- pprPrefixFastString :: FastString -> SDoc
- data LConsWithFields (p :: Pass) = LConsWithFields {
  - consWithFieldIndices :: [(LocatedA (IdP (GhcPass p)), Maybe [Located Int])]
  - consFields :: IntMap (LFieldOcc (GhcPass p))
  }
- data TyDeclBinders (p :: Pass) = TyDeclBinders {
  - tyDeclMainBinder :: !(LocatedA (IdP (GhcPass p)), TyConFlavour ())
  - tyDeclATs :: ![(LocatedA (IdP (GhcPass p)), TyConFlavour ())]
  - tyDeclOpSigs :: ![LocatedA (IdP (GhcPass p))]
  - tyDeclConsWithFields :: !(LConsWithFields p)
  }
- class UnXRec p => CollectPass p where
  - collectXXPat :: CollectFlag p -> XXPat p -> [IdP p] -> [IdP p]
  - collectXXHsBindsLR :: XXHsBindsLR p pR -> [IdP p] -> [IdP p]
  - collectXSplicePat :: CollectFlag p -> XSplicePat p -> [IdP p] -> [IdP p]
- data CollectFlag p where
  - CollNoDictBinders :: forall p. CollectFlag p
  - CollWithDictBinders :: CollectFlag (GhcPass 'Typechecked)
- mkHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkSimpleMatch :: forall (p :: Pass) body. (Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA, Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcAnn NoEpAnns) => HsMatchContext (GhcPass p) -> [LPat (GhcPass p)] -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p)))
- unguardedGRHSs :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcAnn NoEpAnns => SrcSpan -> LocatedA (body (GhcPass p)) -> EpAnn GrhsAnn -> GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))
- unguardedRHS :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcAnn NoEpAnns => EpAnn GrhsAnn -> SrcSpan -> LocatedA (body (GhcPass p)) -> [LGRHS (GhcPass p) (LocatedA (body (GhcPass p)))]
- mkMatchGroup :: forall (p :: Pass) body. AnnoBody p body => Origin -> LocatedL [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] -> MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))
- mkLamCaseMatchGroup :: forall (p :: Pass) body. AnnoBody p body => Origin -> LamCaseVariant -> LocatedL [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] -> MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))
- mkLocatedList :: Semigroup a => [GenLocated (SrcAnn a) e2] -> LocatedAn an [GenLocated (SrcAnn a) e2]
- mkHsApp :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkHsAppWith :: forall (id :: Pass). (LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> HsExpr (GhcPass id) -> LHsExpr (GhcPass id)) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkHsApps :: forall (id :: Pass). LHsExpr (GhcPass id) -> [LHsExpr (GhcPass id)] -> LHsExpr (GhcPass id)
- mkHsAppsWith :: forall (id :: Pass). (LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> HsExpr (GhcPass id) -> LHsExpr (GhcPass id)) -> LHsExpr (GhcPass id) -> [LHsExpr (GhcPass id)] -> LHsExpr (GhcPass id)
- mkHsAppType :: LHsExpr GhcRn -> LHsWcType GhcRn -> LHsExpr GhcRn
- mkHsAppTypes :: LHsExpr GhcRn -> [LHsWcType GhcRn] -> LHsExpr GhcRn
- mkHsLam :: forall (p :: Pass). (IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ Origin) => [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- mkHsLams :: [TyVar] -> [EvVar] -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkHsCaseAlt :: forall (p :: Pass) body. (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcAnn NoEpAnns, Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA) => LPat (GhcPass p) -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p)))
- nlHsTyApp :: Id -> [Type] -> LHsExpr GhcTc
- nlHsTyApps :: Id -> [Type] -> [LHsExpr GhcTc] -> LHsExpr GhcTc
- mkLHsPar :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- mkParPat :: forall (p :: Pass). IsPass p => LPat (GhcPass p) -> LPat (GhcPass p)
- nlParPat :: forall (name :: Pass). LPat (GhcPass name) -> LPat (GhcPass name)
- 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
- mkHsIntegral :: IntegralLit -> HsOverLit GhcPs
- mkHsFractional :: FractionalLit -> HsOverLit GhcPs
- mkHsIsString :: SourceText -> FastString -> HsOverLit GhcPs
- mkHsDo :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> HsExpr GhcPs
- mkHsDoAnns :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> EpAnn AnnList -> HsExpr GhcPs
- mkHsComp :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> HsExpr GhcPs
- mkHsCompAnns :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> EpAnn AnnList -> HsExpr GhcPs
- mkHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> EpAnn AnnsIf -> HsExpr GhcPs
- mkHsCmdIf :: LHsExpr GhcPs -> LHsCmd GhcPs -> LHsCmd GhcPs -> EpAnn AnnsIf -> HsCmd GhcPs
- mkNPat :: LocatedAn NoEpAnns (HsOverLit GhcPs) -> Maybe (SyntaxExpr GhcPs) -> EpAnn [AddEpAnn] -> Pat GhcPs
- mkNPlusKPat :: LocatedN RdrName -> LocatedAn NoEpAnns (HsOverLit GhcPs) -> EpAnn EpaLocation -> Pat GhcPs
- emptyTransStmt :: EpAnn [AddEpAnn] -> StmtLR GhcPs GhcPs (LHsExpr 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)
- 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)
- mkLastStmt :: forall (idR :: Pass) bodyR (idL :: Pass). IsPass idR => LocatedA (bodyR (GhcPass idR)) -> StmtLR (GhcPass idL) (GhcPass idR) (LocatedA (bodyR (GhcPass idR)))
- mkBodyStmt :: forall bodyR (idL :: Pass). LocatedA (bodyR GhcPs) -> StmtLR (GhcPass idL) GhcPs (LocatedA (bodyR GhcPs))
- mkPsBindStmt :: EpAnn [AddEpAnn] -> LPat GhcPs -> LocatedA (bodyR GhcPs) -> StmtLR GhcPs GhcPs (LocatedA (bodyR GhcPs))
- mkRnBindStmt :: LPat GhcRn -> LocatedA (bodyR GhcRn) -> StmtLR GhcRn GhcRn (LocatedA (bodyR GhcRn))
- mkTcBindStmt :: LPat GhcTc -> LocatedA (bodyR GhcTc) -> StmtLR GhcTc GhcTc (LocatedA (bodyR GhcTc))
- unitRecStmtTc :: RecStmtTc
- emptyRecStmt :: forall (idL :: Pass) bodyR. Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL => StmtLR (GhcPass idL) GhcPs bodyR
- emptyRecStmtName :: Anno [GenLocated (Anno (StmtLR GhcRn GhcRn bodyR)) (StmtLR GhcRn GhcRn bodyR)] ~ SrcSpanAnnL => StmtLR GhcRn GhcRn bodyR
- emptyRecStmtId :: Stmt GhcTc (LocatedA (HsCmd GhcTc))
- mkLetStmt :: EpAnn [AddEpAnn] -> HsLocalBinds GhcPs -> StmtLR GhcPs GhcPs (LocatedA b)
- mkHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> HsExpr GhcPs
- mkHsString :: forall (p :: Pass). String -> HsLit (GhcPass p)
- mkHsStringFS :: forall (p :: Pass). FastString -> HsLit (GhcPass p)
- mkHsStringPrimLit :: forall (p :: Pass). FastString -> HsLit (GhcPass p)
- mkHsCharPrimLit :: forall (p :: Pass). Char -> HsLit (GhcPass p)
- mkConLikeTc :: ConLike -> HsExpr GhcTc
- nlHsVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LHsExpr (GhcPass p)
- nl_HsVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> HsExpr (GhcPass p)
- nlHsDataCon :: DataCon -> LHsExpr GhcTc
- nlHsLit :: forall (p :: Pass). HsLit (GhcPass p) -> LHsExpr (GhcPass p)
- nlHsIntLit :: forall (p :: Pass). Integer -> LHsExpr (GhcPass p)
- nlVarPat :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LPat (GhcPass p)
- nlLitPat :: HsLit GhcPs -> LPat GhcPs
- nlHsApp :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- nlHsSyntaxApps :: SyntaxExprTc -> [LHsExpr GhcTc] -> LHsExpr GhcTc
- nlHsApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [LHsExpr (GhcPass p)] -> LHsExpr (GhcPass p)
- nlHsVarApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [IdP (GhcPass p)] -> LHsExpr (GhcPass p)
- nlConVarPat :: RdrName -> [RdrName] -> LPat GhcPs
- nlConVarPatName :: Name -> [Name] -> LPat GhcRn
- nlInfixConPat :: RdrName -> LPat GhcPs -> LPat GhcPs -> LPat GhcPs
- nlConPat :: RdrName -> [LPat GhcPs] -> LPat GhcPs
- nlConPatName :: Name -> [LPat GhcRn] -> LPat GhcRn
- nlNullaryConPat :: RdrName -> LPat GhcPs
- nlWildConPat :: DataCon -> LPat GhcPs
- nlWildPat :: LPat GhcPs
- nlWildPatName :: LPat GhcRn
- nlHsDo :: HsDoFlavour -> [LStmt GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs
- nlHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs
- nlHsLam :: LMatch GhcPs (LHsExpr GhcPs) -> LHsExpr GhcPs
- nlHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id)
- nlHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs
- nlHsCase :: LHsExpr GhcPs -> [LMatch GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs
- nlList :: [LHsExpr GhcPs] -> LHsExpr GhcPs
- nlHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- nlHsTyVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> IdP (GhcPass p) -> LHsType (GhcPass p)
- nlHsFunTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- nlHsParTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p)
- nlHsTyConApp :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> LexicalFixity -> IdP (GhcPass p) -> [LHsTypeArg (GhcPass p)] -> LHsType (GhcPass p)
- nlHsAppKindTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsKind (GhcPass p) -> LHsType (GhcPass p)
- mkLHsTupleExpr :: forall (p :: Pass). [LHsExpr (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p)
- mkLHsVarTuple :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p)
- nlTuplePat :: [LPat GhcPs] -> Boxity -> LPat GhcPs
- missingTupArg :: EpAnn EpaLocation -> HsTupArg GhcPs
- mkBigLHsVarTup :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p)
- mkBigLHsTup :: forall (id :: Pass). [LHsExpr (GhcPass id)] -> XExplicitTuple (GhcPass id) -> LHsExpr (GhcPass id)
- mkBigLHsVarPatTup :: [IdP GhcRn] -> LPat GhcRn
- mkBigLHsPatTup :: [LPat GhcRn] -> LPat GhcRn
- hsTypeToHsSigType :: LHsType GhcPs -> LHsSigType GhcPs
- hsTypeToHsSigWcType :: LHsType GhcPs -> LHsSigWcType GhcPs
- mkHsSigEnv :: (LSig GhcRn -> Maybe ([LocatedN Name], a)) -> [LSig GhcRn] -> NameEnv a
- mkClassOpSigs :: [LSig GhcPs] -> [LSig GhcPs]
- mkLHsWrap :: HsWrapper -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkHsWrap :: HsWrapper -> HsExpr GhcTc -> HsExpr GhcTc
- mkHsWrapCo :: TcCoercionN -> HsExpr GhcTc -> HsExpr GhcTc
- mkHsWrapCoR :: TcCoercionR -> HsExpr GhcTc -> HsExpr GhcTc
- mkLHsWrapCo :: TcCoercionN -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkHsCmdWrap :: HsWrapper -> HsCmd GhcTc -> HsCmd GhcTc
- mkLHsCmdWrap :: HsWrapper -> LHsCmd GhcTc -> LHsCmd GhcTc
- mkHsWrapPat :: HsWrapper -> Pat GhcTc -> Type -> Pat GhcTc
- mkHsWrapPatCo :: TcCoercionN -> Pat GhcTc -> Type -> Pat GhcTc
- mkHsDictLet :: TcEvBinds -> LHsExpr GhcTc -> LHsExpr GhcTc
- mkFunBind :: Origin -> LocatedN RdrName -> [LMatch GhcPs (LHsExpr GhcPs)] -> HsBind GhcPs
- mkTopFunBind :: Origin -> LocatedN Name -> [LMatch GhcRn (LHsExpr GhcRn)] -> HsBind GhcRn
- mkHsVarBind :: SrcSpan -> RdrName -> LHsExpr GhcPs -> LHsBind GhcPs
- mkVarBind :: IdP GhcTc -> LHsExpr GhcTc -> LHsBind GhcTc
- mkPatSynBind :: LocatedN RdrName -> HsPatSynDetails GhcPs -> LPat GhcPs -> HsPatSynDir GhcPs -> EpAnn [AddEpAnn] -> HsBind GhcPs
- isInfixFunBind :: forall id1 id2. UnXRec id2 => HsBindLR id1 id2 -> Bool
- spanHsLocaLBinds :: forall (p :: Pass). HsLocalBinds (GhcPass p) -> SrcSpan
- mkSimpleGeneratedFunBind :: SrcSpan -> RdrName -> [LPat GhcPs] -> LHsExpr GhcPs -> LHsBind GhcPs
- mkPrefixFunRhs :: LIdP (NoGhcTc p) -> HsMatchContext p
- mkMatch :: forall (p :: Pass). IsPass p => HsMatchContext (GhcPass p) -> [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> HsLocalBinds (GhcPass p) -> LMatch (GhcPass p) (LHsExpr (GhcPass p))
- isUnliftedHsBind :: HsBind GhcTc -> Bool
- isUnliftedHsBinds :: LHsBinds GhcTc -> Bool
- isBangedHsBind :: HsBind GhcTc -> Bool
- collectLocalBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)]
- collectHsIdBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)]
- collectHsValBinders :: forall (idL :: Pass) idR. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) idR -> [IdP (GhcPass idL)]
- collectHsBindBinders :: CollectPass p => CollectFlag p -> HsBindLR p idR -> [IdP p]
- collectHsBindsBinders :: CollectPass p => CollectFlag p -> LHsBindsLR p idR -> [IdP p]
- collectHsBindListBinders :: CollectPass p => CollectFlag p -> [LHsBindLR p idR] -> [IdP p]
- collectMethodBinders :: UnXRec idL => LHsBindsLR idL idR -> [LIdP idL]
- collectLStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [LStmtLR (GhcPass idL) (GhcPass idR) body] -> [IdP (GhcPass idL)]
- collectStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [StmtLR (GhcPass idL) (GhcPass idR) body] -> [IdP (GhcPass idL)]
- collectLStmtBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> LStmtLR (GhcPass idL) (GhcPass idR) body -> [IdP (GhcPass idL)]
- collectStmtBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> StmtLR (GhcPass idL) (GhcPass idR) body -> [IdP (GhcPass idL)]
- collectPatBinders :: CollectPass p => CollectFlag p -> LPat p -> [IdP p]
- collectPatsBinders :: CollectPass p => CollectFlag p -> [LPat p] -> [IdP p]
- hsGroupBinders :: HsGroup GhcRn -> [Name]
- hsTyClForeignBinders :: [TyClGroup GhcRn] -> [LForeignDecl GhcRn] -> [Name]
- hsLTyClDeclBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => LocatedA (TyClDecl (GhcPass p)) -> TyDeclBinders p
- hsForeignDeclsBinders :: forall (p :: Pass) a. (UnXRec (GhcPass p), IsSrcSpanAnn p a) => [LForeignDecl (GhcPass p)] -> [LIdP (GhcPass p)]
- hsPatSynSelectors :: forall (p :: Pass). IsPass p => HsValBinds (GhcPass p) -> [FieldOcc (GhcPass p)]
- getPatSynBinds :: UnXRec id => [(RecFlag, LHsBinds id)] -> [PatSynBind id id]
- hsDataFamInstBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => DataFamInstDecl (GhcPass p) -> LConsWithFields p
- lStmtsImplicits :: forall (idR :: Pass) (body :: Type -> Type). [LStmtLR GhcRn (GhcPass idR) (LocatedA (body (GhcPass idR)))] -> [(SrcSpan, [Name])]
- hsValBindsImplicits :: forall (idR :: Pass). HsValBindsLR GhcRn (GhcPass idR) -> [(SrcSpan, [Name])]
- lPatImplicits :: LPat GhcRn -> [(SrcSpan, [Name])]
- data HsParsedModule = HsParsedModule {
  - hpm_module :: Located (HsModule GhcPs)
  - hpm_src_files :: [FilePath]
  }
- data AnnsModule = AnnsModule {
  - am_main :: [AddEpAnn]
  - am_decls :: [TrailingAnn]
  - am_eof :: Maybe (RealSrcSpan, RealSrcSpan)
  }
- data XModulePs = XModulePs {
  - hsmodAnn :: EpAnn AnnsModule
  - hsmodLayout :: LayoutInfo GhcPs
  - hsmodDeprecMessage :: Maybe (LocatedP (WarningTxt GhcPs))
  - hsmodHaddockModHeader :: Maybe (LHsDoc GhcPs)
  }
- nameOccName :: Name -> OccName
- occName :: HasOccName name => name -> OccName
- occNameString :: OccName -> String
- ppr :: Outputable a => a -> SDoc
- showSDocUnsafe :: SDoc -> String
- handleGhcException :: ExceptionMonad m => (GhcException -> m a) -> m a -> m a
- data RdrName
  - = Unqual OccName
  - | Qual ModuleName OccName
  - | Orig Module OccName
  - | Exact Name
- rdrNameOcc :: RdrName -> OccName
- data GenLocated l e = L l e
- pattern RealSrcLoc' :: RealSrcLoc -> SrcLoc
- pattern RealSrcSpan' :: RealSrcSpan -> SrcSpan
- data RealSrcSpan
- type SrcSpanLess (a :: k) = a
- combineSrcSpans :: SrcSpan -> SrcSpan -> SrcSpan
- composeSrcSpan :: a -> a
- decomposeSrcSpan :: a -> a
- stringToStringBuffer :: String -> StringBuffer
- impliedXFlags :: [(Extension, TurnOnFlag, Extension)]
- type FunBind = HsMatchContext GhcPs
- type DoGenReplacement an ast a = (Data ast, Data a) => a -> (LocatedAn an ast -> Bool) -> LocatedAn an ast -> LocatedAn an ast -> StateT Bool IO (LocatedAn an ast)
- type Module = Located (HsModule GhcPs)
- type MonadFail' = MonadFail
- type ReplaceWorker a mod = (Data a, Data mod) => mod -> Parser (LocatedA a) -> Int -> Refactoring SrcSpan -> IO mod
- annSpanToSrcSpan :: AnnSpan -> SrcSpan
- badAnnSpan :: AnnSpan
- mkErr :: DynFlags -> SrcSpan -> String -> Errors
- parseModuleName :: SrcSpan -> Parser (LocatedA ModuleName)
- setAnnSpanFile :: FastString -> AnnSpan -> AnnSpan
- setRealSrcSpanFile :: FastString -> RealSrcSpan -> RealSrcSpan
- setSrcSpanFile :: FastString -> SrcSpan -> SrcSpan
- srcSpanToAnnSpan :: SrcSpan -> AnnSpan
- type AnnSpan = RealSrcSpan
- initParserOpts :: DynFlags -> ParserOpts

# ApiAnnotation / GHC.Parser.ApiAnnotation

data AnnKeywordId #

Exact print annotations exist so that tools can perform source to source conversions of Haskell code. They are used to keep track of the various syntactic keywords that are not otherwise captured in the AST.

The wiki page describing this feature is https://gitlab.haskell.org/ghc/ghc/wikis/api-annotations https://gitlab.haskell.org/ghc/ghc/-/wikis/implementing-trees-that-grow/in-tree-api-annotations

Note: in general the names of these are taken from the corresponding token, unless otherwise noted See Note [exact print annotations] above for details of the usage

Constructors

AnnAnyclass |
AnnAs |
AnnBang | `!`
AnnBackquote | '`'
AnnBy |
AnnCase | case or lambda case
AnnCases | lambda cases
AnnClass |
AnnClose | '#)' or '#-}' etc
AnnCloseB | '|)'
AnnCloseBU | '|)', unicode variant
AnnCloseC | '}'
AnnCloseQ | '|]'
AnnCloseQU | '|]', unicode variant
AnnCloseP | ')'
AnnClosePH | '#)'
AnnCloseS | ']'
AnnColon |
AnnComma | as a list separator
AnnCommaTuple | in a RdrName for a tuple
AnnDarrow | '=>'
AnnDarrowU | '=>', unicode variant
AnnData |
AnnDcolon | '::'
AnnDcolonU | '::', unicode variant
AnnDefault |
AnnDeriving |
AnnDo |
AnnDot | `.`
AnnDotdot | '..'
AnnElse |
AnnEqual |
AnnExport |
AnnFamily |
AnnForall |
AnnForallU | Unicode variant
AnnForeign |
AnnFunId | for function name in matches where there are multiple equations for the function.
AnnGroup |
AnnHeader | for CType
AnnHiding |
AnnIf |
AnnImport |
AnnIn |
AnnInfix | 'infix' or 'infixl' or 'infixr'
AnnInstance |
AnnLam |
AnnLarrow | '<-'
AnnLarrowU | '<-', unicode variant
AnnLet |
AnnLollyU | The `⊸` unicode arrow
AnnMdo |
AnnMinus | `-`
AnnModule |
AnnNewtype |
AnnName | where a name loses its location in the AST, this carries it
AnnOf |
AnnOpen | '{-# DEPRECATED' etc. Opening of pragmas where the capitalisation of the string can be changed by the user. The actual text used is stored in a `SourceText` on the relevant pragma item.
AnnOpenB | '(|'
AnnOpenBU | '(|', unicode variant
AnnOpenC | '{'
AnnOpenE | '[e|' or '[e||'
AnnOpenEQ | '[|'
AnnOpenEQU | '[|', unicode variant
AnnOpenP | '('
AnnOpenS | '['
AnnOpenPH | '(#'
AnnDollar | prefix `$` -- TemplateHaskell
AnnDollarDollar | prefix `$$` -- TemplateHaskell
AnnPackageName |
AnnPattern |
AnnPercent | `%` -- for HsExplicitMult
AnnPercentOne | '%1' -- for HsLinearArrow
AnnProc |
AnnQualified |
AnnRarrow | `->`
AnnRarrowU | `->`, unicode variant
AnnRec |
AnnRole |
AnnSafe |
AnnSemi | ';'
AnnSimpleQuote | '''
AnnSignature |
AnnStatic | `static`
AnnStock |
AnnThen |
AnnThTyQuote | double '''
AnnTilde | `~`
AnnType |
AnnUnit | `()` for types
AnnUsing |
AnnVal | e.g. INTEGER
AnnValStr | String value, will need quotes when output
AnnVbar | '|'
AnnVia | `via`
AnnWhere |
Annlarrowtail | `-<`
AnnlarrowtailU | `-<`, unicode variant
Annrarrowtail | `->`
AnnrarrowtailU | `->`, unicode variant
AnnLarrowtail | `-<<`
AnnLarrowtailU | `-<<`, unicode variant
AnnRarrowtail | `>>-`
AnnRarrowtailU | `>>-`, unicode variant

#### Instances

Instances details

Data AnnKeywordId |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnKeywordId -> c AnnKeywordId #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnKeywordId #

toConstr :: AnnKeywordId -> Constr #

dataTypeOf :: AnnKeywordId -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnKeywordId) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnKeywordId) #

gmapT :: (forall b. Data b => b -> b) -> AnnKeywordId -> AnnKeywordId #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnKeywordId -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnKeywordId -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnKeywordId -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnKeywordId -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnKeywordId -> m AnnKeywordId #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnKeywordId -> m AnnKeywordId #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnKeywordId -> m AnnKeywordId #

Show AnnKeywordId |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> AnnKeywordId -> ShowS # show :: AnnKeywordId -> String # showList :: [AnnKeywordId] -> ShowS #
Outputable AnnKeywordId |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: AnnKeywordId -> SDoc #
Eq AnnKeywordId |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: AnnKeywordId -> AnnKeywordId -> Bool # (/=) :: AnnKeywordId -> AnnKeywordId -> Bool #
Ord AnnKeywordId |

Instance details

Defined in GHC.Parser.Annotation

Methods

compare :: AnnKeywordId -> AnnKeywordId -> Ordering #

(<) :: AnnKeywordId -> AnnKeywordId -> Bool #

(<=) :: AnnKeywordId -> AnnKeywordId -> Bool #

(>) :: AnnKeywordId -> AnnKeywordId -> Bool #

(>=) :: AnnKeywordId -> AnnKeywordId -> Bool #

max :: AnnKeywordId -> AnnKeywordId -> AnnKeywordId #

min :: AnnKeywordId -> AnnKeywordId -> AnnKeywordId #

data DeltaPos #

Spacing between output items when exact printing. It captures the spacing from the current print position on the page to the position required for the thing about to be printed. This is either on the same line in which case is is simply the number of spaces to emit, or it is some number of lines down, with a given column offset. The exact printing algorithm keeps track of the column offset pertaining to the current anchor position, so the `deltaColumn` is the additional spaces to add in this case. See https://gitlab.haskell.org/ghc/ghc/wikis/api-annotations for details.

Constructors

SameLine |

Fields

- deltaColumn :: !Int

DifferentLine |

Fields

- deltaLine :: !Int

  deltaLine should always be > 0

- deltaColumn :: !Int

#### Instances

Instances details

Data DeltaPos |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DeltaPos -> c DeltaPos #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DeltaPos #

toConstr :: DeltaPos -> Constr #

dataTypeOf :: DeltaPos -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DeltaPos) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DeltaPos) #

gmapT :: (forall b. Data b => b -> b) -> DeltaPos -> DeltaPos #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DeltaPos -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DeltaPos -> r #

gmapQ :: (forall d. Data d => d -> u) -> DeltaPos -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DeltaPos -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DeltaPos -> m DeltaPos #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DeltaPos -> m DeltaPos #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DeltaPos -> m DeltaPos #

Show DeltaPos |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> DeltaPos -> ShowS # show :: DeltaPos -> String # showList :: [DeltaPos] -> ShowS #
Outputable DeltaPos |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: DeltaPos -> SDoc #
Eq DeltaPos |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: DeltaPos -> DeltaPos -> Bool # (/=) :: DeltaPos -> DeltaPos -> Bool #
Ord DeltaPos |
Instance details Defined in GHC.Parser.Annotation Methods compare :: DeltaPos -> DeltaPos -> Ordering # (<) :: DeltaPos -> DeltaPos -> Bool # (<=) :: DeltaPos -> DeltaPos -> Bool # (>) :: DeltaPos -> DeltaPos -> Bool # (>=) :: DeltaPos -> DeltaPos -> Bool # max :: DeltaPos -> DeltaPos -> DeltaPos # min :: DeltaPos -> DeltaPos -> DeltaPos #

# BasicTypes / GHC.Types.Basic

data Fixity #

Constructors

Fixity SourceText Int FixityDirection |

#### Instances

Instances details

Data Fixity |

Instance details

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 |
Instance details Defined in GHC.Types.Fixity Methods put_ :: BinHandle -> Fixity -> IO () # put :: BinHandle -> Fixity -> IO (Bin Fixity) # get :: BinHandle -> IO Fixity #
Outputable Fixity |
Instance details Defined in GHC.Types.Fixity Methods ppr :: Fixity -> SDoc #
Eq Fixity |
Instance details Defined in GHC.Types.Fixity Methods (==) :: Fixity -> Fixity -> Bool # (/=) :: Fixity -> Fixity -> Bool #

data SourceText #

Constructors

SourceText FastString |
NoSourceText | For when code is generated, e.g. TH, deriving. The pretty printer will then make its own representation of the item.

#### Instances

Instances details

Data SourceText |

Instance details

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 |
Instance details Defined in GHC.Types.SourceText Methods showsPrec :: Int -> SourceText -> ShowS # show :: SourceText -> String # showList :: [SourceText] -> ShowS #
NFData SourceText |
Instance details Defined in GHC.Types.SourceText Methods rnf :: SourceText -> () #
Binary SourceText |
Instance details Defined in GHC.Types.SourceText Methods put_ :: BinHandle -> SourceText -> IO () # put :: BinHandle -> SourceText -> IO (Bin SourceText) # get :: BinHandle -> IO SourceText #
Outputable SourceText |
Instance details Defined in GHC.Types.SourceText Methods ppr :: SourceText -> SDoc #
Eq SourceText |
Instance details Defined in GHC.Types.SourceText Methods (==) :: SourceText -> SourceText -> Bool # (/=) :: SourceText -> SourceText -> Bool #
ExactPrint (SourceText, RuleName) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: (SourceText, RuleName) -> Entry # setAnnotationAnchor :: (SourceText, RuleName) -> Anchor -> EpAnnComments -> (SourceText, RuleName) # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => (SourceText, RuleName) -> EP w m (SourceText, RuleName) #
ExactPrint (SourceText, WarningCategory) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: (SourceText, WarningCategory) -> Entry # setAnnotationAnchor :: (SourceText, WarningCategory) -> Anchor -> EpAnnComments -> (SourceText, WarningCategory) # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => (SourceText, WarningCategory) -> EP w m (SourceText, WarningCategory) #
type Anno (SourceText, RuleName) |
Instance details Defined in GHC.Hs.Decls type Anno (SourceText, RuleName) = SrcAnn NoEpAnns

# DynFlags / GHC.Driver.Session

data FlagSpec flag #

Constructors

FlagSpec |

Fields

- flagSpecName :: String

  Flag in string form

- flagSpecFlag :: flag

  Flag in internal form

- flagSpecAction :: TurnOnFlag -> DynP ()

  Extra action to run when the flag is found Typically, emit a warning or error

- flagSpecGhcMode :: GhcFlagMode

  In which ghc mode the flag has effect

data GeneralFlag #

Enumerates the simple on-or-off dynamic flags

Constructors

Opt_DumpToFile | Append dump output to files instead of stdout.
Opt_DumpWithWays | Use foo.ways.dumpFlag instead of foo.dumpFlag
Opt_D_dump_minimal_imports |
Opt_DoCoreLinting |
Opt_DoLinearCoreLinting |
Opt_DoStgLinting |
Opt_DoCmmLinting |
Opt_DoAsmLinting |
Opt_DoAnnotationLinting |
Opt_DoBoundsChecking |
Opt_NoLlvmMangler |
Opt_FastLlvm |
Opt_NoTypeableBinds |
Opt_DistinctConstructorTables |
Opt_InfoTableMap |
Opt_InfoTableMapWithFallback |
Opt_InfoTableMapWithStack |
Opt_WarnIsError |
Opt_ShowWarnGroups |
Opt_HideSourcePaths |
Opt_PrintExplicitForalls |
Opt_PrintExplicitKinds |
Opt_PrintExplicitCoercions |
Opt_PrintExplicitRuntimeReps |
Opt_PrintEqualityRelations |
Opt_PrintAxiomIncomps |
Opt_PrintUnicodeSyntax |
Opt_PrintExpandedSynonyms |
Opt_PrintPotentialInstances |
Opt_PrintRedundantPromotionTicks |
Opt_PrintTypecheckerElaboration |
Opt_CallArity |
Opt_Exitification |
Opt_Strictness |
Opt_LateDmdAnal |
Opt_KillAbsence |
Opt_KillOneShot |
Opt_FullLaziness |
Opt_FloatIn |
Opt_LocalFloatOut | Enable floating out of let-bindings in the simplifier
Opt_LocalFloatOutTopLevel | Enable floating out of let-bindings at the top level in the simplifier N.B. See Note [RHS Floating]
Opt_LateSpecialise |
Opt_Specialise |
Opt_SpecialiseAggressively |
Opt_CrossModuleSpecialise |
Opt_PolymorphicSpecialisation |
Opt_InlineGenerics |
Opt_InlineGenericsAggressively |
Opt_StaticArgumentTransformation |
Opt_CSE |
Opt_StgCSE |
Opt_StgLiftLams |
Opt_LiberateCase |
Opt_SpecConstr |
Opt_SpecConstrKeen |
Opt_SpecialiseIncoherents |
Opt_DoLambdaEtaExpansion |
Opt_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_CmmControlFlow |
Opt_AsmShortcutting |
Opt_OmitYields |
Opt_FunToThunk |
Opt_DictsStrict |
Opt_DmdTxDictSel | deprecated, no effect and behaviour is now default. Allowed switching of a special demand transformer for dictionary selectors
Opt_Loopification |
Opt_CfgBlocklayout | Use the cfg based block layout algorithm.
Opt_WeightlessBlocklayout | Layout based on last instruction per block.
Opt_CprAnal |
Opt_WorkerWrapper |
Opt_WorkerWrapperUnlift | Do W/W split for unlifting even if we won't unbox anything.
Opt_SolveConstantDicts |
Opt_AlignmentSanitisation |
Opt_CatchNonexhaustiveCases |
Opt_NumConstantFolding |
Opt_CoreConstantFolding |
Opt_FastPAPCalls |
Opt_DoTagInferenceChecks |
Opt_SimplPreInlining |
Opt_IgnoreInterfacePragmas |
Opt_OmitInterfacePragmas |
Opt_ExposeAllUnfoldings |
Opt_WriteInterface |
Opt_WriteHie |
Opt_DisableJsMinifier | render JavaScript pretty-printed instead of minified (compacted)
Opt_AutoSccsOnIndividualCafs |
Opt_ProfCountEntries |
Opt_ProfLateInlineCcs |
Opt_ProfLateCcs |
Opt_ProfManualCcs | Ignore manual SCC annotations
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_InsertBreakpoints |
Opt_GhciHistory |
Opt_GhciLeakCheck |
Opt_ValidateHie |
Opt_LocalGhciHistory |
Opt_NoIt |
Opt_HelpfulErrors |
Opt_DeferTypeErrors |
Opt_DeferTypedHoles |
Opt_DeferOutOfScopeVariables |

Opt_PIC

    -fPIC

Opt_PIE

    -fPIE

Opt_PICExecutable

    -pie

Opt_ExternalDynamicRefs |
Opt_Ticky |
Opt_Ticky_Allocd |
Opt_Ticky_LNE |
Opt_Ticky_Dyn_Thunk |
Opt_Ticky_Tag |
Opt_Ticky_AP | Use regular thunks even when we could use std ap thunks in order to get entry counts
Opt_CmmThreadSanitizer |
Opt_RPath |
Opt_RelativeDynlibPaths |

Opt_CompactUnwind

    -fcompact-unwind

Opt_Hpc |
Opt_FamAppCache |
Opt_ExternalInterpreter |
Opt_OptimalApplicativeDo |
Opt_VersionMacros |
Opt_WholeArchiveHsLibs |
Opt_SingleLibFolder |
Opt_ExposeInternalSymbols |
Opt_KeepCAFs |
Opt_KeepGoing |
Opt_ByteCode |
Opt_ByteCodeAndObjectCode |
Opt_UnoptimizedCoreForInterpreter |
Opt_LinkRts |
Opt_ErrorSpans |
Opt_DeferDiagnostics |
Opt_DiagnosticsShowCaret |
Opt_PprCaseAsLet |
Opt_PprShowTicks |
Opt_ShowHoleConstraints |
Opt_ShowValidHoleFits |
Opt_SortValidHoleFits |
Opt_SortBySizeHoleFits |
Opt_SortBySubsumHoleFits |
Opt_AbstractRefHoleFits |
Opt_UnclutterValidHoleFits |
Opt_ShowTypeAppOfHoleFits |
Opt_ShowTypeAppVarsOfHoleFits |
Opt_ShowDocsOfHoleFits |
Opt_ShowTypeOfHoleFits |
Opt_ShowProvOfHoleFits |
Opt_ShowMatchesOfHoleFits |
Opt_ShowLoadedModules |
Opt_HexWordLiterals |
Opt_SuppressCoercions |
Opt_SuppressCoercionTypes |
Opt_SuppressVarKinds |
Opt_SuppressModulePrefixes |
Opt_SuppressTypeApplications |
Opt_SuppressIdInfo |
Opt_SuppressUnfoldings |
Opt_SuppressTypeSignatures |
Opt_SuppressUniques |
Opt_SuppressStgExts |
Opt_SuppressStgReps |
Opt_SuppressTicks |
Opt_SuppressTimestamps | Suppress timestamps in dumps
Opt_SuppressCoreSizes | Suppress per binding Core size stats in dumps
Opt_ShowErrorContext |
Opt_AutoLinkPackages |
Opt_ImplicitImportQualified |
Opt_KeepHscppFiles |
Opt_KeepHiDiffs |
Opt_KeepHcFiles |
Opt_KeepSFiles |
Opt_KeepTmpFiles |
Opt_KeepRawTokenStream |
Opt_KeepLlvmFiles |
Opt_KeepHiFiles |
Opt_KeepOFiles |
Opt_BuildDynamicToo |
Opt_WriteIfSimplifiedCore |
Opt_UseBytecodeRatherThanObjects |
Opt_DistrustAllPackages |
Opt_PackageTrust |
Opt_PluginTrustworthy |
Opt_G_NoStateHack |
Opt_G_NoOptCoercion |

#### Instances

Instances details

Enum GeneralFlag |

Instance details

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 |
Instance details Defined in GHC.Driver.Flags Methods showsPrec :: Int -> GeneralFlag -> ShowS # show :: GeneralFlag -> String # showList :: [GeneralFlag] -> ShowS #
Eq GeneralFlag |
Instance details Defined in GHC.Driver.Flags Methods (==) :: GeneralFlag -> GeneralFlag -> Bool # (/=) :: GeneralFlag -> GeneralFlag -> Bool #

gopt_set :: DynFlags -> GeneralFlag -> DynFlags #

Set a `GeneralFlag`

gopt_unset :: DynFlags -> GeneralFlag -> DynFlags #

Unset a `GeneralFlag`

parseDynamicFilePragma #

Arguments

:: MonadIO m |
=> DynFlags |
-> [Located String] |
-> m (DynFlags, [Located String], Messages DriverMessage) | Updated `DynFlags`, left-over arguments, and list of warnings.

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.

xopt_set :: DynFlags -> Extension -> DynFlags #

Set a `Extension`

xopt_unset :: DynFlags -> Extension -> DynFlags #

Unset a `Extension`

xFlags :: [FlagSpec Extension] #

These -Xblah flags can all be reversed with -XNoblah

# ErrUtils

type Errors = ErrorMessages #

type ErrorMessages = Messages GhcMessage #

A collection of error messages. INVARIANT: Each `GhcMessage` in the collection should have `SevError` severity.

onError :: String -> Errors -> a #

# FastString / GHC.Data.FastString

data FastString #

A `FastString` is a UTF-8 encoded string together with a unique ID. All `FastString`s are stored in a global hashtable to support fast O(1) comparison.

It is also associated with a lazy reference to the Z-encoding of this string which is used by the compiler internally.

#### Instances

Instances details

Data FastString |

Instance details

Defined in GHC.Data.FastString

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FastString -> c FastString #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FastString #

toConstr :: FastString -> Constr #

dataTypeOf :: FastString -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FastString) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FastString) #

gmapT :: (forall b. Data b => b -> b) -> FastString -> FastString #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FastString -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FastString -> r #

gmapQ :: (forall d. Data d => d -> u) -> FastString -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> FastString -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> FastString -> m FastString #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FastString -> m FastString #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FastString -> m FastString #

IsString FastString |
Instance details Defined in GHC.Data.FastString Methods fromString :: String -> FastString #
Monoid FastString |
Instance details Defined in GHC.Data.FastString Methods mempty :: FastString # mappend :: FastString -> FastString -> FastString # mconcat :: [FastString] -> FastString #
Semigroup FastString |
Instance details Defined in GHC.Data.FastString Methods (<>) :: FastString -> FastString -> FastString # sconcat :: NonEmpty FastString -> FastString # stimes :: Integral b => b -> FastString -> FastString #
Show FastString |
Instance details Defined in GHC.Data.FastString Methods showsPrec :: Int -> FastString -> ShowS # show :: FastString -> String # showList :: [FastString] -> ShowS #
NFData FastString |
Instance details Defined in GHC.Data.FastString Methods rnf :: FastString -> () #
ToJExpr FastString |
Instance details Defined in GHC.JS.Make Methods toJExpr :: FastString -> JExpr # toJExprFromList :: [FastString] -> JExpr #
Uniquable FastString |
Instance details Defined in GHC.Types.Unique Methods getUnique :: FastString -> Unique #
Binary FastString |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> FastString -> IO () # put :: BinHandle -> FastString -> IO (Bin FastString) # get :: BinHandle -> IO FastString #
Outputable FastString |
Instance details Defined in GHC.Utils.Outputable Methods ppr :: FastString -> SDoc #
ExactPrint FastString |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FastString -> Entry # setAnnotationAnchor :: FastString -> Anchor -> EpAnnComments -> FastString # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FastString -> EP w m FastString #
Eq FastString |
Instance details Defined in GHC.Data.FastString Methods (==) :: FastString -> FastString -> Bool # (/=) :: FastString -> FastString -> Bool #
ToJExpr a => ToJExpr (UniqMap FastString a) |
Instance details Defined in GHC.JS.Make Methods toJExpr :: UniqMap FastString a -> JExpr # toJExprFromList :: [UniqMap FastString a] -> JExpr #
ExactPrint (SourceText, RuleName) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: (SourceText, RuleName) -> Entry # setAnnotationAnchor :: (SourceText, RuleName) -> Anchor -> EpAnnComments -> (SourceText, RuleName) # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => (SourceText, RuleName) -> EP w m (SourceText, RuleName) #
type Anno FastString |
Instance details Defined in GHC.Hs.Expr type Anno FastString = SrcAnn NoEpAnns
type Anno (SourceText, RuleName) |
Instance details Defined in GHC.Hs.Decls type Anno (SourceText, RuleName) = SrcAnn NoEpAnns

mkFastString :: String -> FastString #

Creates a UTF-8 encoded `FastString` from a `String`

# HeaderInfo / GHC.Parser.Header

getOptions #

Arguments

:: ParserOpts |
-> StringBuffer | Input Buffer
-> FilePath | Source filename. Used for location info.
-> (Messages PsMessage, [Located String]) | warnings and parsed options.

Parse OPTIONS and LANGUAGE pragmas of the source file.

Throws a `SourceError` if flag parsing fails (including unsupported flags.)

# HsExpr / GHC.Hs.Expr

data GRHS p body #

Guarded Right Hand Side.

Constructors

GRHS (XCGRHS p body) [GuardLStmt p] body |
XGRHS !(XXGRHS p body) |

#### Instances

Instances details

(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
ExactPrint (GRHS GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHS GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsExpr GhcPs))) #

type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = SrcAnn NoEpAnns

data HsExpr p #

A Haskell expression.

Constructors

HsVar (XVar p) (LIdP p) | Variable See Note [Located RdrNames]
HsUnboundVar (XUnboundVar p) RdrName | Unbound variable; also used for "holes" (_ or _x). Turned from HsVar to HsUnboundVar by the renamer, when it finds an out-of-scope variable or hole. The (XUnboundVar p) field becomes an HoleExprRef after typechecking; this is where the erroring expression will be written after solving. See Note [Holes] in GHC.Tc.Types.Constraint.
HsRecSel (XRecSel p) (FieldOcc p) | Variable pointing to record selector See Note [Non-overloaded record field selectors] and Note [Record selectors in the AST]
HsOverLabel (XOverLabel p) SourceText FastString | Overloaded label (Note [Overloaded labels] in GHC.OverloadedLabels) Note [Pragma source text] in GHC.Types.SourceText
HsIPVar (XIPVar p) HsIPName | Implicit parameter (not in use after typechecking)
HsOverLit (XOverLitE p) (HsOverLit p) | Overloaded literals
HsLit (XLitE p) (HsLit p) | Simple (non-overloaded) literals

HsLam (XLam p) (MatchGroup p (LHsExpr p))

Lambda abstraction. Currently always a single match

- `AnnKeywordId` : `AnnLam`, `AnnRarrow`,

HsLamCase (XLamCase p) LamCaseVariant (MatchGroup p (LHsExpr p))

Lambda-case

- `AnnKeywordId` : `AnnLam`, `AnnCase`,`AnnOpen`, `AnnClose`
- `AnnKeywordId` : `AnnLam`, `AnnCases`,`AnnOpen`, `AnnClose`

HsApp (XApp p) (LHsExpr p) (LHsExpr p) | Application

HsAppType (XAppTypeE p) (LHsExpr p) !(LHsToken "@" p) (LHsWcType (NoGhcTc p))

Visible type application

Explicit type argument; e.g f @Int x y NB: Has wildcards, but no implicit quantification

- `AnnKeywordId` : `AnnAt`,

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 `negate`

- `AnnKeywordId` : `AnnMinus`

HsPar

- `AnnKeywordId` : `AnnOpen` `'('`, `AnnClose` `')'`

Fields

- (XPar p)
- !(LHsToken "(" p)
- (LHsExpr p)

  Parenthesised expr; see Note [Parens in HsSyn]

- !(LHsToken ")" p)

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

- `AnnKeywordId` : `AnnOpen`, `AnnClose`

ExplicitSum (XExplicitSum p) ConTag SumWidth (LHsExpr p)

Used for unboxed sum types

- `AnnKeywordId` : `AnnOpen` `'(#'`, `AnnVbar`, `AnnClose` `'#)'`,

There will be multiple `AnnVbar`, (1 - alternative) before the expression, (arity - alternative) after it

HsCase (XCase p) (LHsExpr p) (MatchGroup p (LHsExpr p))

- `AnnKeywordId` : `AnnCase`, `AnnOf`,`AnnOpen` `'{'`, `AnnClose` `'}'`

HsIf (XIf p) (LHsExpr p) (LHsExpr p) (LHsExpr p)

- `AnnKeywordId` : `AnnIf`, `AnnSemi`, `AnnThen`,`AnnSemi`, `AnnElse`,

HsMultiIf (XMultiIf p) [LGRHS p (LHsExpr p)]

Multi-way if

- `AnnKeywordId` : `AnnIf` `AnnOpen`,`AnnClose`,

HsLet (XLet p) !(LHsToken "let" p) (HsLocalBinds p) !(LHsToken "in" p) (LHsExpr p)

let(rec)

- `AnnKeywordId` : `AnnLet`, `AnnOpen` `'{'`, `AnnClose` `'}'`,`AnnIn`

HsDo (XDo p) HsDoFlavour (XRec p [ExprLStmt p])

- `AnnKeywordId` : `AnnDo`, `AnnOpen`, `AnnSemi`, `AnnVbar`, `AnnClose`

ExplicitList (XExplicitList p) [LHsExpr p]

Syntactic list: [a,b,c,...]

- `AnnKeywordId` : `AnnOpen` `'['`, `AnnClose` `']'`

RecordCon

Record construction

- `AnnKeywordId` : `AnnOpen` `'{'`, `AnnDotdot`,`AnnClose` `'}'`

Fields

- rcon_ext :: XRecordCon p
- rcon_con :: XRec p (ConLikeP p)
- rcon_flds :: HsRecordBinds p

RecordUpd

Record update

- `AnnKeywordId` : `AnnOpen` `'{'`, `AnnDotdot`,`AnnClose` `'}'` 'GHC.Parser.Annotation.AnnComma, `AnnDot`, `AnnClose` `'}'`

Fields

- rupd_ext :: XRecordUpd p
- rupd_expr :: LHsExpr p
- rupd_flds :: LHsRecUpdFields p

HsGetField

Record field selection e.g `z.x`.

- `AnnKeywordId` : `AnnDot`

Fields

- gf_ext :: XGetField p
- gf_expr :: LHsExpr p
- gf_field :: XRec p (DotFieldOcc p)

HsProjection | Record field selector. e.g. `(.x)` or `(.x.y)` This case only arises when the OverloadedRecordDot langauge extensions is enabled. See Note [Record selectors in the AST].

Fields

- proj_ext :: XProjection p
- proj_flds :: NonEmpty (XRec p (DotFieldOcc p))

ExprWithTySig (XExprWithTySig p) (LHsExpr p) (LHsSigWcType (NoGhcTc p))

Expression with an explicit type signature. `e :: type`

- `AnnKeywordId` : `AnnDcolon`

ArithSeq (XArithSeq p) (Maybe (SyntaxExpr p)) (ArithSeqInfo p)

Arithmetic sequence

- `AnnKeywordId` : `AnnOpen` `'['`, `AnnComma`,`AnnDotdot`, `AnnClose` `']'`

HsTypedBracket (XTypedBracket p) (LHsExpr p)

- `AnnKeywordId` : `AnnOpen`, `AnnOpenE`,`AnnOpenEQ`, `AnnClose`,`AnnCloseQ`

HsUntypedBracket (XUntypedBracket p) (HsQuote p) |

HsTypedSplice (XTypedSplice p) (LHsExpr p)

- `AnnKeywordId` : `AnnOpen`, `AnnClose`

HsUntypedSplice (XUntypedSplice p) (HsUntypedSplice p) |

HsProc (XProc p) (LPat p) (LHsCmdTop p)

`proc` notation for Arrows

- `AnnKeywordId` : `AnnProc`, `AnnRarrow`

HsStatic (XStatic p) (LHsExpr p)

- `AnnKeywordId` : `AnnStatic`,

HsPragE (XPragE p) (HsPragE p) (LHsExpr p) |
XExpr !(XXExpr p) |

#### Instances

Instances details

HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct `HieAST` nodes which include the type of the expression. It is not yet possible to do this efficiently for all expression forms, so we skip filling in the type for those inputs. See Note [Computing the type of every node in the tree]
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
DisambECP (HsExpr GhcPs) |

Instance details

Defined in GHC.Parser.PostProcess

Associated Types

type Body (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsExpr GhcPs) = HsExpr
type InfixOp (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsExpr GhcPs) = HsExpr GhcPs
type FunArg (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsExpr GhcPs) = HsExpr GhcPs

Methods

ecpFromCmd' :: LHsCmd GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

ecpFromExp' :: LHsExpr GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

mkHsProjUpdatePV :: SrcSpan -> Located [LocatedAn NoEpAnns (DotFieldOcc GhcPs)] -> LocatedA (HsExpr GhcPs) -> Bool -> [AddEpAnn] -> PV (LHsRecProj GhcPs (LocatedA (HsExpr GhcPs))) #

mkHsLamPV :: SrcSpan -> (EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLetPV :: SrcSpan -> LHsToken "let" GhcPs -> HsLocalBinds GhcPs -> LHsToken "in" GhcPs -> LocatedA (HsExpr GhcPs) -> PV (LocatedA (HsExpr GhcPs)) #

superInfixOp :: (DisambInfixOp (InfixOp (HsExpr GhcPs)) => PV (LocatedA (HsExpr GhcPs))) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsOpAppPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> LocatedN (InfixOp (HsExpr GhcPs)) -> LocatedA (HsExpr GhcPs) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsCasePV :: SrcSpan -> LHsExpr GhcPs -> LocatedL [LMatch GhcPs (LocatedA (HsExpr GhcPs))] -> EpAnnHsCase -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLamCasePV :: SrcSpan -> LamCaseVariant -> LocatedL [LMatch GhcPs (LocatedA (HsExpr GhcPs))] -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

superFunArg :: (DisambECP (FunArg (HsExpr GhcPs)) => PV (LocatedA (HsExpr GhcPs))) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsAppPV :: SrcSpanAnnA -> LocatedA (HsExpr GhcPs) -> LocatedA (FunArg (HsExpr GhcPs)) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsAppTypePV :: SrcSpanAnnA -> LocatedA (HsExpr GhcPs) -> LHsToken "@" GhcPs -> LHsType GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

mkHsIfPV :: SrcSpan -> LHsExpr GhcPs -> Bool -> LocatedA (HsExpr GhcPs) -> Bool -> LocatedA (HsExpr GhcPs) -> AnnsIf -> PV (LocatedA (HsExpr GhcPs)) #

mkHsDoPV :: SrcSpan -> Maybe ModuleName -> LocatedL [LStmt GhcPs (LocatedA (HsExpr GhcPs))] -> AnnList -> PV (LocatedA (HsExpr GhcPs)) #

mkHsParPV :: SrcSpan -> LHsToken "(" GhcPs -> LocatedA (HsExpr GhcPs) -> LHsToken ")" GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

mkHsVarPV :: LocatedN RdrName -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLitPV :: Located (HsLit GhcPs) -> PV (Located (HsExpr GhcPs)) #

mkHsOverLitPV :: LocatedAn a (HsOverLit GhcPs) -> PV (LocatedAn a (HsExpr GhcPs)) #

mkHsWildCardPV :: SrcSpan -> PV (Located (HsExpr GhcPs)) #

mkHsTySigPV :: SrcSpanAnnA -> LocatedA (HsExpr GhcPs) -> LHsType GhcPs -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsExplicitListPV :: SrcSpan -> [LocatedA (HsExpr GhcPs)] -> AnnList -> PV (LocatedA (HsExpr GhcPs)) #

mkHsSplicePV :: Located (HsUntypedSplice GhcPs) -> PV (Located (HsExpr GhcPs)) #

mkHsRecordPV :: Bool -> SrcSpan -> SrcSpan -> LocatedA (HsExpr GhcPs) -> ([Fbind (HsExpr GhcPs)], Maybe SrcSpan) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsNegAppPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsSectionR_PV :: SrcSpan -> LocatedA (InfixOp (HsExpr GhcPs)) -> LocatedA (HsExpr GhcPs) -> PV (Located (HsExpr GhcPs)) #

mkHsViewPatPV :: SrcSpan -> LHsExpr GhcPs -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsAsPatPV :: SrcSpan -> LocatedN RdrName -> LHsToken "@" GhcPs -> LocatedA (HsExpr GhcPs) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLazyPatPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsBangPatPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkSumOrTuplePV :: SrcSpanAnnA -> Boxity -> SumOrTuple (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

rejectPragmaPV :: LocatedA (HsExpr GhcPs) -> PV () #

DisambInfixOp (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess Methods mkHsVarOpPV :: LocatedN RdrName -> PV (LocatedN (HsExpr GhcPs)) # mkHsConOpPV :: LocatedN RdrName -> PV (LocatedN (HsExpr GhcPs)) # mkHsInfixHolePV :: SrcSpan -> (EpAnnComments -> EpAnn EpAnnUnboundVar) -> PV (Located (HsExpr GhcPs)) #
ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

ExactPrint (HsExpr GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsExpr GhcPs -> Entry # setAnnotationAnchor :: HsExpr GhcPs -> Anchor -> EpAnnComments -> HsExpr GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsExpr GhcPs -> EP w m (HsExpr GhcPs) #
HasDecls (LocatedA (HsExpr GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (HsExpr GhcPs)) #
HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] #

replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) #

HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) #
ExactPrint (GRHS GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) #

type Body (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsExpr GhcPs) = HsExpr
type FunArg (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsExpr GhcPs) = HsExpr GhcPs
type InfixOp (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsExpr GhcPs) = HsExpr GhcPs
type Anno (HsExpr (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsExpr (GhcPass p)) = SrcSpanAnnA
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA

data HsMatchContext p #

Haskell Match Context

Context of a pattern match. This is more subtle than it would seem. See Note [FunBind vs PatBind].

Constructors

FunRhs | A pattern matching on an argument of a function binding

Fields

- mc_fun :: LIdP (NoGhcTc p)

  function binder of `f` See Note [mc_fun field of FunRhs] See #20415 for a long discussion about this field and why it uses NoGhcTc.

- mc_fixity :: LexicalFixity

  fixing of `f`

- mc_strictness :: SrcStrictness

  was `f` banged? See Note [FunBind vs PatBind]

LambdaExpr | Patterns of a lambda
CaseAlt | Patterns and guards in a case alternative
LamCaseAlt LamCaseVariant | Patterns and guards in `case` and `cases`
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

Instances details

HiePass p => ToHie (HsMatchContext (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsMatchContext (GhcPass p) -> HieM [HieAST Type]

data HsStmtContext p #

Haskell Statement Context.

Constructors

HsDoStmt HsDoFlavour | Context for HsDo (do-notation and comprehensions)
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
ArrowExpr | do-notation in an arrow-command context

#### Instances

Instances details

HiePass p => ToHie (HsStmtContext (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsStmtContext (GhcPass p) -> HieM [HieAST Type]

data Match p body #

Constructors

Match |

Fields

- m_ext :: XCMatch p body
- m_ctxt :: HsMatchContext p
- m_pats :: [LPat p]
- m_grhss :: GRHSs p body

XMatch !(XXMatch p body) |

#### Instances

Instances details

(HiePass p, Data (body (GhcPass p)), AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
ExactPrint (Match GhcPs (LocatedA body)) => ExactPrint (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (Match GhcPs (LocatedA body))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> EP w m (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) #

HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] #

replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) #

ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsExpr GhcPs))) #

type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA
type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA

data MatchGroup p body #

Constructors

MG |

Fields

- mg_ext :: XMG p body
- mg_alts :: XRec p [LMatch p body]

XMatchGroup !(XXMatchGroup p body) |

#### Instances

Instances details

(HiePass p, AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
ExactPrint (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) #

data StmtLR idL idR body #

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

- (XBindStmt idL idR body)

  Post renaming has optional fail and bind / (>>=) operator. Post typechecking, also has multiplicity of the argument and the result type of the function passed to bind; that is, (P, S) in (>>=) :: Q -> (R % P -> S) -> T See Note [The type of bind in Stmts]

- (LPat idL)
- body

ApplicativeStmt (XApplicativeStmt idL idR body) [(SyntaxExpr idR, ApplicativeArg idL)] (Maybe (SyntaxExpr idR))

`ApplicativeStmt` represents an applicative expression built with `<$>` and `<*>`. It is generated by the renamer, and is desugared into the appropriate applicative expression by the desugarer, but it is intended to be invisible in error messages.

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)

- `AnnKeywordId` : `AnnLet` `AnnOpen` `'{'`,`AnnClose` `'}'`,

ParStmt (XParStmt idL idR body) [ParStmtBlock idL idR] (HsExpr idR) (SyntaxExpr idR) |
TransStmt |

Fields

- trS_ext :: XTransStmt idL idR body
- trS_form :: TransForm
- trS_stmts :: [ExprLStmt idL]
- trS_bndrs :: [(IdP idR, IdP idR)]
- trS_using :: LHsExpr idR
- trS_by :: Maybe (LHsExpr idR)
- trS_ret :: SyntaxExpr idR
- trS_bind :: SyntaxExpr idR
- trS_fmap :: HsExpr idR

RecStmt

- `AnnKeywordId` : `AnnRec`

Fields

- 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) |

#### Instances

Instances details

(ToHie (LocatedA (body (GhcPass p))), AnnoBody p body, HiePass p) => ToHie (RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p)))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p))))) -> HieM [HieAST Type]
ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) #
(ExactPrint (LocatedA (body GhcPs)), Anno (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA, Anno [GenLocated SrcSpanAnnA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))] ~ SrcSpanAnnL, ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))])) => ExactPrint (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Entry #

setAnnotationAnchor :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Anchor -> EpAnnComments -> StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> EP w m (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) #

type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) = SrcSpanAnnA

# HsSyn / GHC.Hs

data Fixity #

#### Instances

Instances details

Data Fixity |

Instance details

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 |
Instance details Defined in GHC.Types.Fixity Methods put_ :: BinHandle -> Fixity -> IO () # put :: BinHandle -> Fixity -> IO (Bin Fixity) # get :: BinHandle -> IO Fixity #
Outputable Fixity |
Instance details Defined in GHC.Types.Fixity Methods ppr :: Fixity -> SDoc #
Eq Fixity |
Instance details Defined in GHC.Types.Fixity Methods (==) :: Fixity -> Fixity -> Bool # (/=) :: Fixity -> Fixity -> Bool #

data NewOrData #

When we only care whether a data-type declaration is `data` or `newtype`, but not what constructors it has

Constructors

NewType

    newtype Blah ...

DataType

    data Blah ...

#### Instances

Instances details

Data NewOrData |

Instance details

Defined in Language.Haskell.Syntax.Decls

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NewOrData -> c NewOrData #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NewOrData #

toConstr :: NewOrData -> Constr #

dataTypeOf :: NewOrData -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NewOrData) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NewOrData) #

gmapT :: (forall b. Data b => b -> b) -> NewOrData -> NewOrData #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NewOrData -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NewOrData -> r #

gmapQ :: (forall d. Data d => d -> u) -> NewOrData -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NewOrData -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NewOrData -> m NewOrData #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NewOrData -> m NewOrData #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NewOrData -> m NewOrData #

Eq NewOrData |
Instance details Defined in Language.Haskell.Syntax.Decls Methods (==) :: NewOrData -> NewOrData -> Bool # (/=) :: NewOrData -> NewOrData -> Bool #

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., `Eq`, `Show`, `Functor` when `-XDeriveFunctor` is enabled, etc.)

AnyclassStrategy (XAnyClassStrategy pass)

    -XDeriveAnyClass

NewtypeStrategy (XNewtypeStrategy pass)

    -XGeneralizedNewtypeDeriving

ViaStrategy (XViaStrategy pass)

    -XDerivingVia

#### Instances

Instances details

ToHie (RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn)) -> HieM [HieAST Type]
ExactPrint (DerivStrategy GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DerivStrategy GhcPs -> Entry # setAnnotationAnchor :: DerivStrategy GhcPs -> Anchor -> EpAnnComments -> DerivStrategy GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DerivStrategy GhcPs -> EP w m (DerivStrategy GhcPs) #
type Anno (DerivStrategy (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DerivStrategy (GhcPass p)) = SrcAnn NoEpAnns

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]

- `AnnKeywordId` : `AnnRarrow`, `AnnVbar`

XInjectivityAnn !(XXInjectivityAnn pass) |

#### Instances

Instances details

ExactPrint (InjectivityAnn GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: InjectivityAnn GhcPs -> Entry # setAnnotationAnchor :: InjectivityAnn GhcPs -> Anchor -> EpAnnComments -> InjectivityAnn GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => InjectivityAnn GhcPs -> EP w m (InjectivityAnn GhcPs) #
ToHie (LocatedAn NoEpAnns (InjectivityAnn GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (InjectivityAnn GhcRn) -> HieM [HieAST Type]
type Anno (InjectivityAnn (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (InjectivityAnn (GhcPass p)) = SrcAnn NoEpAnns

data RuleBndr pass #

Rule Binder

Constructors

RuleBndr (XCRuleBndr pass) (LIdP pass) |
RuleBndrSig (XRuleBndrSig pass) (LIdP pass) (HsPatSigType pass) |

XRuleBndr !(XXRuleBndr pass)

- `AnnKeywordId` : `AnnOpen`, `AnnDcolon`,`AnnClose`

#### Instances

Instances details

ToHie (RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn)) -> HieM [HieAST Type]
ExactPrint (RuleBndr GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RuleBndr GhcPs -> Entry # setAnnotationAnchor :: RuleBndr GhcPs -> Anchor -> EpAnnComments -> RuleBndr GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RuleBndr GhcPs -> EP w m (RuleBndr GhcPs) #
type Anno (RuleBndr (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RuleBndr (GhcPass p)) = SrcAnn NoEpAnns

data FunDep pass #

Constructors

FunDep (XCFunDep pass) [LIdP pass] [LIdP pass] |
XFunDep !(XXFunDep pass) |

#### Instances

Instances details

ToHie (LocatedA (FunDep GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FunDep GhcRn) -> HieM [HieAST Type]
ExactPrint (FunDep GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FunDep GhcPs -> Entry # setAnnotationAnchor :: FunDep GhcPs -> Anchor -> EpAnnComments -> FunDep GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FunDep GhcPs -> EP w m (FunDep GhcPs) #
type Anno (FunDep (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (FunDep (GhcPass p)) = SrcSpanAnnA

type BangType pass = HsType pass #

Bang Type

In the parser, strictness and packedness annotations bind more tightly than docstrings. This means that when consuming a `BangType` (and looking for `HsBangTy`) we must be ready to peer behind a potential layer of `HsDocTy`. See #15206 for motivation and `getBangType` for an example.

data Match p body #

Constructors

Match |

Fields

- m_ext :: XCMatch p body
- m_ctxt :: HsMatchContext p
- m_pats :: [LPat p]
- m_grhss :: GRHSs p body

XMatch !(XXMatch p body) |

#### Instances

Instances details

(HiePass p, Data (body (GhcPass p)), AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
ExactPrint (Match GhcPs (LocatedA body)) => ExactPrint (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (Match GhcPs (LocatedA body))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> EP w m (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) #

HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] #

replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) #

ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsExpr GhcPs))) #

type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA
type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA

data AnnKeywordId #

Exact print annotations exist so that tools can perform source to source conversions of Haskell code. They are used to keep track of the various syntactic keywords that are not otherwise captured in the AST.

The wiki page describing this feature is https://gitlab.haskell.org/ghc/ghc/wikis/api-annotations https://gitlab.haskell.org/ghc/ghc/-/wikis/implementing-trees-that-grow/in-tree-api-annotations

Note: in general the names of these are taken from the corresponding token, unless otherwise noted See Note [exact print annotations] above for details of the usage

Constructors

AnnAnyclass |
AnnAs |
AnnBang | `!`
AnnBackquote | '`'
AnnBy |
AnnCase | case or lambda case
AnnCases | lambda cases
AnnClass |
AnnClose | '#)' or '#-}' etc
AnnCloseB | '|)'
AnnCloseBU | '|)', unicode variant
AnnCloseC | '}'
AnnCloseQ | '|]'
AnnCloseQU | '|]', unicode variant
AnnCloseP | ')'
AnnClosePH | '#)'
AnnCloseS | ']'
AnnColon |
AnnComma | as a list separator
AnnCommaTuple | in a RdrName for a tuple
AnnDarrow | '=>'
AnnDarrowU | '=>', unicode variant
AnnData |
AnnDcolon | '::'
AnnDcolonU | '::', unicode variant
AnnDefault |
AnnDeriving |
AnnDo |
AnnDot | `.`
AnnDotdot | '..'
AnnElse |
AnnEqual |
AnnExport |
AnnFamily |
AnnForall |
AnnForallU | Unicode variant
AnnForeign |
AnnFunId | for function name in matches where there are multiple equations for the function.
AnnGroup |
AnnHeader | for CType
AnnHiding |
AnnIf |
AnnImport |
AnnIn |
AnnInfix | 'infix' or 'infixl' or 'infixr'
AnnInstance |
AnnLam |
AnnLarrow | '<-'
AnnLarrowU | '<-', unicode variant
AnnLet |
AnnLollyU | The `⊸` unicode arrow
AnnMdo |
AnnMinus | `-`
AnnModule |
AnnNewtype |
AnnName | where a name loses its location in the AST, this carries it
AnnOf |
AnnOpen | '{-# DEPRECATED' etc. Opening of pragmas where the capitalisation of the string can be changed by the user. The actual text used is stored in a `SourceText` on the relevant pragma item.
AnnOpenB | '(|'
AnnOpenBU | '(|', unicode variant
AnnOpenC | '{'
AnnOpenE | '[e|' or '[e||'
AnnOpenEQ | '[|'
AnnOpenEQU | '[|', unicode variant
AnnOpenP | '('
AnnOpenS | '['
AnnOpenPH | '(#'
AnnDollar | prefix `$` -- TemplateHaskell
AnnDollarDollar | prefix `$$` -- TemplateHaskell
AnnPackageName |
AnnPattern |
AnnPercent | `%` -- for HsExplicitMult
AnnPercentOne | '%1' -- for HsLinearArrow
AnnProc |
AnnQualified |
AnnRarrow | `->`
AnnRarrowU | `->`, unicode variant
AnnRec |
AnnRole |
AnnSafe |
AnnSemi | ';'
AnnSimpleQuote | '''
AnnSignature |
AnnStatic | `static`
AnnStock |
AnnThen |
AnnThTyQuote | double '''
AnnTilde | `~`
AnnType |
AnnUnit | `()` for types
AnnUsing |
AnnVal | e.g. INTEGER
AnnValStr | String value, will need quotes when output
AnnVbar | '|'
AnnVia | `via`
AnnWhere |
Annlarrowtail | `-<`
AnnlarrowtailU | `-<`, unicode variant
Annrarrowtail | `->`
AnnrarrowtailU | `->`, unicode variant
AnnLarrowtail | `-<<`
AnnLarrowtailU | `-<<`, unicode variant
AnnRarrowtail | `>>-`
AnnRarrowtailU | `>>-`, unicode variant

#### Instances

Instances details

Data AnnKeywordId |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnKeywordId -> c AnnKeywordId #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnKeywordId #

toConstr :: AnnKeywordId -> Constr #

dataTypeOf :: AnnKeywordId -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnKeywordId) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnKeywordId) #

gmapT :: (forall b. Data b => b -> b) -> AnnKeywordId -> AnnKeywordId #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnKeywordId -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnKeywordId -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnKeywordId -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnKeywordId -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnKeywordId -> m AnnKeywordId #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnKeywordId -> m AnnKeywordId #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnKeywordId -> m AnnKeywordId #

Show AnnKeywordId |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> AnnKeywordId -> ShowS # show :: AnnKeywordId -> String # showList :: [AnnKeywordId] -> ShowS #
Outputable AnnKeywordId |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: AnnKeywordId -> SDoc #
Eq AnnKeywordId |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: AnnKeywordId -> AnnKeywordId -> Bool # (/=) :: AnnKeywordId -> AnnKeywordId -> Bool #
Ord AnnKeywordId |

Instance details

Defined in GHC.Parser.Annotation

Methods

compare :: AnnKeywordId -> AnnKeywordId -> Ordering #

(<) :: AnnKeywordId -> AnnKeywordId -> Bool #

(<=) :: AnnKeywordId -> AnnKeywordId -> Bool #

(>) :: AnnKeywordId -> AnnKeywordId -> Bool #

(>=) :: AnnKeywordId -> AnnKeywordId -> Bool #

max :: AnnKeywordId -> AnnKeywordId -> AnnKeywordId #

min :: AnnKeywordId -> AnnKeywordId -> AnnKeywordId #

data AnnDecl pass #

Annotation Declaration

Constructors

HsAnnotation (XHsAnnotation pass) (AnnProvenance pass) (XRec pass (HsExpr pass))

- `AnnKeywordId` : `AnnOpen`, `AnnType` `AnnModule` `AnnClose`

XAnnDecl !(XXAnnDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (AnnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (AnnDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (AnnDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: AnnDecl GhcPs -> Entry # setAnnotationAnchor :: AnnDecl GhcPs -> Anchor -> EpAnnComments -> AnnDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => AnnDecl GhcPs -> EP w m (AnnDecl GhcPs) #
type Anno (AnnDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (AnnDecl (GhcPass p)) = SrcSpanAnnA

data IE pass #

Imported or exported entity.

Constructors

IEVar (XIEVar pass) (LIEWrappedName pass) | Imported or Exported Variable
IEThingAbs (XIEThingAbs pass) (LIEWrappedName pass) | Imported or exported Thing with Absent list The thing is a Class/Type (can't tell) - `AnnKeywordId`s : `AnnPattern`, `AnnType`,`AnnVal`

IEThingAll (XIEThingAll pass) (LIEWrappedName pass)

Imported or exported Thing with All imported or exported

The thing is a ClassType and the All refers to methodsconstructors

- `AnnKeywordId`s : `AnnOpen`, `AnnDotdot`,`AnnClose`, `AnnType`

IEThingWith (XIEThingWith pass) (LIEWrappedName pass) IEWildcard [LIEWrappedName pass] | Imported or exported Thing With given imported or exported The thing is a Class/Type and the imported or exported things are its children. - `AnnKeywordId`s : `AnnOpen`, `AnnClose`, `AnnComma`, `AnnType`

IEModuleContents (XIEModuleContents pass) (XRec pass ModuleName)

Imported or exported module contents

(Export Only)

- `AnnKeywordId`s : `AnnModule`

IEGroup (XIEGroup pass) Int (LHsDoc pass) | Doc section heading
IEDoc (XIEDoc pass) (LHsDoc pass) | Some documentation
IEDocNamed (XIEDocNamed pass) String | Reference to named doc
XIE !(XXIE pass) |

#### Instances

Instances details

ToHie (IEContext (LocatedA (IE GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IE GhcRn)) -> HieM [HieAST Type]
HasHaddock (LocatedA (IE GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (IE GhcPs) -> HdkA (LocatedA (IE GhcPs))
HasHaddock (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedL [LocatedA (IE GhcPs)] -> HdkA (LocatedL [LocatedA (IE GhcPs)])
ExactPrint (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedL [LocatedA (IE GhcPs)] -> Entry # setAnnotationAnchor :: LocatedL [LocatedA (IE GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (IE GhcPs)] # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (IE GhcPs)] -> EP w m (LocatedL [LocatedA (IE GhcPs)]) #
ExactPrint (IE GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: IE GhcPs -> Entry # setAnnotationAnchor :: IE GhcPs -> Anchor -> EpAnnComments -> IE GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => IE GhcPs -> EP w m (IE GhcPs) #
type Anno (LocatedA (IE (GhcPass p))) |
Instance details Defined in GHC.Hs.ImpExp type Anno (LocatedA (IE (GhcPass p))) = SrcSpanAnnA
type Anno (IE (GhcPass p)) |
Instance details Defined in GHC.Hs.ImpExp type Anno (IE (GhcPass p)) = SrcSpanAnnA
type Anno [LocatedA (IE (GhcPass p))] |
Instance details Defined in GHC.Hs.ImpExp type Anno [LocatedA (IE (GhcPass p))] = SrcSpanAnnL

data HsExpr p #

A Haskell expression.

Constructors

HsVar (XVar p) (LIdP p) | Variable See Note [Located RdrNames]
HsUnboundVar (XUnboundVar p) RdrName | Unbound variable; also used for "holes" (_ or _x). Turned from HsVar to HsUnboundVar by the renamer, when it finds an out-of-scope variable or hole. The (XUnboundVar p) field becomes an HoleExprRef after typechecking; this is where the erroring expression will be written after solving. See Note [Holes] in GHC.Tc.Types.Constraint.
HsRecSel (XRecSel p) (FieldOcc p) | Variable pointing to record selector See Note [Non-overloaded record field selectors] and Note [Record selectors in the AST]
HsOverLabel (XOverLabel p) SourceText FastString | Overloaded label (Note [Overloaded labels] in GHC.OverloadedLabels) Note [Pragma source text] in GHC.Types.SourceText
HsIPVar (XIPVar p) HsIPName | Implicit parameter (not in use after typechecking)
HsOverLit (XOverLitE p) (HsOverLit p) | Overloaded literals
HsLit (XLitE p) (HsLit p) | Simple (non-overloaded) literals

HsLam (XLam p) (MatchGroup p (LHsExpr p))

Lambda abstraction. Currently always a single match

- `AnnKeywordId` : `AnnLam`, `AnnRarrow`,

HsLamCase (XLamCase p) LamCaseVariant (MatchGroup p (LHsExpr p))

Lambda-case

- `AnnKeywordId` : `AnnLam`, `AnnCase`,`AnnOpen`, `AnnClose`
- `AnnKeywordId` : `AnnLam`, `AnnCases`,`AnnOpen`, `AnnClose`

HsApp (XApp p) (LHsExpr p) (LHsExpr p) | Application

HsAppType (XAppTypeE p) (LHsExpr p) !(LHsToken "@" p) (LHsWcType (NoGhcTc p))

Visible type application

Explicit type argument; e.g f @Int x y NB: Has wildcards, but no implicit quantification

- `AnnKeywordId` : `AnnAt`,

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 `negate`

- `AnnKeywordId` : `AnnMinus`

HsPar

- `AnnKeywordId` : `AnnOpen` `'('`, `AnnClose` `')'`

Fields

- (XPar p)
- !(LHsToken "(" p)
- (LHsExpr p)

  Parenthesised expr; see Note [Parens in HsSyn]

- !(LHsToken ")" p)

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

- `AnnKeywordId` : `AnnOpen`, `AnnClose`

ExplicitSum (XExplicitSum p) ConTag SumWidth (LHsExpr p)

Used for unboxed sum types

- `AnnKeywordId` : `AnnOpen` `'(#'`, `AnnVbar`, `AnnClose` `'#)'`,

There will be multiple `AnnVbar`, (1 - alternative) before the expression, (arity - alternative) after it

HsCase (XCase p) (LHsExpr p) (MatchGroup p (LHsExpr p))

- `AnnKeywordId` : `AnnCase`, `AnnOf`,`AnnOpen` `'{'`, `AnnClose` `'}'`

HsIf (XIf p) (LHsExpr p) (LHsExpr p) (LHsExpr p)

- `AnnKeywordId` : `AnnIf`, `AnnSemi`, `AnnThen`,`AnnSemi`, `AnnElse`,

HsMultiIf (XMultiIf p) [LGRHS p (LHsExpr p)]

Multi-way if

- `AnnKeywordId` : `AnnIf` `AnnOpen`,`AnnClose`,

HsLet (XLet p) !(LHsToken "let" p) (HsLocalBinds p) !(LHsToken "in" p) (LHsExpr p)

let(rec)

- `AnnKeywordId` : `AnnLet`, `AnnOpen` `'{'`, `AnnClose` `'}'`,`AnnIn`

HsDo (XDo p) HsDoFlavour (XRec p [ExprLStmt p])

- `AnnKeywordId` : `AnnDo`, `AnnOpen`, `AnnSemi`, `AnnVbar`, `AnnClose`

ExplicitList (XExplicitList p) [LHsExpr p]

Syntactic list: [a,b,c,...]

- `AnnKeywordId` : `AnnOpen` `'['`, `AnnClose` `']'`

RecordCon

Record construction

- `AnnKeywordId` : `AnnOpen` `'{'`, `AnnDotdot`,`AnnClose` `'}'`

Fields

- rcon_ext :: XRecordCon p
- rcon_con :: XRec p (ConLikeP p)
- rcon_flds :: HsRecordBinds p

RecordUpd

Record update

- `AnnKeywordId` : `AnnOpen` `'{'`, `AnnDotdot`,`AnnClose` `'}'` 'GHC.Parser.Annotation.AnnComma, `AnnDot`, `AnnClose` `'}'`

Fields

- rupd_ext :: XRecordUpd p
- rupd_expr :: LHsExpr p
- rupd_flds :: LHsRecUpdFields p

HsGetField

Record field selection e.g `z.x`.

- `AnnKeywordId` : `AnnDot`

Fields

- gf_ext :: XGetField p
- gf_expr :: LHsExpr p
- gf_field :: XRec p (DotFieldOcc p)

HsProjection | Record field selector. e.g. `(.x)` or `(.x.y)` This case only arises when the OverloadedRecordDot langauge extensions is enabled. See Note [Record selectors in the AST].

Fields

- proj_ext :: XProjection p
- proj_flds :: NonEmpty (XRec p (DotFieldOcc p))

ExprWithTySig (XExprWithTySig p) (LHsExpr p) (LHsSigWcType (NoGhcTc p))

Expression with an explicit type signature. `e :: type`

- `AnnKeywordId` : `AnnDcolon`

ArithSeq (XArithSeq p) (Maybe (SyntaxExpr p)) (ArithSeqInfo p)

Arithmetic sequence

- `AnnKeywordId` : `AnnOpen` `'['`, `AnnComma`,`AnnDotdot`, `AnnClose` `']'`

HsTypedBracket (XTypedBracket p) (LHsExpr p)

- `AnnKeywordId` : `AnnOpen`, `AnnOpenE`,`AnnOpenEQ`, `AnnClose`,`AnnCloseQ`

HsUntypedBracket (XUntypedBracket p) (HsQuote p) |

HsTypedSplice (XTypedSplice p) (LHsExpr p)

- `AnnKeywordId` : `AnnOpen`, `AnnClose`

HsUntypedSplice (XUntypedSplice p) (HsUntypedSplice p) |

HsProc (XProc p) (LPat p) (LHsCmdTop p)

`proc` notation for Arrows

- `AnnKeywordId` : `AnnProc`, `AnnRarrow`

HsStatic (XStatic p) (LHsExpr p)

- `AnnKeywordId` : `AnnStatic`,

HsPragE (XPragE p) (HsPragE p) (LHsExpr p) |
XExpr !(XXExpr p) |

#### Instances

Instances details

HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct `HieAST` nodes which include the type of the expression. It is not yet possible to do this efficiently for all expression forms, so we skip filling in the type for those inputs. See Note [Computing the type of every node in the tree]
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
DisambECP (HsExpr GhcPs) |

Instance details

Defined in GHC.Parser.PostProcess

Associated Types

type Body (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsExpr GhcPs) = HsExpr
type InfixOp (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsExpr GhcPs) = HsExpr GhcPs
type FunArg (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsExpr GhcPs) = HsExpr GhcPs

Methods

ecpFromCmd' :: LHsCmd GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

ecpFromExp' :: LHsExpr GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

mkHsProjUpdatePV :: SrcSpan -> Located [LocatedAn NoEpAnns (DotFieldOcc GhcPs)] -> LocatedA (HsExpr GhcPs) -> Bool -> [AddEpAnn] -> PV (LHsRecProj GhcPs (LocatedA (HsExpr GhcPs))) #

mkHsLamPV :: SrcSpan -> (EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLetPV :: SrcSpan -> LHsToken "let" GhcPs -> HsLocalBinds GhcPs -> LHsToken "in" GhcPs -> LocatedA (HsExpr GhcPs) -> PV (LocatedA (HsExpr GhcPs)) #

superInfixOp :: (DisambInfixOp (InfixOp (HsExpr GhcPs)) => PV (LocatedA (HsExpr GhcPs))) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsOpAppPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> LocatedN (InfixOp (HsExpr GhcPs)) -> LocatedA (HsExpr GhcPs) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsCasePV :: SrcSpan -> LHsExpr GhcPs -> LocatedL [LMatch GhcPs (LocatedA (HsExpr GhcPs))] -> EpAnnHsCase -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLamCasePV :: SrcSpan -> LamCaseVariant -> LocatedL [LMatch GhcPs (LocatedA (HsExpr GhcPs))] -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

superFunArg :: (DisambECP (FunArg (HsExpr GhcPs)) => PV (LocatedA (HsExpr GhcPs))) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsAppPV :: SrcSpanAnnA -> LocatedA (HsExpr GhcPs) -> LocatedA (FunArg (HsExpr GhcPs)) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsAppTypePV :: SrcSpanAnnA -> LocatedA (HsExpr GhcPs) -> LHsToken "@" GhcPs -> LHsType GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

mkHsIfPV :: SrcSpan -> LHsExpr GhcPs -> Bool -> LocatedA (HsExpr GhcPs) -> Bool -> LocatedA (HsExpr GhcPs) -> AnnsIf -> PV (LocatedA (HsExpr GhcPs)) #

mkHsDoPV :: SrcSpan -> Maybe ModuleName -> LocatedL [LStmt GhcPs (LocatedA (HsExpr GhcPs))] -> AnnList -> PV (LocatedA (HsExpr GhcPs)) #

mkHsParPV :: SrcSpan -> LHsToken "(" GhcPs -> LocatedA (HsExpr GhcPs) -> LHsToken ")" GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

mkHsVarPV :: LocatedN RdrName -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLitPV :: Located (HsLit GhcPs) -> PV (Located (HsExpr GhcPs)) #

mkHsOverLitPV :: LocatedAn a (HsOverLit GhcPs) -> PV (LocatedAn a (HsExpr GhcPs)) #

mkHsWildCardPV :: SrcSpan -> PV (Located (HsExpr GhcPs)) #

mkHsTySigPV :: SrcSpanAnnA -> LocatedA (HsExpr GhcPs) -> LHsType GhcPs -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsExplicitListPV :: SrcSpan -> [LocatedA (HsExpr GhcPs)] -> AnnList -> PV (LocatedA (HsExpr GhcPs)) #

mkHsSplicePV :: Located (HsUntypedSplice GhcPs) -> PV (Located (HsExpr GhcPs)) #

mkHsRecordPV :: Bool -> SrcSpan -> SrcSpan -> LocatedA (HsExpr GhcPs) -> ([Fbind (HsExpr GhcPs)], Maybe SrcSpan) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsNegAppPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsSectionR_PV :: SrcSpan -> LocatedA (InfixOp (HsExpr GhcPs)) -> LocatedA (HsExpr GhcPs) -> PV (Located (HsExpr GhcPs)) #

mkHsViewPatPV :: SrcSpan -> LHsExpr GhcPs -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsAsPatPV :: SrcSpan -> LocatedN RdrName -> LHsToken "@" GhcPs -> LocatedA (HsExpr GhcPs) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLazyPatPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsBangPatPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkSumOrTuplePV :: SrcSpanAnnA -> Boxity -> SumOrTuple (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

rejectPragmaPV :: LocatedA (HsExpr GhcPs) -> PV () #

DisambInfixOp (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess Methods mkHsVarOpPV :: LocatedN RdrName -> PV (LocatedN (HsExpr GhcPs)) # mkHsConOpPV :: LocatedN RdrName -> PV (LocatedN (HsExpr GhcPs)) # mkHsInfixHolePV :: SrcSpan -> (EpAnnComments -> EpAnn EpAnnUnboundVar) -> PV (Located (HsExpr GhcPs)) #
ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

ExactPrint (HsExpr GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsExpr GhcPs -> Entry # setAnnotationAnchor :: HsExpr GhcPs -> Anchor -> EpAnnComments -> HsExpr GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsExpr GhcPs -> EP w m (HsExpr GhcPs) #
HasDecls (LocatedA (HsExpr GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (HsExpr GhcPs)) #
HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] #

replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) #

HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) #
ExactPrint (GRHS GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) #

type Body (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsExpr GhcPs) = HsExpr
type FunArg (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsExpr GhcPs) = HsExpr GhcPs
type InfixOp (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsExpr GhcPs) = HsExpr GhcPs
type Anno (HsExpr (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsExpr (GhcPass p)) = SrcSpanAnnA
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA

data NoExtField #

A placeholder type for TTG extension points that are not currently unused to represent any particular value.

This should not be confused with `DataConCantHappen`, which are found in unused extension constructors and therefore should never be inhabited. In contrast, `NoExtField` is used in extension points (e.g., as the field of some constructor), so it must have an inhabitant to construct AST passes that manipulate fields with that extension point as their type.

Constructors

NoExtField |

#### Instances

Instances details

Data NoExtField |

Instance details

Defined in Language.Haskell.Syntax.Extension

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NoExtField -> c NoExtField #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NoExtField #

toConstr :: NoExtField -> Constr #

dataTypeOf :: NoExtField -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NoExtField) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NoExtField) #

gmapT :: (forall b. Data b => b -> b) -> NoExtField -> NoExtField #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NoExtField -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NoExtField -> r #

gmapQ :: (forall d. Data d => d -> u) -> NoExtField -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NoExtField -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NoExtField -> m NoExtField #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NoExtField -> m NoExtField #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NoExtField -> m NoExtField #

Eq NoExtField |
Instance details Defined in Language.Haskell.Syntax.Extension Methods (==) :: NoExtField -> NoExtField -> Bool # (/=) :: NoExtField -> NoExtField -> Bool #
Ord NoExtField |
Instance details 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)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (Located NoExtField) -> HieM [HieAST Type]

data SrcUnpackedness #

Source Unpackedness

What unpackedness the user requested

Constructors

SrcUnpack | {-# UNPACK #-} specified
SrcNoUnpack | {-# NOUNPACK #-} specified
NoSrcUnpack | no unpack pragma

#### Instances

Instances details

Data SrcUnpackedness |

Instance details

Defined in Language.Haskell.Syntax.Basic

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcUnpackedness -> c SrcUnpackedness #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcUnpackedness #

toConstr :: SrcUnpackedness -> Constr #

dataTypeOf :: SrcUnpackedness -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcUnpackedness) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcUnpackedness) #

gmapT :: (forall b. Data b => b -> b) -> SrcUnpackedness -> SrcUnpackedness #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcUnpackedness -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcUnpackedness -> r #

gmapQ :: (forall d. Data d => d -> u) -> SrcUnpackedness -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcUnpackedness -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness #

Eq SrcUnpackedness |
Instance details Defined in Language.Haskell.Syntax.Basic Methods (==) :: SrcUnpackedness -> SrcUnpackedness -> Bool # (/=) :: SrcUnpackedness -> SrcUnpackedness -> Bool #

data SrcStrictness #

Source Strictness

What strictness annotation the user wrote

Constructors

SrcLazy | Lazy, ie `~`
SrcStrict | Strict, ie `!`
NoSrcStrict | no strictness annotation

#### Instances

Instances details

Data SrcStrictness |

Instance details

Defined in Language.Haskell.Syntax.Basic

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcStrictness -> c SrcStrictness #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcStrictness #

toConstr :: SrcStrictness -> Constr #

dataTypeOf :: SrcStrictness -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcStrictness) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcStrictness) #

gmapT :: (forall b. Data b => b -> b) -> SrcStrictness -> SrcStrictness #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcStrictness -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcStrictness -> r #

gmapQ :: (forall d. Data d => d -> u) -> SrcStrictness -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcStrictness -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness #

Eq SrcStrictness |
Instance details Defined in Language.Haskell.Syntax.Basic Methods (==) :: SrcStrictness -> SrcStrictness -> Bool # (/=) :: SrcStrictness -> SrcStrictness -> Bool #

type family NoGhcTc p #

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

Instances details

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]
Instance details Defined in GHC.Hs.Extension type NoGhcTc (GhcPass pass) = GhcPass (NoGhcTcPass pass)

type family XXIEWrappedName p #

#### Instances

Instances details

type XXIEWrappedName (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XXIEWrappedName (GhcPass _1) = DataConCantHappen

type family XIEType p #

#### Instances

Instances details

type XIEType (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEType (GhcPass _1) = EpaLocation

type family XIEPattern p #

#### Instances

Instances details

type XIEPattern (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEPattern (GhcPass _1) = EpaLocation

type family XIEName p #

#### Instances

Instances details

type XIEName (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEName (GhcPass _1) = NoExtField

type family XXIE x #

#### Instances

Instances details

type XXIE (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XXIE (GhcPass _1) = DataConCantHappen

type family XIEDocNamed x #

#### Instances

Instances details

type XIEDocNamed (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEDocNamed (GhcPass _1) = NoExtField

type family XIEDoc x #

#### Instances

Instances details

type XIEDoc (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEDoc (GhcPass _1) = NoExtField

type family XIEGroup x #

#### Instances

Instances details

type XIEGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEGroup (GhcPass _1) = NoExtField

type family XIEModuleContents x #

#### Instances

Instances details

type XIEModuleContents GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEModuleContents GhcPs = (Maybe (LocatedP (WarningTxt GhcPs)), EpAnn [AddEpAnn])
type XIEModuleContents GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEModuleContents GhcRn = Maybe (LocatedP (WarningTxt GhcRn))
type XIEModuleContents GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEModuleContents GhcTc = NoExtField

type family XIEThingWith x #

#### Instances

Instances details

type XIEThingWith GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEThingWith GhcPs = (Maybe (LocatedP (WarningTxt GhcPs)), EpAnn [AddEpAnn])
type XIEThingWith GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEThingWith GhcRn = (Maybe (LocatedP (WarningTxt GhcRn)), EpAnn [AddEpAnn])
type XIEThingWith GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEThingWith GhcTc = EpAnn [AddEpAnn]

type family XIEThingAll x #

#### Instances

Instances details

type XIEThingAll GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAll GhcPs = (Maybe (LocatedP (WarningTxt GhcPs)), EpAnn [AddEpAnn])
type XIEThingAll GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAll GhcRn = (Maybe (LocatedP (WarningTxt GhcRn)), EpAnn [AddEpAnn])
type XIEThingAll GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAll GhcTc = EpAnn [AddEpAnn]

type family XIEThingAbs x #

#### Instances

Instances details

type XIEThingAbs GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAbs GhcPs = (Maybe (LocatedP (WarningTxt GhcPs)), EpAnn [AddEpAnn])
type XIEThingAbs GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAbs GhcRn = (Maybe (LocatedP (WarningTxt GhcRn)), EpAnn [AddEpAnn])
type XIEThingAbs GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAbs GhcTc = EpAnn [AddEpAnn]

type family XIEVar x #

#### Instances

Instances details

type XIEVar GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEVar GhcPs = Maybe (LocatedP (WarningTxt GhcPs))
type XIEVar GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEVar GhcRn = Maybe (LocatedP (WarningTxt GhcRn))
type XIEVar GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEVar GhcTc = NoExtField

type family ImportDeclPkgQual x #

#### Instances

Instances details

type ImportDeclPkgQual GhcPs |
Instance details Defined in GHC.Hs.ImpExp type ImportDeclPkgQual GhcPs = RawPkgQual
type ImportDeclPkgQual GhcRn |
Instance details Defined in GHC.Hs.ImpExp type ImportDeclPkgQual GhcRn = PkgQual
type ImportDeclPkgQual GhcTc |
Instance details Defined in GHC.Hs.ImpExp type ImportDeclPkgQual GhcTc = PkgQual

type family XXImportDecl x #

#### Instances

Instances details

type XXImportDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XXImportDecl (GhcPass _1) = DataConCantHappen

type family XCImportDecl x #

#### Instances

Instances details

type XCImportDecl GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XCImportDecl GhcPs = XImportDeclPass
type XCImportDecl GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XCImportDecl GhcRn = XImportDeclPass
type XCImportDecl GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XCImportDecl GhcTc = DataConCantHappen

type family XXFieldOcc x #

#### Instances

Instances details

type XXFieldOcc (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXFieldOcc (GhcPass _1) = DataConCantHappen

type family XCFieldOcc x #

#### Instances

Instances details

type XCFieldOcc GhcPs |
Instance details Defined in GHC.Hs.Type type XCFieldOcc GhcPs = NoExtField
type XCFieldOcc GhcRn |
Instance details Defined in GHC.Hs.Type type XCFieldOcc GhcRn = Name
type XCFieldOcc GhcTc |
Instance details Defined in GHC.Hs.Type type XCFieldOcc GhcTc = Id

type family XXConDeclField x #

#### Instances

Instances details

type XXConDeclField (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXConDeclField (GhcPass _1) = DataConCantHappen

type family XConDeclField x #

#### Instances

Instances details

type XConDeclField (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XConDeclField (GhcPass _1) = EpAnn [AddEpAnn]

data ConDeclField pass #

Constructor Declaration Field

Constructors

ConDeclField |

Fields

- cd_fld_ext :: XConDeclField pass
- cd_fld_names :: [LFieldOcc pass]

  See Note [ConDeclField pass]

- cd_fld_type :: LBangType pass
- cd_fld_doc :: Maybe (LHsDoc pass)
  - `AnnKeywordId` : `AnnDcolon`

XConDeclField !(XXConDeclField pass) |

#### Instances

Instances details

ToHie (LocatedA (ConDeclField GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDeclField GhcRn) -> HieM [HieAST Type]
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedL [LocatedA (ConDeclField GhcRn)] -> HieM [HieAST Type]
ExactPrint (LocatedL [LocatedA (ConDeclField GhcPs)]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (ConDeclField GhcPs)] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (ConDeclField GhcPs)] -> EP w m (LocatedL [LocatedA (ConDeclField GhcPs)]) #

ExactPrint (ConDeclField GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ConDeclField GhcPs -> Entry # setAnnotationAnchor :: ConDeclField GhcPs -> Anchor -> EpAnnComments -> ConDeclField GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ConDeclField GhcPs -> EP w m (ConDeclField GhcPs) #
type Anno (ConDeclField (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (ConDeclField (GhcPass p)) = SrcSpanAnnA
type Anno [LocatedA (ConDeclField (GhcPass _1))] |
Instance details Defined in GHC.Hs.Decls type Anno [LocatedA (ConDeclField (GhcPass _1))] = SrcSpanAnnL

type family XXTyVarBndr x #

#### Instances

Instances details

type XXTyVarBndr (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXTyVarBndr (GhcPass _1) = DataConCantHappen

type family XKindedTyVar x #

#### Instances

Instances details

type XKindedTyVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XKindedTyVar (GhcPass _1) = EpAnn [AddEpAnn]

type family XUserTyVar x #

#### Instances

Instances details

type XUserTyVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XUserTyVar (GhcPass _1) = EpAnn [AddEpAnn]

type family XXHsForAllTelescope x #

#### Instances

Instances details

type XXHsForAllTelescope (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXHsForAllTelescope (GhcPass _1) = DataConCantHappen

type family XHsForAllInvis x #

#### Instances

Instances details

type XHsForAllInvis (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XHsForAllInvis (GhcPass _1) = EpAnnForallTy

type family XHsForAllVis x #

#### Instances

Instances details

type XHsForAllVis (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XHsForAllVis (GhcPass _1) = EpAnnForallTy

type family XXTyLit x #

#### Instances

Instances details

type XXTyLit (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXTyLit (GhcPass _1) = DataConCantHappen

type family XCharTy x #

#### Instances

Instances details

type XCharTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XCharTy (GhcPass _1) = SourceText

type family XStrTy x #

#### Instances

Instances details

type XStrTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XStrTy (GhcPass _1) = SourceText

type family XNumTy x #

#### Instances

Instances details

type XNumTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XNumTy (GhcPass _1) = SourceText

type family XXType x #

#### Instances

Instances details

type XXType (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXType (GhcPass _1) = HsCoreTy

type family XWildCardTy x #

#### Instances

Instances details

type XWildCardTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XWildCardTy (GhcPass _1) = NoExtField

type family XTyLit x #

#### Instances

Instances details

type XTyLit (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XTyLit (GhcPass _1) = NoExtField

data HsTyLit pass #

Haskell Type Literal

Constructors

HsNumTy (XNumTy pass) Integer |
HsStrTy (XStrTy pass) FastString |
HsCharTy (XCharTy pass) Char |
XTyLit !(XXTyLit pass) |

type family XExplicitTupleTy x #

#### Instances

Instances details

type XExplicitTupleTy GhcPs |
Instance details Defined in GHC.Hs.Type type XExplicitTupleTy GhcPs = EpAnn [AddEpAnn]
type XExplicitTupleTy GhcRn |
Instance details Defined in GHC.Hs.Type type XExplicitTupleTy GhcRn = NoExtField
type XExplicitTupleTy GhcTc |
Instance details Defined in GHC.Hs.Type type XExplicitTupleTy GhcTc = [Kind]

type family XExplicitListTy x #

#### Instances

Instances details

type XExplicitListTy GhcPs |
Instance details Defined in GHC.Hs.Type type XExplicitListTy GhcPs = EpAnn [AddEpAnn]
type XExplicitListTy GhcRn |
Instance details Defined in GHC.Hs.Type type XExplicitListTy GhcRn = NoExtField
type XExplicitListTy GhcTc |
Instance details Defined in GHC.Hs.Type type XExplicitListTy GhcTc = Kind

type family XRecTy x #

#### Instances

Instances details

type XRecTy GhcPs |
Instance details Defined in GHC.Hs.Type type XRecTy GhcPs = EpAnn AnnList
type XRecTy GhcRn |
Instance details Defined in GHC.Hs.Type type XRecTy GhcRn = NoExtField
type XRecTy GhcTc |
Instance details Defined in GHC.Hs.Type type XRecTy GhcTc = NoExtField

type family XBangTy x #

#### Instances

Instances details

type XBangTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XBangTy (GhcPass _1) = EpAnn [AddEpAnn]

type family XDocTy x #

#### Instances

Instances details

type XDocTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XDocTy (GhcPass _1) = EpAnn [AddEpAnn]

type family XSpliceTy x #

#### Instances

Instances details

type XSpliceTy GhcPs |
Instance details Defined in GHC.Hs.Type type XSpliceTy GhcPs = NoExtField
type XSpliceTy GhcRn |
Instance details Defined in GHC.Hs.Type type XSpliceTy GhcRn = HsUntypedSpliceResult (LHsType GhcRn)
type XSpliceTy GhcTc |
Instance details Defined in GHC.Hs.Type type XSpliceTy GhcTc = Kind

type family XKindSig x #

#### Instances

Instances details

type XKindSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XKindSig (GhcPass _1) = EpAnn [AddEpAnn]

type family XStarTy x #

#### Instances

Instances details

type XStarTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XStarTy (GhcPass _1) = NoExtField

type family XIParamTy x #

#### Instances

Instances details

type XIParamTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XIParamTy (GhcPass _1) = EpAnn [AddEpAnn]

type family XParTy x #

#### Instances

Instances details

type XParTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XParTy (GhcPass _1) = EpAnn AnnParen

type family XOpTy x #

#### Instances

Instances details

type XOpTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XOpTy (GhcPass _1) = EpAnn [AddEpAnn]

type family XSumTy x #

#### Instances

Instances details

type XSumTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XSumTy (GhcPass _1) = EpAnn AnnParen

type family XTupleTy x #

#### Instances

Instances details

type XTupleTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XTupleTy (GhcPass _1) = EpAnn AnnParen

type family XListTy x #

#### Instances

Instances details

type XListTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XListTy (GhcPass _1) = EpAnn AnnParen

type family XFunTy x #

#### Instances

Instances details

type XFunTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XFunTy (GhcPass _1) = EpAnnCO

type family XAppKindTy x #

#### Instances

Instances details

type XAppKindTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XAppKindTy (GhcPass _1) = NoExtField

type family XAppTy x #

#### Instances

Instances details

type XAppTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XAppTy (GhcPass _1) = NoExtField

type family XTyVar x #

#### Instances

Instances details

type XTyVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XTyVar (GhcPass _1) = EpAnn [AddEpAnn]

type family XQualTy x #

#### Instances

Instances details

type XQualTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XQualTy (GhcPass _1) = NoExtField

type family XForAllTy x #

#### Instances

Instances details

type XForAllTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XForAllTy (GhcPass _1) = NoExtField

type family XXHsPatSigType x #

#### Instances

Instances details

type XXHsPatSigType (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXHsPatSigType (GhcPass _1) = DataConCantHappen

type family XHsPS x #

#### Instances

Instances details

type XHsPS GhcPs |
Instance details Defined in GHC.Hs.Type type XHsPS GhcPs = EpAnnCO
type XHsPS GhcRn |
Instance details Defined in GHC.Hs.Type type XHsPS GhcRn = HsPSRn
type XHsPS GhcTc |
Instance details Defined in GHC.Hs.Type type XHsPS GhcTc = HsPSRn

type family XXHsWildCardBndrs x b #

#### Instances

Instances details

type XXHsWildCardBndrs (GhcPass _1) _2 |
Instance details Defined in GHC.Hs.Type type XXHsWildCardBndrs (GhcPass _1) _2 = DataConCantHappen

type family XHsWC x b #

#### Instances

Instances details

type XHsWC GhcPs b |
Instance details Defined in GHC.Hs.Type type XHsWC GhcPs b = NoExtField
type XHsWC GhcRn b |
Instance details Defined in GHC.Hs.Type type XHsWC GhcRn b = [Name]
type XHsWC GhcTc b |
Instance details Defined in GHC.Hs.Type type XHsWC GhcTc b = [Name]

type family XXHsSigType x #

#### Instances

Instances details

type XXHsSigType (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXHsSigType (GhcPass _1) = DataConCantHappen

type family XHsSig x #

#### Instances

Instances details

type XHsSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XHsSig (GhcPass _1) = NoExtField

type family XXHsOuterTyVarBndrs x #

#### Instances

Instances details

type XXHsOuterTyVarBndrs (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXHsOuterTyVarBndrs (GhcPass _1) = DataConCantHappen

type family XHsOuterExplicit x flag #

#### Instances

Instances details

type XHsOuterExplicit GhcPs _1 |
Instance details Defined in GHC.Hs.Type type XHsOuterExplicit GhcPs _1 = EpAnnForallTy
type XHsOuterExplicit GhcRn _1 |
Instance details Defined in GHC.Hs.Type type XHsOuterExplicit GhcRn _1 = NoExtField
type XHsOuterExplicit GhcTc flag |
Instance details Defined in GHC.Hs.Type type XHsOuterExplicit GhcTc flag = [VarBndr TyVar flag]

type family XHsOuterImplicit x #

#### Instances

Instances details

type XHsOuterImplicit GhcPs |
Instance details Defined in GHC.Hs.Type type XHsOuterImplicit GhcPs = NoExtField
type XHsOuterImplicit GhcRn |
Instance details Defined in GHC.Hs.Type type XHsOuterImplicit GhcRn = [Name]
type XHsOuterImplicit GhcTc |
Instance details Defined in GHC.Hs.Type type XHsOuterImplicit GhcTc = [TyVar]

type family XXLHsQTyVars x #

#### Instances

Instances details

type XXLHsQTyVars (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXLHsQTyVars (GhcPass _1) = DataConCantHappen

type family XHsQTvs x #

#### Instances

Instances details

type XHsQTvs GhcPs |
Instance details Defined in GHC.Hs.Type type XHsQTvs GhcPs = NoExtField
type XHsQTvs GhcRn |
Instance details Defined in GHC.Hs.Type type XHsQTvs GhcRn = HsQTvsRn
type XHsQTvs GhcTc |
Instance details Defined in GHC.Hs.Type type XHsQTvs GhcTc = HsQTvsRn

type family XHsFieldBind x #

#### Instances

Instances details

type XHsFieldBind _1 |
Instance details Defined in GHC.Hs.Pat type XHsFieldBind _1 = EpAnn [AddEpAnn]

type family XXPat x #

#### Instances

Instances details

type XXPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XXPat GhcPs = DataConCantHappen
type XXPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XXPat GhcRn = HsPatExpansion (Pat GhcRn) (Pat GhcRn)
type XXPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XXPat GhcTc = XXPatGhcTc

type family XCoPat x #

type family XSigPat x #

#### Instances

Instances details

type XSigPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XSigPat GhcPs = EpAnn [AddEpAnn]
type XSigPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XSigPat GhcRn = NoExtField
type XSigPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XSigPat GhcTc = Type

type family XNPlusKPat x #

#### Instances

Instances details

type XNPlusKPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XNPlusKPat GhcPs = EpAnn EpaLocation
type XNPlusKPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XNPlusKPat GhcRn = NoExtField
type XNPlusKPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XNPlusKPat GhcTc = Type

type family XNPat x #

#### Instances

Instances details

type XNPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XNPat GhcPs = EpAnn [AddEpAnn]
type XNPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XNPat GhcRn = EpAnn [AddEpAnn]
type XNPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XNPat GhcTc = Type

type family XLitPat x #

#### Instances

Instances details

type XLitPat (GhcPass _1) |
Instance details Defined in GHC.Hs.Pat type XLitPat (GhcPass _1) = NoExtField

type family XSplicePat x #

#### Instances

Instances details

type XSplicePat GhcPs |
Instance details Defined in GHC.Hs.Pat type XSplicePat GhcPs = NoExtField
type XSplicePat GhcRn |
Instance details Defined in GHC.Hs.Pat type XSplicePat GhcRn = HsUntypedSpliceResult (Pat GhcRn)
type XSplicePat GhcTc |
Instance details Defined in GHC.Hs.Pat type XSplicePat GhcTc = DataConCantHappen

type family XViewPat x #

#### Instances

Instances details

type XViewPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XViewPat GhcPs = EpAnn [AddEpAnn]
type XViewPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XViewPat GhcRn = Maybe (HsExpr GhcRn)
type XViewPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XViewPat GhcTc = Type

type family XConPat x #

#### Instances

Instances details

type XConPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XConPat GhcPs = EpAnn [AddEpAnn]
type XConPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XConPat GhcRn = NoExtField
type XConPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XConPat GhcTc = ConPatTc

type family XSumPat x #

#### Instances

Instances details

type XSumPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XSumPat GhcPs = EpAnn EpAnnSumPat
type XSumPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XSumPat GhcRn = NoExtField
type XSumPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XSumPat GhcTc = [Type]

type family XTuplePat x #

#### Instances

Instances details

type XTuplePat GhcPs |
Instance details Defined in GHC.Hs.Pat type XTuplePat GhcPs = EpAnn [AddEpAnn]
type XTuplePat GhcRn |
Instance details Defined in GHC.Hs.Pat type XTuplePat GhcRn = NoExtField
type XTuplePat GhcTc |
Instance details Defined in GHC.Hs.Pat type XTuplePat GhcTc = [Type]

type family XListPat x #

#### Instances

Instances details

type XListPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XListPat GhcPs = EpAnn AnnList
type XListPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XListPat GhcRn = NoExtField
type XListPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XListPat GhcTc = Type

type family XBangPat x #

#### Instances

Instances details

type XBangPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XBangPat GhcPs = EpAnn [AddEpAnn]
type XBangPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XBangPat GhcRn = NoExtField
type XBangPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XBangPat GhcTc = NoExtField

type family XParPat x #

#### Instances

Instances details

type XParPat (GhcPass _1) |
Instance details Defined in GHC.Hs.Pat type XParPat (GhcPass _1) = EpAnnCO

type family XAsPat x #

#### Instances

Instances details

type XAsPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XAsPat GhcPs = EpAnnCO
type XAsPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XAsPat GhcRn = NoExtField
type XAsPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XAsPat GhcTc = NoExtField

type family XLazyPat x #

#### Instances

Instances details

type XLazyPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XLazyPat GhcPs = EpAnn [AddEpAnn]
type XLazyPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XLazyPat GhcRn = NoExtField
type XLazyPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XLazyPat GhcTc = NoExtField

type family XVarPat x #

#### Instances

Instances details

type XVarPat (GhcPass _1) |
Instance details Defined in GHC.Hs.Pat type XVarPat (GhcPass _1) = NoExtField

type family XWildPat x #

#### Instances

Instances details

type XWildPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XWildPat GhcPs = NoExtField
type XWildPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XWildPat GhcRn = NoExtField
type XWildPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XWildPat GhcTc = Type

type family XXOverLit x #

#### Instances

Instances details

type XXOverLit (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XXOverLit (GhcPass _1) = DataConCantHappen

type family XOverLit x #

#### Instances

Instances details

type XOverLit GhcPs |
Instance details Defined in GHC.Hs.Lit type XOverLit GhcPs = NoExtField
type XOverLit GhcRn |
Instance details Defined in GHC.Hs.Lit type XOverLit GhcRn = OverLitRn
type XOverLit GhcTc |
Instance details Defined in GHC.Hs.Lit type XOverLit GhcTc = OverLitTc

data HsOverLit p #

Haskell Overloaded Literal

Constructors

OverLit |

Fields

- ol_ext :: XOverLit p
- ol_val :: OverLitVal

XOverLit !(XXOverLit p) |

#### Instances

Instances details

ExactPrint (HsOverLit GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsOverLit GhcPs -> Entry # setAnnotationAnchor :: HsOverLit GhcPs -> Anchor -> EpAnnComments -> HsOverLit GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsOverLit GhcPs -> EP w m (HsOverLit GhcPs) #
Eq (XXOverLit p) => Eq (HsOverLit p) |
Instance details Defined in Language.Haskell.Syntax.Lit Methods (==) :: HsOverLit p -> HsOverLit p -> Bool # (/=) :: HsOverLit p -> HsOverLit p -> Bool #
Ord (XXOverLit p) => Ord (HsOverLit p) |
Instance details Defined in Language.Haskell.Syntax.Lit Methods compare :: HsOverLit p -> HsOverLit p -> Ordering # (<) :: HsOverLit p -> HsOverLit p -> Bool # (<=) :: HsOverLit p -> HsOverLit p -> Bool # (>) :: HsOverLit p -> HsOverLit p -> Bool # (>=) :: HsOverLit p -> HsOverLit p -> Bool # max :: HsOverLit p -> HsOverLit p -> HsOverLit p # min :: HsOverLit p -> HsOverLit p -> HsOverLit p #
type Anno (HsOverLit (GhcPass p)) |
Instance details Defined in GHC.Hs.Pat type Anno (HsOverLit (GhcPass p)) = SrcAnn NoEpAnns

type family XXLit x #

#### Instances

Instances details

type XXLit (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XXLit (GhcPass _1) = DataConCantHappen

type family XHsDoublePrim x #

#### Instances

Instances details

type XHsDoublePrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsDoublePrim (GhcPass _1) = NoExtField

type family XHsFloatPrim x #

#### Instances

Instances details

type XHsFloatPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsFloatPrim (GhcPass _1) = NoExtField

type family XHsRat x #

#### Instances

Instances details

type XHsRat (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsRat (GhcPass _1) = NoExtField

type family XHsInteger x #

#### Instances

Instances details

type XHsInteger (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInteger (GhcPass _1) = SourceText

type family XHsWord64Prim x #

#### Instances

Instances details

type XHsWord64Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWord64Prim (GhcPass _1) = SourceText

type family XHsWord32Prim x #

#### Instances

Instances details

type XHsWord32Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWord32Prim (GhcPass _1) = SourceText

type family XHsWord16Prim x #

#### Instances

Instances details

type XHsWord16Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWord16Prim (GhcPass _1) = SourceText

type family XHsWord8Prim x #

#### Instances

Instances details

type XHsWord8Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWord8Prim (GhcPass _1) = SourceText

type family XHsInt64Prim x #

#### Instances

Instances details

type XHsInt64Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt64Prim (GhcPass _1) = SourceText

type family XHsInt32Prim x #

#### Instances

Instances details

type XHsInt32Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt32Prim (GhcPass _1) = SourceText

type family XHsInt16Prim x #

#### Instances

Instances details

type XHsInt16Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt16Prim (GhcPass _1) = SourceText

type family XHsInt8Prim x #

#### Instances

Instances details

type XHsInt8Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt8Prim (GhcPass _1) = SourceText

type family XHsWordPrim x #

#### Instances

Instances details

type XHsWordPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWordPrim (GhcPass _1) = SourceText

type family XHsIntPrim x #

#### Instances

Instances details

type XHsIntPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsIntPrim (GhcPass _1) = SourceText

type family XHsInt x #

#### Instances

Instances details

type XHsInt (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt (GhcPass _1) = NoExtField

type family XHsStringPrim x #

#### Instances

Instances details

type XHsStringPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsStringPrim (GhcPass _1) = SourceText

type family XHsString x #

#### Instances

Instances details

type XHsString (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsString (GhcPass _1) = SourceText

type family XHsCharPrim x #

#### Instances

Instances details

type XHsCharPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsCharPrim (GhcPass _1) = SourceText

type family XHsChar x #

#### Instances

Instances details

type XHsChar (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsChar (GhcPass _1) = SourceText

type family XXApplicativeArg x #

#### Instances

Instances details

type XXApplicativeArg (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXApplicativeArg (GhcPass _1) = DataConCantHappen

type family XApplicativeArgMany x #

#### Instances

Instances details

type XApplicativeArgMany (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XApplicativeArgMany (GhcPass _1) = NoExtField

type family XApplicativeArgOne x #

#### Instances

Instances details

type XApplicativeArgOne GhcPs |
Instance details Defined in GHC.Hs.Expr type XApplicativeArgOne GhcPs = NoExtField
type XApplicativeArgOne GhcRn |
Instance details Defined in GHC.Hs.Expr type XApplicativeArgOne GhcRn = FailOperator GhcRn
type XApplicativeArgOne GhcTc |
Instance details Defined in GHC.Hs.Expr type XApplicativeArgOne GhcTc = FailOperator GhcTc

type family XXParStmtBlock x x' #

#### Instances

Instances details

type XXParStmtBlock (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Expr type XXParStmtBlock (GhcPass pL) (GhcPass pR) = DataConCantHappen

type family XParStmtBlock x x' #

#### Instances

Instances details

type XParStmtBlock (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Expr type XParStmtBlock (GhcPass pL) (GhcPass pR) = NoExtField

data ParStmtBlock idL idR #

Parenthesised Statement Block

Constructors

ParStmtBlock (XParStmtBlock idL idR) [ExprLStmt idL] [IdP idR] (SyntaxExpr idR) |
XParStmtBlock !(XXParStmtBlock idL idR) |

#### Instances

Instances details

ExactPrint (ParStmtBlock GhcPs GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ParStmtBlock GhcPs GhcPs -> Entry # setAnnotationAnchor :: ParStmtBlock GhcPs GhcPs -> Anchor -> EpAnnComments -> ParStmtBlock GhcPs GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ParStmtBlock GhcPs GhcPs -> EP w m (ParStmtBlock GhcPs GhcPs) #

type family XXCmd x #

#### Instances

Instances details

type XXCmd GhcPs |
Instance details Defined in GHC.Hs.Expr type XXCmd GhcPs = DataConCantHappen
type XXCmd GhcRn |
Instance details Defined in GHC.Hs.Expr type XXCmd GhcRn = DataConCantHappen
type XXCmd GhcTc |
Instance details Defined in GHC.Hs.Expr type XXCmd GhcTc = HsWrap HsCmd

type family XCmdWrap x #

#### Instances

Instances details

type XCmdWrap (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdWrap (GhcPass _1) = NoExtField

type family XCmdDo x #

#### Instances

Instances details

type XCmdDo GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdDo GhcPs = EpAnn AnnList
type XCmdDo GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdDo GhcRn = NoExtField
type XCmdDo GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdDo GhcTc = Type

type family XCmdLet x #

#### Instances

Instances details

type XCmdLet GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdLet GhcPs = EpAnnCO
type XCmdLet GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdLet GhcRn = NoExtField
type XCmdLet GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdLet GhcTc = NoExtField

type family XCmdIf x #

#### Instances

Instances details

type XCmdIf GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdIf GhcPs = EpAnn AnnsIf
type XCmdIf GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdIf GhcRn = NoExtField
type XCmdIf GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdIf GhcTc = NoExtField

type family XCmdLamCase x #

#### Instances

Instances details

type XCmdLamCase (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdLamCase (GhcPass _1) = EpAnn [AddEpAnn]

type family XCmdCase x #

#### Instances

Instances details

type XCmdCase GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdCase GhcPs = EpAnn EpAnnHsCase
type XCmdCase GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdCase GhcRn = NoExtField
type XCmdCase GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdCase GhcTc = NoExtField

type family XCmdPar x #

#### Instances

Instances details

type XCmdPar (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdPar (GhcPass _1) = EpAnnCO

type family XCmdLam x #

#### Instances

Instances details

type XCmdLam (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdLam (GhcPass _1) = NoExtField

type family XCmdApp x #

#### Instances

Instances details

type XCmdApp (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdApp (GhcPass _1) = EpAnnCO

type family XCmdArrForm x #

#### Instances

Instances details

type XCmdArrForm GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdArrForm GhcPs = EpAnn AnnList
type XCmdArrForm GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdArrForm GhcRn = NoExtField
type XCmdArrForm GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdArrForm GhcTc = NoExtField

type family XCmdArrApp x #

#### Instances

Instances details

type XCmdArrApp GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdArrApp GhcPs = EpAnn AddEpAnn
type XCmdArrApp GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdArrApp GhcRn = NoExtField
type XCmdArrApp GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdArrApp GhcTc = Type

type family XXStmtLR x x' b #

#### Instances

Instances details

type XXStmtLR (GhcPass _1) (GhcPass _2) b |
Instance details Defined in GHC.Hs.Expr type XXStmtLR (GhcPass _1) (GhcPass _2) b = DataConCantHappen

type family XRecStmt x x' b #

#### Instances

Instances details

type XRecStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XRecStmt (GhcPass _1) GhcPs b = EpAnn AnnList
type XRecStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XRecStmt (GhcPass _1) GhcRn b = NoExtField
type XRecStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XRecStmt (GhcPass _1) GhcTc b = RecStmtTc

type family XTransStmt x x' b #

#### Instances

Instances details

type XTransStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XTransStmt (GhcPass _1) GhcPs b = EpAnn [AddEpAnn]
type XTransStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XTransStmt (GhcPass _1) GhcRn b = NoExtField
type XTransStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XTransStmt (GhcPass _1) GhcTc b = Type

type family XParStmt x x' b #

#### Instances

Instances details

type XParStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XParStmt (GhcPass _1) GhcPs b = NoExtField
type XParStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XParStmt (GhcPass _1) GhcRn b = NoExtField
type XParStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XParStmt (GhcPass _1) GhcTc b = Type

type family XLetStmt x x' b #

#### Instances

Instances details

type XLetStmt (GhcPass _1) (GhcPass _2) b |
Instance details Defined in GHC.Hs.Expr type XLetStmt (GhcPass _1) (GhcPass _2) b = EpAnn [AddEpAnn]

type family XBodyStmt x x' b #

#### Instances

Instances details

type XBodyStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XBodyStmt (GhcPass _1) GhcPs b = NoExtField
type XBodyStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XBodyStmt (GhcPass _1) GhcRn b = NoExtField
type XBodyStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XBodyStmt (GhcPass _1) GhcTc b = Type

type family XApplicativeStmt x x' b #

#### Instances

Instances details

type XApplicativeStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XApplicativeStmt (GhcPass _1) GhcPs b = NoExtField
type XApplicativeStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XApplicativeStmt (GhcPass _1) GhcRn b = NoExtField
type XApplicativeStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XApplicativeStmt (GhcPass _1) GhcTc b = Type

type family XBindStmt x x' b #

#### Instances

Instances details

type XBindStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XBindStmt (GhcPass _1) GhcPs b = EpAnn [AddEpAnn]
type XBindStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XBindStmt (GhcPass _1) GhcRn b = XBindStmtRn
type XBindStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XBindStmt (GhcPass _1) GhcTc b = XBindStmtTc

type family XLastStmt x x' b #

#### Instances

Instances details

type XLastStmt (GhcPass _1) (GhcPass _2) b |
Instance details Defined in GHC.Hs.Expr type XLastStmt (GhcPass _1) (GhcPass _2) b = NoExtField

type family XXGRHS x b #

#### Instances

Instances details

type XXGRHS (GhcPass _1) b |
Instance details Defined in GHC.Hs.Expr type XXGRHS (GhcPass _1) b = DataConCantHappen

type family XCGRHS x b #

#### Instances

Instances details

type XCGRHS (GhcPass _1) _2 |
Instance details Defined in GHC.Hs.Expr type XCGRHS (GhcPass _1) _2 = EpAnn GrhsAnn

type family XXGRHSs x b #

#### Instances

Instances details

type XXGRHSs (GhcPass _1) _2 |
Instance details Defined in GHC.Hs.Expr type XXGRHSs (GhcPass _1) _2 = DataConCantHappen

type family XCGRHSs x b #

#### Instances

Instances details

type XCGRHSs (GhcPass _1) _2 |
Instance details Defined in GHC.Hs.Expr type XCGRHSs (GhcPass _1) _2 = EpAnnComments

type family XXMatch x b #

#### Instances

Instances details

type XXMatch (GhcPass _1) b |
Instance details Defined in GHC.Hs.Expr type XXMatch (GhcPass _1) b = DataConCantHappen

type family XCMatch x b #

#### Instances

Instances details

type XCMatch (GhcPass _1) b |
Instance details Defined in GHC.Hs.Expr type XCMatch (GhcPass _1) b = EpAnn [AddEpAnn]

type family XXMatchGroup x b #

#### Instances

Instances details

type XXMatchGroup (GhcPass _1) b |
Instance details Defined in GHC.Hs.Expr type XXMatchGroup (GhcPass _1) b = DataConCantHappen

type family XMG x b #

#### Instances

Instances details

type XMG GhcPs b |
Instance details Defined in GHC.Hs.Expr type XMG GhcPs b = Origin
type XMG GhcRn b |
Instance details Defined in GHC.Hs.Expr type XMG GhcRn b = Origin
type XMG GhcTc b |
Instance details Defined in GHC.Hs.Expr type XMG GhcTc b = MatchGroupTc

type family XXCmdTop x #

#### Instances

Instances details

type XXCmdTop (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXCmdTop (GhcPass _1) = DataConCantHappen

type family XCmdTop x #

#### Instances

Instances details

type XCmdTop GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdTop GhcPs = NoExtField
type XCmdTop GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdTop GhcRn = CmdSyntaxTable GhcRn
type XCmdTop GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdTop GhcTc = CmdTopTc

data HsCmdTop p #

Haskell Top-level Command

Constructors

HsCmdTop (XCmdTop p) (LHsCmd p) |
XCmdTop !(XXCmdTop p) |

#### Instances

Instances details

ExactPrint (HsCmdTop GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsCmdTop GhcPs -> Entry # setAnnotationAnchor :: HsCmdTop GhcPs -> Anchor -> EpAnnComments -> HsCmdTop GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsCmdTop GhcPs -> EP w m (HsCmdTop GhcPs) #
HiePass p => ToHie (LocatedAn NoEpAnns (HsCmdTop (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsCmdTop (GhcPass p)) -> HieM [HieAST Type]
type Anno (HsCmdTop (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsCmdTop (GhcPass p)) = SrcAnn NoEpAnns

type family XXQuote x #

#### Instances

Instances details

type XXQuote GhcPs |
Instance details Defined in GHC.Hs.Expr type XXQuote GhcPs = DataConCantHappen
type XXQuote GhcRn |
Instance details Defined in GHC.Hs.Expr type XXQuote GhcRn = DataConCantHappen
type XXQuote GhcTc |
Instance details Defined in GHC.Hs.Expr type XXQuote GhcTc = NoExtField

type family XVarBr x #

#### Instances

Instances details

type XVarBr GhcPs |
Instance details Defined in GHC.Hs.Expr type XVarBr GhcPs = NoExtField
type XVarBr GhcRn |
Instance details Defined in GHC.Hs.Expr type XVarBr GhcRn = NoExtField
type XVarBr GhcTc |
Instance details Defined in GHC.Hs.Expr type XVarBr GhcTc = DataConCantHappen

type family XTypBr x #

#### Instances

Instances details

type XTypBr GhcPs |
Instance details Defined in GHC.Hs.Expr type XTypBr GhcPs = NoExtField
type XTypBr GhcRn |
Instance details Defined in GHC.Hs.Expr type XTypBr GhcRn = NoExtField
type XTypBr GhcTc |
Instance details Defined in GHC.Hs.Expr type XTypBr GhcTc = DataConCantHappen

type family XDecBrG x #

#### Instances

Instances details

type XDecBrG GhcPs |
Instance details Defined in GHC.Hs.Expr type XDecBrG GhcPs = NoExtField
type XDecBrG GhcRn |
Instance details Defined in GHC.Hs.Expr type XDecBrG GhcRn = NoExtField
type XDecBrG GhcTc |
Instance details Defined in GHC.Hs.Expr type XDecBrG GhcTc = DataConCantHappen

type family XDecBrL x #

#### Instances

Instances details

type XDecBrL GhcPs |
Instance details Defined in GHC.Hs.Expr type XDecBrL GhcPs = NoExtField
type XDecBrL GhcRn |
Instance details Defined in GHC.Hs.Expr type XDecBrL GhcRn = NoExtField
type XDecBrL GhcTc |
Instance details Defined in GHC.Hs.Expr type XDecBrL GhcTc = DataConCantHappen

type family XPatBr x #

#### Instances

Instances details

type XPatBr GhcPs |
Instance details Defined in GHC.Hs.Expr type XPatBr GhcPs = NoExtField
type XPatBr GhcRn |
Instance details Defined in GHC.Hs.Expr type XPatBr GhcRn = NoExtField
type XPatBr GhcTc |
Instance details Defined in GHC.Hs.Expr type XPatBr GhcTc = DataConCantHappen

type family XExpBr x #

#### Instances

Instances details

type XExpBr GhcPs |
Instance details Defined in GHC.Hs.Expr type XExpBr GhcPs = NoExtField
type XExpBr GhcRn |
Instance details Defined in GHC.Hs.Expr type XExpBr GhcRn = NoExtField
type XExpBr GhcTc |
Instance details Defined in GHC.Hs.Expr type XExpBr GhcTc = DataConCantHappen

type family XXUntypedSplice x #

#### Instances

Instances details

type XXUntypedSplice p |
Instance details Defined in GHC.Hs.Expr type XXUntypedSplice p = DataConCantHappen

type family XQuasiQuote x #

#### Instances

Instances details

type XQuasiQuote p |
Instance details Defined in GHC.Hs.Expr type XQuasiQuote p = NoExtField

type family XUntypedSpliceExpr x #

#### Instances

Instances details

type XUntypedSpliceExpr GhcPs |
Instance details Defined in GHC.Hs.Expr type XUntypedSpliceExpr GhcPs = EpAnn [AddEpAnn]
type XUntypedSpliceExpr GhcRn |
Instance details Defined in GHC.Hs.Expr type XUntypedSpliceExpr GhcRn = EpAnn [AddEpAnn]
type XUntypedSpliceExpr GhcTc |
Instance details Defined in GHC.Hs.Expr type XUntypedSpliceExpr GhcTc = DataConCantHappen

type family XXTupArg x #

#### Instances

Instances details

type XXTupArg (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXTupArg (GhcPass _1) = DataConCantHappen

type family XMissing x #

#### Instances

Instances details

type XMissing GhcPs |
Instance details Defined in GHC.Hs.Expr type XMissing GhcPs = EpAnn EpaLocation
type XMissing GhcRn |
Instance details Defined in GHC.Hs.Expr type XMissing GhcRn = NoExtField
type XMissing GhcTc |
Instance details Defined in GHC.Hs.Expr type XMissing GhcTc = Scaled Type

type family XPresent x #

#### Instances

Instances details

type XPresent (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XPresent (GhcPass _1) = EpAnn [AddEpAnn]

type family XXAmbiguousFieldOcc x #

#### Instances

Instances details

type XXAmbiguousFieldOcc (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXAmbiguousFieldOcc (GhcPass _1) = DataConCantHappen

type family XAmbiguous x #

#### Instances

Instances details

type XAmbiguous GhcPs |
Instance details Defined in GHC.Hs.Type type XAmbiguous GhcPs = NoExtField
type XAmbiguous GhcRn |
Instance details Defined in GHC.Hs.Type type XAmbiguous GhcRn = NoExtField
type XAmbiguous GhcTc |
Instance details Defined in GHC.Hs.Type type XAmbiguous GhcTc = Id

type family XUnambiguous x #

#### Instances

Instances details

type XUnambiguous GhcPs |
Instance details Defined in GHC.Hs.Type type XUnambiguous GhcPs = NoExtField
type XUnambiguous GhcRn |
Instance details Defined in GHC.Hs.Type type XUnambiguous GhcRn = Name
type XUnambiguous GhcTc |
Instance details Defined in GHC.Hs.Type type XUnambiguous GhcTc = Id

type family XXPragE x #

#### Instances

Instances details

type XXPragE (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXPragE (GhcPass _1) = DataConCantHappen

type family XSCC x #

#### Instances

Instances details

type XSCC (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XSCC (GhcPass _1) = (EpAnn AnnPragma, SourceText)

type family XXDotFieldOcc x #

#### Instances

Instances details

type XXDotFieldOcc (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXDotFieldOcc (GhcPass _1) = DataConCantHappen

type family XCDotFieldOcc x #

#### Instances

Instances details

type XCDotFieldOcc (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCDotFieldOcc (GhcPass _1) = EpAnn AnnFieldLabel

type family XXExpr x #

#### Instances

Instances details

type XXExpr GhcPs |
Instance details Defined in GHC.Hs.Expr type XXExpr GhcPs = DataConCantHappen
type XXExpr GhcRn |
Instance details Defined in GHC.Hs.Expr type XXExpr GhcRn = HsExpansion (HsExpr GhcRn) (HsExpr GhcRn)
type XXExpr GhcTc |
Instance details Defined in GHC.Hs.Expr type XXExpr GhcTc = XXExprGhcTc

type family XPragE x #

#### Instances

Instances details

type XPragE (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XPragE (GhcPass _1) = NoExtField

type family XBinTick x #

type family XTick x #

type family XStatic x #

#### Instances

Instances details

type XStatic GhcPs |
Instance details Defined in GHC.Hs.Expr type XStatic GhcPs = EpAnn [AddEpAnn]
type XStatic GhcRn |
Instance details Defined in GHC.Hs.Expr type XStatic GhcRn = NameSet
type XStatic GhcTc |
Instance details Defined in GHC.Hs.Expr type XStatic GhcTc = (NameSet, Type)

type family XProc x #

#### Instances

Instances details

type XProc (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XProc (GhcPass _1) = EpAnn [AddEpAnn]

type family XUntypedSplice x #

#### Instances

Instances details

type XUntypedSplice GhcPs |
Instance details Defined in GHC.Hs.Expr type XUntypedSplice GhcPs = EpAnnCO
type XUntypedSplice GhcRn |
Instance details Defined in GHC.Hs.Expr type XUntypedSplice GhcRn = HsUntypedSpliceResult (HsExpr GhcRn)
type XUntypedSplice GhcTc |
Instance details Defined in GHC.Hs.Expr type XUntypedSplice GhcTc = DataConCantHappen

data HsUntypedSplice id #

Haskell Splice

Constructors

HsUntypedSpliceExpr (XUntypedSpliceExpr id) (LHsExpr id) |
HsQuasiQuote (XQuasiQuote id) (IdP id) (XRec id FastString) |
XUntypedSplice !(XXUntypedSplice id) |

#### Instances

Instances details

HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsUntypedSplice (GhcPass p)) -> HieM [HieAST Type]
ExactPrint (HsUntypedSplice GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsUntypedSplice GhcPs -> Entry # setAnnotationAnchor :: HsUntypedSplice GhcPs -> Anchor -> EpAnnComments -> HsUntypedSplice GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsUntypedSplice GhcPs -> EP w m (HsUntypedSplice GhcPs) #
type Anno (HsUntypedSplice (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsUntypedSplice (GhcPass p)) = SrcSpanAnnA

type family XTypedSplice x #

#### Instances

Instances details

type XTypedSplice GhcPs |
Instance details Defined in GHC.Hs.Expr type XTypedSplice GhcPs = (EpAnnCO, EpAnn [AddEpAnn])
type XTypedSplice GhcRn |
Instance details Defined in GHC.Hs.Expr type XTypedSplice GhcRn = SplicePointName
type XTypedSplice GhcTc |
Instance details Defined in GHC.Hs.Expr type XTypedSplice GhcTc = DelayedSplice

type family XUntypedBracket x #

#### Instances

Instances details

type XUntypedBracket GhcPs |
Instance details Defined in GHC.Hs.Expr type XUntypedBracket GhcPs = EpAnn [AddEpAnn]
type XUntypedBracket GhcRn |
Instance details Defined in GHC.Hs.Expr type XUntypedBracket GhcRn = [PendingRnSplice]
type XUntypedBracket GhcTc |
Instance details Defined in GHC.Hs.Expr type XUntypedBracket GhcTc = HsBracketTc

type family XTypedBracket x #

#### Instances

Instances details

type XTypedBracket GhcPs |
Instance details Defined in GHC.Hs.Expr type XTypedBracket GhcPs = EpAnn [AddEpAnn]
type XTypedBracket GhcRn |
Instance details Defined in GHC.Hs.Expr type XTypedBracket GhcRn = NoExtField
type XTypedBracket GhcTc |
Instance details Defined in GHC.Hs.Expr type XTypedBracket GhcTc = HsBracketTc

type family XArithSeq x #

#### Instances

Instances details

type XArithSeq GhcPs |
Instance details Defined in GHC.Hs.Expr type XArithSeq GhcPs = EpAnn [AddEpAnn]
type XArithSeq GhcRn |
Instance details Defined in GHC.Hs.Expr type XArithSeq GhcRn = NoExtField
type XArithSeq GhcTc |
Instance details Defined in GHC.Hs.Expr type XArithSeq GhcTc = PostTcExpr

type family XExprWithTySig x #

#### Instances

Instances details

type XExprWithTySig GhcPs |
Instance details Defined in GHC.Hs.Expr type XExprWithTySig GhcPs = EpAnn [AddEpAnn]
type XExprWithTySig GhcRn |
Instance details Defined in GHC.Hs.Expr type XExprWithTySig GhcRn = NoExtField
type XExprWithTySig GhcTc |
Instance details Defined in GHC.Hs.Expr type XExprWithTySig GhcTc = NoExtField

type family XProjection x #

#### Instances

Instances details

type XProjection GhcPs |
Instance details Defined in GHC.Hs.Expr type XProjection GhcPs = EpAnn AnnProjection
type XProjection GhcRn |
Instance details Defined in GHC.Hs.Expr type XProjection GhcRn = NoExtField
type XProjection GhcTc |
Instance details Defined in GHC.Hs.Expr type XProjection GhcTc = DataConCantHappen

type family XGetField x #

#### Instances

Instances details

type XGetField GhcPs |
Instance details Defined in GHC.Hs.Expr type XGetField GhcPs = EpAnnCO
type XGetField GhcRn |
Instance details Defined in GHC.Hs.Expr type XGetField GhcRn = NoExtField
type XGetField GhcTc |
Instance details Defined in GHC.Hs.Expr type XGetField GhcTc = DataConCantHappen

type family XLHsOLRecUpdLabels x #

#### Instances

Instances details

type XLHsOLRecUpdLabels p |
Instance details Defined in GHC.Hs.Expr type XLHsOLRecUpdLabels p = NoExtField

type family XLHsRecUpdLabels x #

#### Instances

Instances details

type XLHsRecUpdLabels GhcPs |
Instance details Defined in GHC.Hs.Expr type XLHsRecUpdLabels GhcPs = NoExtField
type XLHsRecUpdLabels GhcRn |
Instance details Defined in GHC.Hs.Expr type XLHsRecUpdLabels GhcRn = NonEmpty (HsRecUpdParent GhcRn)
type XLHsRecUpdLabels GhcTc |
Instance details Defined in GHC.Hs.Expr type XLHsRecUpdLabels GhcTc = DataConCantHappen

type family XRecordUpd x #

#### Instances

Instances details

type XRecordUpd GhcPs |
Instance details Defined in GHC.Hs.Expr type XRecordUpd GhcPs = EpAnn [AddEpAnn]
type XRecordUpd GhcRn |
Instance details Defined in GHC.Hs.Expr type XRecordUpd GhcRn = NoExtField
type XRecordUpd GhcTc |
Instance details Defined in GHC.Hs.Expr type XRecordUpd GhcTc = DataConCantHappen

type family XRecordCon x #

#### Instances

Instances details

type XRecordCon GhcPs |
Instance details Defined in GHC.Hs.Expr type XRecordCon GhcPs = EpAnn [AddEpAnn]
type XRecordCon GhcRn |
Instance details Defined in GHC.Hs.Expr type XRecordCon GhcRn = NoExtField
type XRecordCon GhcTc |
Instance details Defined in GHC.Hs.Expr type XRecordCon GhcTc = PostTcExpr

type family XExplicitList x #

#### Instances

Instances details

type XExplicitList GhcPs |
Instance details Defined in GHC.Hs.Expr type XExplicitList GhcPs = EpAnn AnnList
type XExplicitList GhcRn |
Instance details Defined in GHC.Hs.Expr type XExplicitList GhcRn = NoExtField
type XExplicitList GhcTc |
Instance details Defined in GHC.Hs.Expr type XExplicitList GhcTc = Type

type family XDo x #

#### Instances

Instances details

type XDo GhcPs |
Instance details Defined in GHC.Hs.Expr type XDo GhcPs = EpAnn AnnList
type XDo GhcRn |
Instance details Defined in GHC.Hs.Expr type XDo GhcRn = NoExtField
type XDo GhcTc |
Instance details Defined in GHC.Hs.Expr type XDo GhcTc = Type

type family XLet x #

#### Instances

Instances details

type XLet GhcPs |
Instance details Defined in GHC.Hs.Expr type XLet GhcPs = EpAnnCO
type XLet GhcRn |
Instance details Defined in GHC.Hs.Expr type XLet GhcRn = NoExtField
type XLet GhcTc |
Instance details Defined in GHC.Hs.Expr type XLet GhcTc = NoExtField

type family XMultiIf x #

#### Instances

Instances details

type XMultiIf GhcPs |
Instance details Defined in GHC.Hs.Expr type XMultiIf GhcPs = EpAnn [AddEpAnn]
type XMultiIf GhcRn |
Instance details Defined in GHC.Hs.Expr type XMultiIf GhcRn = NoExtField
type XMultiIf GhcTc |
Instance details Defined in GHC.Hs.Expr type XMultiIf GhcTc = Type

type family XIf x #

#### Instances

Instances details

type XIf GhcPs |
Instance details Defined in GHC.Hs.Expr type XIf GhcPs = EpAnn AnnsIf
type XIf GhcRn |
Instance details Defined in GHC.Hs.Expr type XIf GhcRn = NoExtField
type XIf GhcTc |
Instance details Defined in GHC.Hs.Expr type XIf GhcTc = NoExtField

type family XCase x #

#### Instances

Instances details

type XCase GhcPs |
Instance details Defined in GHC.Hs.Expr type XCase GhcPs = EpAnn EpAnnHsCase
type XCase GhcRn |
Instance details Defined in GHC.Hs.Expr type XCase GhcRn = HsMatchContext GhcTc
type XCase GhcTc |
Instance details Defined in GHC.Hs.Expr type XCase GhcTc = HsMatchContext GhcTc

type family XExplicitSum x #

#### Instances

Instances details

type XExplicitSum GhcPs |
Instance details Defined in GHC.Hs.Expr type XExplicitSum GhcPs = EpAnn AnnExplicitSum
type XExplicitSum GhcRn |
Instance details Defined in GHC.Hs.Expr type XExplicitSum GhcRn = NoExtField
type XExplicitSum GhcTc |
Instance details Defined in GHC.Hs.Expr type XExplicitSum GhcTc = [Type]

type family XExplicitTuple x #

#### Instances

Instances details

type XExplicitTuple GhcPs |
Instance details Defined in GHC.Hs.Expr type XExplicitTuple GhcPs = EpAnn [AddEpAnn]
type XExplicitTuple GhcRn |
Instance details Defined in GHC.Hs.Expr type XExplicitTuple GhcRn = NoExtField
type XExplicitTuple GhcTc |
Instance details Defined in GHC.Hs.Expr type XExplicitTuple GhcTc = NoExtField

type family XSectionR x #

#### Instances

Instances details

type XSectionR GhcPs |
Instance details Defined in GHC.Hs.Expr type XSectionR GhcPs = EpAnnCO
type XSectionR GhcRn |
Instance details Defined in GHC.Hs.Expr type XSectionR GhcRn = EpAnnCO
type XSectionR GhcTc |
Instance details Defined in GHC.Hs.Expr type XSectionR GhcTc = DataConCantHappen

type family XSectionL x #

#### Instances

Instances details

type XSectionL GhcPs |
Instance details Defined in GHC.Hs.Expr type XSectionL GhcPs = EpAnnCO
type XSectionL GhcRn |
Instance details Defined in GHC.Hs.Expr type XSectionL GhcRn = EpAnnCO
type XSectionL GhcTc |
Instance details Defined in GHC.Hs.Expr type XSectionL GhcTc = DataConCantHappen

type family XPar x #

#### Instances

Instances details

type XPar (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XPar (GhcPass _1) = EpAnnCO

type family XNegApp x #

#### Instances

Instances details

type XNegApp GhcPs |
Instance details Defined in GHC.Hs.Expr type XNegApp GhcPs = EpAnn [AddEpAnn]
type XNegApp GhcRn |
Instance details Defined in GHC.Hs.Expr type XNegApp GhcRn = NoExtField
type XNegApp GhcTc |
Instance details Defined in GHC.Hs.Expr type XNegApp GhcTc = NoExtField

type family XOpApp x #

#### Instances

Instances details

type XOpApp GhcPs |
Instance details Defined in GHC.Hs.Expr type XOpApp GhcPs = EpAnn [AddEpAnn]
type XOpApp GhcRn |
Instance details Defined in GHC.Hs.Expr type XOpApp GhcRn = Fixity
type XOpApp GhcTc |
Instance details Defined in GHC.Hs.Expr type XOpApp GhcTc = DataConCantHappen

type family XAppTypeE x #

#### Instances

Instances details

type XAppTypeE GhcPs |
Instance details Defined in GHC.Hs.Expr type XAppTypeE GhcPs = NoExtField
type XAppTypeE GhcRn |
Instance details Defined in GHC.Hs.Expr type XAppTypeE GhcRn = NoExtField
type XAppTypeE GhcTc |
Instance details Defined in GHC.Hs.Expr type XAppTypeE GhcTc = Type

type family XApp x #

#### Instances

Instances details

type XApp (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XApp (GhcPass _1) = EpAnnCO

type family XLamCase x #

#### Instances

Instances details

type XLamCase (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XLamCase (GhcPass _1) = EpAnn [AddEpAnn]

type family XLam x #

#### Instances

Instances details

type XLam (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XLam (GhcPass _1) = NoExtField
type XLam (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XLam (GhcPass _1) = NoExtField

type family XLitE x #

#### Instances

Instances details

type XLitE (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XLitE (GhcPass _1) = EpAnnCO

type family XOverLitE x #

#### Instances

Instances details

type XOverLitE (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XOverLitE (GhcPass _1) = EpAnnCO

type family XIPVar x #

#### Instances

Instances details

type XIPVar GhcPs |
Instance details Defined in GHC.Hs.Expr type XIPVar GhcPs = EpAnnCO
type XIPVar GhcRn |
Instance details Defined in GHC.Hs.Expr type XIPVar GhcRn = EpAnnCO
type XIPVar GhcTc |
Instance details Defined in GHC.Hs.Expr type XIPVar GhcTc = DataConCantHappen

type family XOverLabel x #

#### Instances

Instances details

type XOverLabel GhcPs |
Instance details Defined in GHC.Hs.Expr type XOverLabel GhcPs = EpAnnCO
type XOverLabel GhcRn |
Instance details Defined in GHC.Hs.Expr type XOverLabel GhcRn = EpAnnCO
type XOverLabel GhcTc |
Instance details Defined in GHC.Hs.Expr type XOverLabel GhcTc = DataConCantHappen

type family XRecSel x #

#### Instances

Instances details

type XRecSel GhcPs |
Instance details Defined in GHC.Hs.Expr type XRecSel GhcPs = DataConCantHappen
type XRecSel GhcRn |
Instance details Defined in GHC.Hs.Expr type XRecSel GhcRn = NoExtField
type XRecSel GhcTc |
Instance details Defined in GHC.Hs.Expr type XRecSel GhcTc = NoExtField

type family XUnboundVar x #

#### Instances

Instances details

type XUnboundVar GhcPs |
Instance details Defined in GHC.Hs.Expr type XUnboundVar GhcPs = EpAnn EpAnnUnboundVar
type XUnboundVar GhcRn |
Instance details Defined in GHC.Hs.Expr type XUnboundVar GhcRn = NoExtField
type XUnboundVar GhcTc |
Instance details Defined in GHC.Hs.Expr type XUnboundVar GhcTc = HoleExprRef

type family XVar x #

#### Instances

Instances details

type XVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XVar (GhcPass _1) = NoExtField
type XVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XVar (GhcPass _1) = NoExtField

type family XXModule x #

#### Instances

Instances details

type XXModule p |
Instance details Defined in GHC.Hs type XXModule p = DataConCantHappen

type family XCModule x #

#### Instances

Instances details

type XCModule GhcPs |
Instance details Defined in GHC.Hs type XCModule GhcPs = XModulePs
type XCModule GhcRn |
Instance details Defined in GHC.Hs type XCModule GhcRn = DataConCantHappen
type XCModule GhcTc |
Instance details Defined in GHC.Hs type XCModule GhcTc = DataConCantHappen

type family XXInjectivityAnn x #

#### Instances

Instances details

type XXInjectivityAnn (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXInjectivityAnn (GhcPass _1) = DataConCantHappen

type family XCInjectivityAnn x #

#### Instances

Instances details

type XCInjectivityAnn (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCInjectivityAnn (GhcPass _1) = EpAnn [AddEpAnn]

type family XXRoleAnnotDecl x #

#### Instances

Instances details

type XXRoleAnnotDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXRoleAnnotDecl (GhcPass _1) = DataConCantHappen

type family XCRoleAnnotDecl x #

#### Instances

Instances details

type XCRoleAnnotDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XCRoleAnnotDecl GhcPs = EpAnn [AddEpAnn]
type XCRoleAnnotDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XCRoleAnnotDecl GhcRn = NoExtField
type XCRoleAnnotDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XCRoleAnnotDecl GhcTc = NoExtField

type family XXAnnDecl x #

#### Instances

Instances details

type XXAnnDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXAnnDecl (GhcPass _1) = DataConCantHappen

type family XHsAnnotation x #

#### Instances

Instances details

type XHsAnnotation (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XHsAnnotation (GhcPass _1) = (EpAnn AnnPragma, SourceText)

type family XXWarnDecl x #

#### Instances

Instances details

type XXWarnDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXWarnDecl (GhcPass _1) = DataConCantHappen

type family XWarning x #

#### Instances

Instances details

type XWarning (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XWarning (GhcPass _1) = EpAnn [AddEpAnn]

type family XXWarnDecls x #

#### Instances

Instances details

type XXWarnDecls (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXWarnDecls (GhcPass _1) = DataConCantHappen

type family XWarnings x #

#### Instances

Instances details

type XWarnings GhcPs |
Instance details Defined in GHC.Hs.Decls type XWarnings GhcPs = (EpAnn [AddEpAnn], SourceText)
type XWarnings GhcRn |
Instance details Defined in GHC.Hs.Decls type XWarnings GhcRn = SourceText
type XWarnings GhcTc |
Instance details Defined in GHC.Hs.Decls type XWarnings GhcTc = SourceText

type family XXRuleBndr x #

#### Instances

Instances details

type XXRuleBndr (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXRuleBndr (GhcPass _1) = DataConCantHappen

type family XRuleBndrSig x #

#### Instances

Instances details

type XRuleBndrSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XRuleBndrSig (GhcPass _1) = EpAnn [AddEpAnn]

type family XCRuleBndr x #

#### Instances

Instances details

type XCRuleBndr (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCRuleBndr (GhcPass _1) = EpAnn [AddEpAnn]

type family XXRuleDecl x #

#### Instances

Instances details

type XXRuleDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXRuleDecl (GhcPass _1) = DataConCantHappen

type family XHsRule x #

#### Instances

Instances details

type XHsRule GhcPs |
Instance details Defined in GHC.Hs.Decls type XHsRule GhcPs = (EpAnn HsRuleAnn, SourceText)
type XHsRule GhcRn |
Instance details Defined in GHC.Hs.Decls type XHsRule GhcRn = (HsRuleRn, SourceText)
type XHsRule GhcTc |
Instance details Defined in GHC.Hs.Decls type XHsRule GhcTc = (HsRuleRn, SourceText)

type family XXRuleDecls x #

#### Instances

Instances details

type XXRuleDecls (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXRuleDecls (GhcPass _1) = DataConCantHappen

type family XCRuleDecls x #

#### Instances

Instances details

type XCRuleDecls GhcPs |
Instance details Defined in GHC.Hs.Decls type XCRuleDecls GhcPs = (EpAnn [AddEpAnn], SourceText)
type XCRuleDecls GhcRn |
Instance details Defined in GHC.Hs.Decls type XCRuleDecls GhcRn = SourceText
type XCRuleDecls GhcTc |
Instance details Defined in GHC.Hs.Decls type XCRuleDecls GhcTc = SourceText

type family XXForeignExport x #

#### Instances

Instances details

type XXForeignExport (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXForeignExport (GhcPass _1) = DataConCantHappen

type family XCExport x #

#### Instances

Instances details

type XCExport (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCExport (GhcPass _1) = Located SourceText

type family XXForeignImport x #

#### Instances

Instances details

type XXForeignImport (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXForeignImport (GhcPass _1) = DataConCantHappen

type family XCImport x #

#### Instances

Instances details

type XCImport (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCImport (GhcPass _1) = Located SourceText

type family XXForeignDecl x #

#### Instances

Instances details

type XXForeignDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXForeignDecl (GhcPass _1) = DataConCantHappen

type family XForeignExport x #

#### Instances

Instances details

type XForeignExport GhcPs |
Instance details Defined in GHC.Hs.Decls type XForeignExport GhcPs = EpAnn [AddEpAnn]
type XForeignExport GhcRn |
Instance details Defined in GHC.Hs.Decls type XForeignExport GhcRn = NoExtField
type XForeignExport GhcTc |
Instance details Defined in GHC.Hs.Decls type XForeignExport GhcTc = Coercion

data ForeignExport pass #

Constructors

CExport (XCExport pass) (XRec pass CExportSpec) |
XForeignExport !(XXForeignExport pass) |

#### Instances

Instances details

ToHie (ForeignExport GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: ForeignExport GhcRn -> HieM [HieAST Type]
ExactPrint (ForeignExport GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ForeignExport GhcPs -> Entry # setAnnotationAnchor :: ForeignExport GhcPs -> Anchor -> EpAnnComments -> ForeignExport GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ForeignExport GhcPs -> EP w m (ForeignExport GhcPs) #

type family XForeignImport x #

#### Instances

Instances details

type XForeignImport GhcPs |
Instance details Defined in GHC.Hs.Decls type XForeignImport GhcPs = EpAnn [AddEpAnn]
type XForeignImport GhcRn |
Instance details Defined in GHC.Hs.Decls type XForeignImport GhcRn = NoExtField
type XForeignImport GhcTc |
Instance details Defined in GHC.Hs.Decls type XForeignImport GhcTc = Coercion

data ForeignImport pass #

Constructors

CImport (XCImport pass) (XRec pass CCallConv) (XRec pass Safety) (Maybe Header) CImportSpec |
XForeignImport !(XXForeignImport pass) |

#### Instances

Instances details

ToHie (ForeignImport GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: ForeignImport GhcRn -> HieM [HieAST Type]
ExactPrint (ForeignImport GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ForeignImport GhcPs -> Entry # setAnnotationAnchor :: ForeignImport GhcPs -> Anchor -> EpAnnComments -> ForeignImport GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ForeignImport GhcPs -> EP w m (ForeignImport GhcPs) #

type family XXDefaultDecl x #

#### Instances

Instances details

type XXDefaultDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXDefaultDecl (GhcPass _1) = DataConCantHappen

type family XCDefaultDecl x #

#### Instances

Instances details

type XCDefaultDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XCDefaultDecl GhcPs = EpAnn [AddEpAnn]
type XCDefaultDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XCDefaultDecl GhcRn = NoExtField
type XCDefaultDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XCDefaultDecl GhcTc = NoExtField

type family XViaStrategy x #

#### Instances

Instances details

type XViaStrategy GhcPs |
Instance details Defined in GHC.Hs.Decls type XViaStrategy GhcPs = XViaStrategyPs
type XViaStrategy GhcRn |
Instance details Defined in GHC.Hs.Decls type XViaStrategy GhcRn = LHsSigType GhcRn
type XViaStrategy GhcTc |
Instance details Defined in GHC.Hs.Decls type XViaStrategy GhcTc = Type

type family XNewtypeStrategy x #

#### Instances

Instances details

type XNewtypeStrategy GhcPs |
Instance details Defined in GHC.Hs.Decls type XNewtypeStrategy GhcPs = EpAnn [AddEpAnn]
type XNewtypeStrategy GhcRn |
Instance details Defined in GHC.Hs.Decls type XNewtypeStrategy GhcRn = NoExtField
type XNewtypeStrategy GhcTc |
Instance details Defined in GHC.Hs.Decls type XNewtypeStrategy GhcTc = NoExtField

type family XAnyClassStrategy x #

#### Instances

Instances details

type XAnyClassStrategy GhcPs |
Instance details Defined in GHC.Hs.Decls type XAnyClassStrategy GhcPs = EpAnn [AddEpAnn]
type XAnyClassStrategy GhcRn |
Instance details Defined in GHC.Hs.Decls type XAnyClassStrategy GhcRn = NoExtField
type XAnyClassStrategy GhcTc |
Instance details Defined in GHC.Hs.Decls type XAnyClassStrategy GhcTc = NoExtField

type family XStockStrategy x #

#### Instances

Instances details

type XStockStrategy GhcPs |
Instance details Defined in GHC.Hs.Decls type XStockStrategy GhcPs = EpAnn [AddEpAnn]
type XStockStrategy GhcRn |
Instance details Defined in GHC.Hs.Decls type XStockStrategy GhcRn = NoExtField
type XStockStrategy GhcTc |
Instance details Defined in GHC.Hs.Decls type XStockStrategy GhcTc = NoExtField

type family XXDerivDecl x #

#### Instances

Instances details

type XXDerivDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXDerivDecl (GhcPass _1) = DataConCantHappen

type family XCDerivDecl x #

#### Instances

Instances details

type XCDerivDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCDerivDecl (GhcPass _1) = EpAnn [AddEpAnn]

type family XXInstDecl x #

#### Instances

Instances details

type XXInstDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXInstDecl (GhcPass _1) = DataConCantHappen

type family XTyFamInstD x #

#### Instances

Instances details

type XTyFamInstD GhcPs |
Instance details Defined in GHC.Hs.Decls type XTyFamInstD GhcPs = NoExtField
type XTyFamInstD GhcRn |
Instance details Defined in GHC.Hs.Decls type XTyFamInstD GhcRn = NoExtField
type XTyFamInstD GhcTc |
Instance details Defined in GHC.Hs.Decls type XTyFamInstD GhcTc = NoExtField

type family XDataFamInstD x #

#### Instances

Instances details

type XDataFamInstD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDataFamInstD (GhcPass _1) = NoExtField

type family XClsInstD x #

#### Instances

Instances details

type XClsInstD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XClsInstD (GhcPass _1) = NoExtField

type family XXClsInstDecl x #

#### Instances

Instances details

type XXClsInstDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXClsInstDecl (GhcPass _1) = DataConCantHappen

type family XCClsInstDecl x #

#### Instances

Instances details

type XCClsInstDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XCClsInstDecl GhcPs = (EpAnn [AddEpAnn], AnnSortKey)
type XCClsInstDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XCClsInstDecl GhcRn = NoExtField
type XCClsInstDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XCClsInstDecl GhcTc = NoExtField

type family XXTyFamInstDecl x #

#### Instances

Instances details

type XXTyFamInstDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXTyFamInstDecl (GhcPass _1) = DataConCantHappen

type family XCTyFamInstDecl x #

#### Instances

Instances details

type XCTyFamInstDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCTyFamInstDecl (GhcPass _1) = EpAnn [AddEpAnn]

type family XXFamEqn x r #

#### Instances

Instances details

type XXFamEqn (GhcPass _1) r |
Instance details Defined in GHC.Hs.Decls type XXFamEqn (GhcPass _1) r = DataConCantHappen

type family XCFamEqn x r #

#### Instances

Instances details

type XCFamEqn (GhcPass _1) r |
Instance details Defined in GHC.Hs.Decls type XCFamEqn (GhcPass _1) r = EpAnn [AddEpAnn]

type family XXConDecl x #

#### Instances

Instances details

type XXConDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXConDecl (GhcPass _1) = DataConCantHappen

type family XConDeclH98 x #

#### Instances

Instances details

type XConDeclH98 (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XConDeclH98 (GhcPass _1) = EpAnn [AddEpAnn]

type family XConDeclGADT x #

#### Instances

Instances details

type XConDeclGADT (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XConDeclGADT (GhcPass _1) = EpAnn [AddEpAnn]

type family XXDerivClauseTys x #

#### Instances

Instances details

type XXDerivClauseTys (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXDerivClauseTys (GhcPass _1) = DataConCantHappen

type family XDctMulti x #

#### Instances

Instances details

type XDctMulti (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDctMulti (GhcPass _1) = NoExtField

type family XDctSingle x #

#### Instances

Instances details

type XDctSingle (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDctSingle (GhcPass _1) = NoExtField

type family XXHsDerivingClause x #

#### Instances

Instances details

type XXHsDerivingClause (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXHsDerivingClause (GhcPass _1) = DataConCantHappen

type family XCHsDerivingClause x #

#### Instances

Instances details

type XCHsDerivingClause (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCHsDerivingClause (GhcPass _1) = EpAnn [AddEpAnn]

type family XXHsDataDefn x #

#### Instances

Instances details

type XXHsDataDefn (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXHsDataDefn (GhcPass _1) = DataConCantHappen

type family XCHsDataDefn x #

#### Instances

Instances details

type XCHsDataDefn (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCHsDataDefn (GhcPass _1) = NoExtField

type family XXFamilyDecl x #

#### Instances

Instances details

type XXFamilyDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXFamilyDecl (GhcPass _1) = DataConCantHappen

type family XCFamilyDecl x #

#### Instances

Instances details

type XCFamilyDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCFamilyDecl (GhcPass _1) = EpAnn [AddEpAnn]

type family XXFamilyResultSig x #

#### Instances

Instances details

type XXFamilyResultSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXFamilyResultSig (GhcPass _1) = DataConCantHappen

type family XTyVarSig x #

#### Instances

Instances details

type XTyVarSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XTyVarSig (GhcPass _1) = NoExtField

type family XCKindSig x #

#### Instances

Instances details

type XCKindSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCKindSig (GhcPass _1) = NoExtField

type family XNoSig x #

#### Instances

Instances details

type XNoSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XNoSig (GhcPass _1) = NoExtField

type family XXTyClGroup x #

#### Instances

Instances details

type XXTyClGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXTyClGroup (GhcPass _1) = DataConCantHappen

type family XCTyClGroup x #

#### Instances

Instances details

type XCTyClGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCTyClGroup (GhcPass _1) = NoExtField

type family XXFunDep x #

#### Instances

Instances details

type XXFunDep (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXFunDep (GhcPass _1) = DataConCantHappen

type family XCFunDep x #

#### Instances

Instances details

type XCFunDep (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCFunDep (GhcPass _1) = EpAnn [AddEpAnn]

type family XXTyClDecl x #

#### Instances

Instances details

type XXTyClDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXTyClDecl (GhcPass _1) = DataConCantHappen

type family XClassDecl x #

#### Instances

Instances details

type XClassDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XClassDecl GhcPs = (EpAnn [AddEpAnn], AnnSortKey)
type XClassDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XClassDecl GhcRn = NameSet
type XClassDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XClassDecl GhcTc = NameSet

type family XDataDecl x #

#### Instances

Instances details

type XDataDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XDataDecl GhcPs = EpAnn [AddEpAnn]
type XDataDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XDataDecl GhcRn = DataDeclRn
type XDataDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XDataDecl GhcTc = DataDeclRn

type family XSynDecl x #

#### Instances

Instances details

type XSynDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XSynDecl GhcPs = EpAnn [AddEpAnn]
type XSynDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XSynDecl GhcRn = NameSet
type XSynDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XSynDecl GhcTc = NameSet

type family XFamDecl x #

#### Instances

Instances details

type XFamDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XFamDecl (GhcPass _1) = NoExtField

type family XXSpliceDecl x #

#### Instances

Instances details

type XXSpliceDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXSpliceDecl (GhcPass _1) = DataConCantHappen

type family XSpliceDecl x #

#### Instances

Instances details

type XSpliceDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XSpliceDecl (GhcPass _1) = NoExtField

data SpliceDecl p #

Splice Declaration

Constructors

SpliceDecl (XSpliceDecl p) (XRec p (HsUntypedSplice p)) SpliceDecoration |
XSpliceDecl !(XXSpliceDecl p) |

#### Instances

Instances details

ToHie (LocatedA (SpliceDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (SpliceDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (SpliceDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: SpliceDecl GhcPs -> Entry # setAnnotationAnchor :: SpliceDecl GhcPs -> Anchor -> EpAnnComments -> SpliceDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => SpliceDecl GhcPs -> EP w m (SpliceDecl GhcPs) #
type Anno (SpliceDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (SpliceDecl (GhcPass p)) = SrcSpanAnnA

type family XXHsGroup x #

#### Instances

Instances details

type XXHsGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXHsGroup (GhcPass _1) = DataConCantHappen

type family XCHsGroup x #

#### Instances

Instances details

type XCHsGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCHsGroup (GhcPass _1) = NoExtField

type family XXHsDecl x #

#### Instances

Instances details

type XXHsDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXHsDecl (GhcPass _1) = DataConCantHappen

type family XRoleAnnotD x #

#### Instances

Instances details

type XRoleAnnotD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XRoleAnnotD (GhcPass _1) = NoExtField

type family XDocD x #

#### Instances

Instances details

type XDocD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDocD (GhcPass _1) = NoExtField

type family XSpliceD x #

#### Instances

Instances details

type XSpliceD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XSpliceD (GhcPass _1) = NoExtField

type family XRuleD x #

#### Instances

Instances details

type XRuleD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XRuleD (GhcPass _1) = NoExtField

type family XAnnD x #

#### Instances

Instances details

type XAnnD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XAnnD (GhcPass _1) = NoExtField

type family XWarningD x #

#### Instances

Instances details

type XWarningD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XWarningD (GhcPass _1) = NoExtField

type family XForD x #

#### Instances

Instances details

type XForD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XForD (GhcPass _1) = NoExtField

type family XDefD x #

#### Instances

Instances details

type XDefD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDefD (GhcPass _1) = NoExtField

type family XKindSigD x #

#### Instances

Instances details

type XKindSigD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XKindSigD (GhcPass _1) = NoExtField

type family XSigD x #

#### Instances

Instances details

type XSigD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XSigD (GhcPass _1) = NoExtField

type family XValD x #

#### Instances

Instances details

type XValD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XValD (GhcPass _1) = NoExtField

type family XDerivD x #

#### Instances

Instances details

type XDerivD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDerivD (GhcPass _1) = NoExtField

type family XInstD x #

#### Instances

Instances details

type XInstD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XInstD (GhcPass _1) = NoExtField

type family XTyClD x #

#### Instances

Instances details

type XTyClD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XTyClD (GhcPass _1) = NoExtField

type family XXStandaloneKindSig x #

#### Instances

Instances details

type XXStandaloneKindSig (GhcPass p) |
Instance details Defined in GHC.Hs.Decls type XXStandaloneKindSig (GhcPass p) = DataConCantHappen

type family XStandaloneKindSig x #

#### Instances

Instances details

type XStandaloneKindSig GhcPs |
Instance details Defined in GHC.Hs.Decls type XStandaloneKindSig GhcPs = EpAnn [AddEpAnn]
type XStandaloneKindSig GhcRn |
Instance details Defined in GHC.Hs.Decls type XStandaloneKindSig GhcRn = NoExtField
type XStandaloneKindSig GhcTc |
Instance details Defined in GHC.Hs.Decls type XStandaloneKindSig GhcTc = NoExtField

data StandaloneKindSig pass #

Constructors

StandaloneKindSig (XStandaloneKindSig pass) (LIdP pass) (LHsSigType pass) |
XStandaloneKindSig !(XXStandaloneKindSig pass) |

#### Instances

Instances details

ToHie (LocatedA (StandaloneKindSig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (StandaloneKindSig GhcRn) -> HieM [HieAST Type]
ToHie (StandaloneKindSig GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: StandaloneKindSig GhcRn -> HieM [HieAST Type]
ExactPrint (StandaloneKindSig GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: StandaloneKindSig GhcPs -> Entry # setAnnotationAnchor :: StandaloneKindSig GhcPs -> Anchor -> EpAnnComments -> StandaloneKindSig GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => StandaloneKindSig GhcPs -> EP w m (StandaloneKindSig GhcPs) #
type Anno (StandaloneKindSig (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (StandaloneKindSig (GhcPass p)) = SrcSpanAnnA

type family XXFixitySig x #

#### Instances

Instances details

type XXFixitySig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XXFixitySig (GhcPass p) = DataConCantHappen

type family XFixitySig x #

#### Instances

Instances details

type XFixitySig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XFixitySig (GhcPass p) = NoExtField

data FixitySig pass #

Fixity Signature

Constructors

FixitySig (XFixitySig pass) [LIdP pass] Fixity |
XFixitySig !(XXFixitySig pass) |

#### Instances

Instances details

ToHie (LocatedA (FixitySig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FixitySig GhcRn) -> HieM [HieAST Type]
type Anno (FixitySig (GhcPass p)) |
Instance details Defined in GHC.Hs.Binds type Anno (FixitySig (GhcPass p)) = SrcSpanAnnA

type family XXSig x #

#### Instances

Instances details

type XXSig GhcPs |
Instance details Defined in GHC.Hs.Binds type XXSig GhcPs = DataConCantHappen
type XXSig GhcRn |
Instance details Defined in GHC.Hs.Binds type XXSig GhcRn = IdSig
type XXSig GhcTc |
Instance details Defined in GHC.Hs.Binds type XXSig GhcTc = IdSig

type family XCompleteMatchSig x #

#### Instances

Instances details

type XCompleteMatchSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XCompleteMatchSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText)

type family XSCCFunSig x #

#### Instances

Instances details

type XSCCFunSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XSCCFunSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText)

type family XMinimalSig x #

#### Instances

Instances details

type XMinimalSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XMinimalSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText)

type family XSpecInstSig x #

#### Instances

Instances details

type XSpecInstSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XSpecInstSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText)

type family XSpecSig x #

#### Instances

Instances details

type XSpecSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XSpecSig (GhcPass p) = EpAnn [AddEpAnn]

type family XInlineSig x #

#### Instances

Instances details

type XInlineSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XInlineSig (GhcPass p) = EpAnn [AddEpAnn]

type family XFixSig x #

#### Instances

Instances details

type XFixSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XFixSig (GhcPass p) = EpAnn [AddEpAnn]

type family XIdSig x #

type family XClassOpSig x #

#### Instances

Instances details

type XClassOpSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XClassOpSig (GhcPass p) = EpAnn AnnSig

type family XPatSynSig x #

#### Instances

Instances details

type XPatSynSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XPatSynSig (GhcPass p) = EpAnn AnnSig

type family XTypeSig x #

#### Instances

Instances details

type XTypeSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XTypeSig (GhcPass p) = EpAnn AnnSig

type family XXIPBind x #

#### Instances

Instances details

type XXIPBind (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XXIPBind (GhcPass p) = DataConCantHappen

type family XCIPBind x #

#### Instances

Instances details

type XCIPBind GhcPs |
Instance details Defined in GHC.Hs.Binds type XCIPBind GhcPs = EpAnn [AddEpAnn]
type XCIPBind GhcRn |
Instance details Defined in GHC.Hs.Binds type XCIPBind GhcRn = NoExtField
type XCIPBind GhcTc |
Instance details Defined in GHC.Hs.Binds type XCIPBind GhcTc = Id

type family XXHsIPBinds x #

#### Instances

Instances details

type XXHsIPBinds (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XXHsIPBinds (GhcPass p) = DataConCantHappen

type family XIPBinds x #

#### Instances

Instances details

type XIPBinds GhcPs |
Instance details Defined in GHC.Hs.Binds type XIPBinds GhcPs = NoExtField
type XIPBinds GhcRn |
Instance details Defined in GHC.Hs.Binds type XIPBinds GhcRn = NoExtField
type XIPBinds GhcTc |
Instance details Defined in GHC.Hs.Binds type XIPBinds GhcTc = TcEvBinds

type family XXPatSynBind x x' #

#### Instances

Instances details

type XXPatSynBind (GhcPass idL) (GhcPass idR) |
Instance details Defined in GHC.Hs.Binds type XXPatSynBind (GhcPass idL) (GhcPass idR) = DataConCantHappen

type family XPSB x x' #

#### Instances

Instances details

type XPSB (GhcPass idL) GhcPs |
Instance details Defined in GHC.Hs.Binds type XPSB (GhcPass idL) GhcPs = EpAnn [AddEpAnn]
type XPSB (GhcPass idL) GhcRn |
Instance details Defined in GHC.Hs.Binds type XPSB (GhcPass idL) GhcRn = NameSet
type XPSB (GhcPass idL) GhcTc |
Instance details Defined in GHC.Hs.Binds type XPSB (GhcPass idL) GhcTc = NameSet

type family XXHsBindsLR x x' #

#### Instances

Instances details

type XXHsBindsLR GhcPs pR |
Instance details Defined in GHC.Hs.Binds type XXHsBindsLR GhcPs pR = DataConCantHappen
type XXHsBindsLR GhcRn pR |
Instance details Defined in GHC.Hs.Binds type XXHsBindsLR GhcRn pR = DataConCantHappen
type XXHsBindsLR GhcTc pR |
Instance details Defined in GHC.Hs.Binds type XXHsBindsLR GhcTc pR = AbsBinds

type family XPatSynBind x x' #

#### Instances

Instances details

type XPatSynBind (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XPatSynBind (GhcPass pL) (GhcPass pR) = NoExtField

data PatSynBind idL idR #

- `AnnKeywordId` : `AnnPattern`, `AnnEqual`,`AnnLarrow`, `AnnWhere`,`AnnOpen` `'{'`, `AnnClose` `'}'`,

Pattern Synonym binding

Constructors

PSB |

Fields

- psb_ext :: XPSB idL idR
- psb_id :: LIdP idL

  Name of the pattern synonym

- psb_args :: HsPatSynDetails idR

  Formal parameter names

- psb_def :: LPat idR

  Right-hand side

- psb_dir :: HsPatSynDir idR

  Directionality

XPatSynBind !(XXPatSynBind idL idR) |

#### Instances

Instances details

HiePass p => ToHie (Located (PatSynBind (GhcPass p) (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Located (PatSynBind (GhcPass p) (GhcPass p)) -> HieM [HieAST Type]
ExactPrint (PatSynBind GhcPs GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: PatSynBind GhcPs GhcPs -> Entry # setAnnotationAnchor :: PatSynBind GhcPs GhcPs -> Anchor -> EpAnnComments -> PatSynBind GhcPs GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => PatSynBind GhcPs GhcPs -> EP w m (PatSynBind GhcPs GhcPs) #

type family XVarBind x x' #

#### Instances

Instances details

type XVarBind (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XVarBind (GhcPass pL) (GhcPass pR) = XVarBindGhc pL pR

type family XPatBind x x' #

#### Instances

Instances details

type XPatBind GhcPs (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XPatBind GhcPs (GhcPass pR) = EpAnn [AddEpAnn]
type XPatBind GhcRn (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XPatBind GhcRn (GhcPass pR) = NameSet
type XPatBind GhcTc (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XPatBind GhcTc (GhcPass pR) = (Type, ([CoreTickish], [[CoreTickish]]))

type family XFunBind x x' #

#### Instances

Instances details

type XFunBind (GhcPass pL) GhcPs |
Instance details Defined in GHC.Hs.Binds type XFunBind (GhcPass pL) GhcPs = NoExtField
type XFunBind (GhcPass pL) GhcRn | After the renamer (but before the type-checker), the FunBind extension field contains the locally-bound free variables of this defn. See Note [Bind free vars]
Instance details Defined in GHC.Hs.Binds type XFunBind (GhcPass pL) GhcRn = NameSet

type XFunBind (GhcPass pL) GhcTc

After the type-checker, the FunBind extension field contains the ticks to put on the rhs, if any, and a coercion from the type of the MatchGroup to the type of the Id. Example:

         f :: Int -> forall a. a -> a
         f x y = y

Then the MatchGroup will have type (Int -> a' -> a') (with a free type variable a'). The coercion will take a CoreExpr of this type and convert it to a CoreExpr of type Int -> forall a'. a' -> a' Notice that the coercion captures the free a'.

Instance details Defined in GHC.Hs.Binds type XFunBind (GhcPass pL) GhcTc = (HsWrapper, [CoreTickish])

type family XXValBindsLR x x' #

#### Instances

Instances details

type XXValBindsLR (GhcPass pL) pR |
Instance details Defined in GHC.Hs.Binds type XXValBindsLR (GhcPass pL) pR = NHsValBindsLR (GhcPass pL)

type family XValBinds x x' #

#### Instances

Instances details

type XValBinds (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XValBinds (GhcPass pL) (GhcPass pR) = AnnSortKey

type family XXHsLocalBindsLR x x' #

#### Instances

Instances details

type XXHsLocalBindsLR (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XXHsLocalBindsLR (GhcPass pL) (GhcPass pR) = DataConCantHappen

type family XEmptyLocalBinds x x' #

#### Instances

Instances details

type XEmptyLocalBinds (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XEmptyLocalBinds (GhcPass pL) (GhcPass pR) = NoExtField

type family XHsIPBinds x x' #

#### Instances

Instances details

type XHsIPBinds (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XHsIPBinds (GhcPass pL) (GhcPass pR) = EpAnn AnnList

data HsIPBinds id #

Haskell Implicit Parameter Bindings

Constructors

IPBinds (XIPBinds id) [LIPBind id] |
XHsIPBinds !(XXHsIPBinds id) |

#### Instances

Instances details

ExactPrint (HsIPBinds GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsIPBinds GhcPs -> Entry # setAnnotationAnchor :: HsIPBinds GhcPs -> Anchor -> EpAnnComments -> HsIPBinds GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsIPBinds GhcPs -> EP w m (HsIPBinds GhcPs) #

type family XHsValBinds x x' #

#### Instances

Instances details

type XHsValBinds (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XHsValBinds (GhcPass pL) (GhcPass pR) = EpAnn AnnList

type LIdP p = XRec p (IdP p) #

type family IdP p #

Maps the "normal" id type for a given pass

#### Instances

Instances details

type IdP (GhcPass p) |
Instance details Defined in GHC.Hs.Extension type IdP (GhcPass p) = IdGhcP p

class WrapXRec p a where #

The trivial wrapper that carries no additional information See Note [XRec and SrcSpans in the AST]

Methods

wrapXRec :: a -> XRec p a #

class MapXRec p where #

We can map over the underlying type contained in an `XRec` while preserving the annotation as is.

Methods

mapXRec :: Anno a ~ Anno b => (a -> b) -> XRec p a -> XRec p b #

#### Instances

Instances details

MapXRec (GhcPass p) |
Instance details Defined in GHC.Hs.Extension Methods mapXRec :: Anno a ~ Anno b => (a -> b) -> XRec (GhcPass p) a -> XRec (GhcPass p) b #

class UnXRec p where #

We can strip off the XRec to access the underlying data. See Note [XRec and SrcSpans in the AST]

Methods

unXRec :: XRec p a -> a #

#### Instances

Instances details

UnXRec (GhcPass p) |
Instance details Defined in GHC.Hs.Extension Methods unXRec :: XRec (GhcPass p) a -> a #

type family Anno a = (b :: Type) #

#### Instances

Instances details

type Anno ConLike |
Instance details Defined in GHC.Hs.Pat type Anno ConLike = SrcSpanAnnN
type Anno FastString |
Instance details Defined in GHC.Hs.Expr type Anno FastString = SrcAnn NoEpAnns
type Anno OverlapMode |
Instance details Defined in GHC.Hs.Decls type Anno OverlapMode = SrcSpanAnnP
type Anno OverlapMode |
Instance details Defined in GHC.Hs.Decls type Anno OverlapMode = SrcSpanAnnP
type Anno CCallConv |
Instance details Defined in GHC.Hs.Decls type Anno CCallConv = SrcSpan
type Anno CExportSpec |
Instance details Defined in GHC.Hs.Decls type Anno CExportSpec = SrcSpan
type Anno CType |
Instance details Defined in GHC.Hs.Decls type Anno CType = SrcSpanAnnP
type Anno Safety |
Instance details Defined in GHC.Hs.Decls type Anno Safety = SrcSpan
type Anno Name |
Instance details Defined in GHC.Hs.Extension type Anno Name = SrcSpanAnnN
type Anno RdrName |
Instance details Defined in GHC.Hs.Extension type Anno RdrName = SrcSpanAnnN
type Anno StringLiteral |
Instance details Defined in GHC.Hs.Binds type Anno StringLiteral = SrcAnn NoEpAnns
type Anno Id |
Instance details Defined in GHC.Hs.Extension type Anno Id = SrcSpanAnnN
type Anno FieldLabelString |
Instance details Defined in GHC.Hs.Expr type Anno FieldLabelString = SrcSpanAnnN
type Anno ModuleName |
Instance details Defined in GHC.Hs type Anno ModuleName = SrcSpanAnnA
type Anno ModuleName |
Instance details Defined in GHC.Hs.ImpExp type Anno ModuleName = SrcSpanAnnA
type Anno RecFieldsDotDot |
Instance details Defined in GHC.Hs.Pat type Anno RecFieldsDotDot = SrcSpan
type Anno HsIPName |
Instance details Defined in GHC.Hs.Type type Anno HsIPName = SrcAnn NoEpAnns
type Anno Bool |
Instance details Defined in GHC.Hs.Decls type Anno Bool = SrcAnn NoEpAnns
type Anno (LocatedA (IE (GhcPass p))) |
Instance details Defined in GHC.Hs.ImpExp type Anno (LocatedA (IE (GhcPass p))) = SrcSpanAnnA
type Anno (LocatedN Name) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Name) = SrcSpan
type Anno (LocatedN RdrName) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN RdrName) = SrcSpan
type Anno (LocatedN Id) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Id) = SrcSpan
type Anno (FixitySig (GhcPass p)) |
Instance details Defined in GHC.Hs.Binds type Anno (FixitySig (GhcPass p)) = SrcSpanAnnA
type Anno (IPBind (GhcPass p)) |
Instance details Defined in GHC.Hs.Binds type Anno (IPBind (GhcPass p)) = SrcSpanAnnA
type Anno (Sig (GhcPass p)) |
Instance details Defined in GHC.Hs.Binds type Anno (Sig (GhcPass p)) = SrcSpanAnnA
type Anno (HsToken tok) |
Instance details Defined in GHC.Hs.Extension type Anno (HsToken tok) = TokenLocation
type Anno (AnnDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (AnnDecl (GhcPass p)) = SrcSpanAnnA
type Anno (ClsInstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (ClsInstDecl (GhcPass p)) = SrcSpanAnnA
type Anno (ConDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (ConDecl (GhcPass p)) = SrcSpanAnnA
type Anno (DataFamInstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DataFamInstDecl (GhcPass p)) = SrcSpanAnnA
type Anno (DefaultDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DefaultDecl (GhcPass p)) = SrcSpanAnnA
type Anno (DerivClauseTys (GhcPass _1)) |
Instance details Defined in GHC.Hs.Decls type Anno (DerivClauseTys (GhcPass _1)) = SrcSpanAnnC
type Anno (DerivDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DerivDecl (GhcPass p)) = SrcSpanAnnA
type Anno (DerivStrategy (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DerivStrategy (GhcPass p)) = SrcAnn NoEpAnns
type Anno (DocDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DocDecl (GhcPass p)) = SrcSpanAnnA
type Anno (FamilyDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (FamilyDecl (GhcPass p)) = SrcSpanAnnA
type Anno (FamilyResultSig (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (FamilyResultSig (GhcPass p)) = SrcAnn NoEpAnns
type Anno (ForeignDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (ForeignDecl (GhcPass p)) = SrcSpanAnnA
type Anno (FunDep (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (FunDep (GhcPass p)) = SrcSpanAnnA
type Anno (HsDecl (GhcPass _1)) |
Instance details Defined in GHC.Hs.Decls type Anno (HsDecl (GhcPass _1)) = SrcSpanAnnA
type Anno (HsDerivingClause (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (HsDerivingClause (GhcPass p)) = SrcAnn NoEpAnns
type Anno (InjectivityAnn (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (InjectivityAnn (GhcPass p)) = SrcAnn NoEpAnns
type Anno (InstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (InstDecl (GhcPass p)) = SrcSpanAnnA
type Anno (RoleAnnotDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RoleAnnotDecl (GhcPass p)) = SrcSpanAnnA
type Anno (RuleBndr (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RuleBndr (GhcPass p)) = SrcAnn NoEpAnns
type Anno (RuleDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RuleDecl (GhcPass p)) = SrcSpanAnnA
type Anno (RuleDecls (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RuleDecls (GhcPass p)) = SrcSpanAnnA
type Anno (SpliceDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (SpliceDecl (GhcPass p)) = SrcSpanAnnA
type Anno (StandaloneKindSig (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (StandaloneKindSig (GhcPass p)) = SrcSpanAnnA
type Anno (TyClDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (TyClDecl (GhcPass p)) = SrcSpanAnnA
type Anno (TyFamInstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (TyFamInstDecl (GhcPass p)) = SrcSpanAnnA
type Anno (WarnDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (WarnDecl (GhcPass p)) = SrcSpanAnnA
type Anno (WarnDecls (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (WarnDecls (GhcPass p)) = SrcSpanAnnA
type Anno (DotFieldOcc (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (DotFieldOcc (GhcPass p)) = SrcAnn NoEpAnns
type Anno (FieldLabelStrings (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (FieldLabelStrings (GhcPass p)) = SrcAnn NoEpAnns
type Anno (HsCmd (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsCmd (GhcPass p)) = SrcSpanAnnA
type Anno (HsCmdTop (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsCmdTop (GhcPass p)) = SrcAnn NoEpAnns
type Anno (HsExpr (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsExpr (GhcPass p)) = SrcSpanAnnA
type Anno (HsUntypedSplice (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsUntypedSplice (GhcPass p)) = SrcSpanAnnA
type Anno (IE (GhcPass p)) |
Instance details Defined in GHC.Hs.ImpExp type Anno (IE (GhcPass p)) = SrcSpanAnnA
type Anno (IEWrappedName (GhcPass _1)) |
Instance details Defined in GHC.Hs.ImpExp type Anno (IEWrappedName (GhcPass _1)) = SrcSpanAnnA
type Anno (ImportDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.ImpExp type Anno (ImportDecl (GhcPass p)) = SrcSpanAnnA
type Anno (HsOverLit (GhcPass p)) |
Instance details Defined in GHC.Hs.Pat type Anno (HsOverLit (GhcPass p)) = SrcAnn NoEpAnns
type Anno (Pat (GhcPass p)) |
Instance details Defined in GHC.Hs.Pat type Anno (Pat (GhcPass p)) = SrcSpanAnnA
type Anno (AmbiguousFieldOcc (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (AmbiguousFieldOcc (GhcPass p)) = SrcAnn NoEpAnns
type Anno (BangType (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (BangType (GhcPass p)) = SrcSpanAnnA
type Anno (ConDeclField (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (ConDeclField (GhcPass p)) = SrcSpanAnnA
type Anno (FieldOcc (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (FieldOcc (GhcPass p)) = SrcAnn NoEpAnns
type Anno (HsKind (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (HsKind (GhcPass p)) = SrcSpanAnnA
type Anno (HsSigType (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (HsSigType (GhcPass p)) = SrcSpanAnnA
type Anno (HsType (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (HsType (GhcPass p)) = SrcSpanAnnA
type Anno (Maybe Role) |
Instance details Defined in GHC.Hs.Decls type Anno (Maybe Role) = SrcAnn NoEpAnns
type Anno (Maybe Role) |
Instance details Defined in GHC.Hs.Decls type Anno (Maybe Role) = SrcAnn NoEpAnns
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (IE (GhcPass p))] |
Instance details Defined in GHC.Hs.ImpExp type Anno [LocatedA (IE (GhcPass p))] = SrcSpanAnnL
type Anno [LocatedA (ConDeclField (GhcPass _1))] |
Instance details Defined in GHC.Hs.Decls type Anno [LocatedA (ConDeclField (GhcPass _1))] = SrcSpanAnnL
type Anno [LocatedA (HsType (GhcPass p))] |
Instance details Defined in GHC.Hs.Type type Anno [LocatedA (HsType (GhcPass p))] = SrcSpanAnnC
type Anno [LocatedN Name] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Name] = SrcSpan
type Anno [LocatedN RdrName] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN RdrName] = SrcSpan
type Anno [LocatedN Id] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Id] = SrcSpan
type Anno (HsBindLR (GhcPass idL) (GhcPass idR)) |
Instance details Defined in GHC.Hs.Binds type Anno (HsBindLR (GhcPass idL) (GhcPass idR)) = SrcSpanAnnA
type Anno (HsUniToken tok utok) |
Instance details Defined in GHC.Hs.Extension type Anno (HsUniToken tok utok) = TokenLocation
type Anno (FamEqn (GhcPass p) _1) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn (GhcPass p) _1) = SrcSpanAnnA
type Anno (FamEqn (GhcPass p) _1) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn (GhcPass p) _1) = SrcSpanAnnA
type Anno (FamEqn p (LocatedA (HsType p))) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn p (LocatedA (HsType p))) = SrcSpanAnnA
type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = SrcAnn NoEpAnns
type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA
type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (HsFieldBind lhs rhs) |
Instance details Defined in GHC.Hs.Pat type Anno (HsFieldBind lhs rhs) = SrcSpanAnnA
type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) |
Instance details Defined in GHC.Hs.Type type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag (GhcPass _1)) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag (GhcPass _1)) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcPs) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcPs) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcRn) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcRn) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcTc) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcTc) = SrcSpanAnnA
type Anno (SourceText, RuleName) |
Instance details Defined in GHC.Hs.Decls type Anno (SourceText, RuleName) = SrcAnn NoEpAnns
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) = SrcSpanAnnA

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

Instances details

type XRec (GhcPass p) a |
Instance details Defined in GHC.Hs.Extension type XRec (GhcPass p) a = GenLocated (Anno a) a

data DataConCantHappen #

#### Instances

Instances details

Data DataConCantHappen |

Instance details

Defined in Language.Haskell.Syntax.Extension

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataConCantHappen -> c DataConCantHappen #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataConCantHappen #

toConstr :: DataConCantHappen -> Constr #

dataTypeOf :: DataConCantHappen -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataConCantHappen) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataConCantHappen) #

gmapT :: (forall b. Data b => b -> b) -> DataConCantHappen -> DataConCantHappen #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r #

gmapQ :: (forall d. Data d => d -> u) -> DataConCantHappen -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DataConCantHappen -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataConCantHappen -> m DataConCantHappen #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataConCantHappen -> m DataConCantHappen #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataConCantHappen -> m DataConCantHappen #

Eq DataConCantHappen |
Instance details Defined in Language.Haskell.Syntax.Extension Methods (==) :: DataConCantHappen -> DataConCantHappen -> Bool # (/=) :: DataConCantHappen -> DataConCantHappen -> Bool #
Ord DataConCantHappen |

Instance details

Defined in Language.Haskell.Syntax.Extension

Methods

compare :: DataConCantHappen -> DataConCantHappen -> Ordering #

(<) :: DataConCantHappen -> DataConCantHappen -> Bool #

(<=) :: DataConCantHappen -> DataConCantHappen -> Bool #

(>) :: DataConCantHappen -> DataConCantHappen -> Bool #

(>=) :: DataConCantHappen -> DataConCantHappen -> Bool #

max :: DataConCantHappen -> DataConCantHappen -> DataConCantHappen #

min :: DataConCantHappen -> DataConCantHappen -> DataConCantHappen #

noExtField :: NoExtField #

Used when constructing a term with an unused extension point.

dataConCantHappen :: DataConCantHappen -> a #

Eliminate a `DataConCantHappen`. See Note [Constructor cannot occur].

newtype ModuleName #

A ModuleName is essentially a simple string, e.g. `Data.List`.

Constructors

ModuleName FastString |

#### Instances

Instances details

Data ModuleName |

Instance details

Defined in Language.Haskell.Syntax.Module.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModuleName -> c ModuleName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ModuleName #

toConstr :: ModuleName -> Constr #

dataTypeOf :: ModuleName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ModuleName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ModuleName) #

gmapT :: (forall b. Data b => b -> b) -> ModuleName -> ModuleName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ModuleName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ModuleName -> r #

gmapQ :: (forall d. Data d => d -> u) -> ModuleName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ModuleName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleName -> m ModuleName #

Show ModuleName |
Instance details Defined in Language.Haskell.Syntax.Module.Name Methods showsPrec :: Int -> ModuleName -> ShowS # show :: ModuleName -> String # showList :: [ModuleName] -> ShowS #
NFData ModuleName |
Instance details Defined in Language.Haskell.Syntax.Module.Name Methods rnf :: ModuleName -> () #
Uniquable ModuleName |
Instance details Defined in GHC.Types.Unique Methods getUnique :: ModuleName -> Unique #
Binary ModuleName |
Instance details Defined in GHC.Utils.Binary Methods put_ :: BinHandle -> ModuleName -> IO () # put :: BinHandle -> ModuleName -> IO (Bin ModuleName) # get :: BinHandle -> IO ModuleName #
Outputable ModuleName |
Instance details Defined in GHC.Utils.Outputable Methods ppr :: ModuleName -> SDoc #
ExactPrint ModuleName |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ModuleName -> Entry # setAnnotationAnchor :: ModuleName -> Anchor -> EpAnnComments -> ModuleName # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ModuleName -> EP w m ModuleName #
Eq ModuleName |
Instance details Defined in Language.Haskell.Syntax.Module.Name Methods (==) :: ModuleName -> ModuleName -> Bool # (/=) :: ModuleName -> ModuleName -> Bool #
Ord ModuleName |
Instance details Defined in Language.Haskell.Syntax.Module.Name Methods compare :: ModuleName -> ModuleName -> Ordering # (<) :: ModuleName -> ModuleName -> Bool # (<=) :: ModuleName -> ModuleName -> Bool # (>) :: ModuleName -> ModuleName -> Bool # (>=) :: ModuleName -> ModuleName -> Bool # max :: ModuleName -> ModuleName -> ModuleName # min :: ModuleName -> ModuleName -> ModuleName #
ToHie (IEContext (LocatedA ModuleName)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type]
type Anno ModuleName |
Instance details Defined in GHC.Hs type Anno ModuleName = SrcSpanAnnA
type Anno ModuleName |
Instance details Defined in GHC.Hs.ImpExp type Anno ModuleName = SrcSpanAnnA

stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering #

Compares module names lexically, rather than by their `Unique`s

moduleNameFS :: ModuleName -> FastString #

moduleNameString :: ModuleName -> String #

mkModuleName :: String -> ModuleName #

mkModuleNameFS :: FastString -> ModuleName #

moduleNameSlashes :: ModuleName -> String #

Returns the string version of the module name, with dots replaced by slashes.

moduleNameColons :: ModuleName -> String #

Returns the string version of the module name, with dots replaced by colons.

data IsBootInterface #

Indicates whether a module name is referring to a boot interface (hs-boot file) or regular module (hs file). We need to treat boot modules specially when building compilation graphs, since they break cycles. Regular source files and signature files are treated equivalently.

Constructors

NotBoot |
IsBoot |

#### Instances

Instances details

Data IsBootInterface |

Instance details

Defined in Language.Haskell.Syntax.ImpExp

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IsBootInterface -> c IsBootInterface #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IsBootInterface #

toConstr :: IsBootInterface -> Constr #

dataTypeOf :: IsBootInterface -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IsBootInterface) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IsBootInterface) #

gmapT :: (forall b. Data b => b -> b) -> IsBootInterface -> IsBootInterface #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IsBootInterface -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IsBootInterface -> r #

gmapQ :: (forall d. Data d => d -> u) -> IsBootInterface -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> IsBootInterface -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> IsBootInterface -> m IsBootInterface #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IsBootInterface -> m IsBootInterface #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IsBootInterface -> m IsBootInterface #

Show IsBootInterface |
Instance details Defined in Language.Haskell.Syntax.ImpExp Methods showsPrec :: Int -> IsBootInterface -> ShowS # show :: IsBootInterface -> String # showList :: [IsBootInterface] -> ShowS #
Eq IsBootInterface |
Instance details Defined in Language.Haskell.Syntax.ImpExp Methods (==) :: IsBootInterface -> IsBootInterface -> Bool # (/=) :: IsBootInterface -> IsBootInterface -> Bool #
Ord IsBootInterface |

Instance details

Defined in Language.Haskell.Syntax.ImpExp

Methods

compare :: IsBootInterface -> IsBootInterface -> Ordering #

(<) :: IsBootInterface -> IsBootInterface -> Bool #

(<=) :: IsBootInterface -> IsBootInterface -> Bool #

(>) :: IsBootInterface -> IsBootInterface -> Bool #

(>=) :: IsBootInterface -> IsBootInterface -> Bool #

max :: IsBootInterface -> IsBootInterface -> IsBootInterface #

min :: IsBootInterface -> IsBootInterface -> IsBootInterface #

type Mult = Type #

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 LayoutInfo pass #

Layout information for declarations.

Constructors

ExplicitBraces !(LHsToken "{" pass) !(LHsToken "}" pass)

Explicit braces written by the user.

    class C a where { foo :: a; bar :: a }

VirtualBraces

Virtual braces inserted by the layout algorithm.

    class C a where
      foo :: a
      bar :: a

Fields

- !Int

  Layout column (indentation level, begins at 1)

NoLayoutInfo | Empty or compiler-generated blocks do not have layout information associated with them.

#### Instances

Instances details

Typeable p => Data (LayoutInfo (GhcPass p)) |

Instance details

Defined in GHC.Hs.Extension

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LayoutInfo (GhcPass p) -> c (LayoutInfo (GhcPass p)) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LayoutInfo (GhcPass p)) #

toConstr :: LayoutInfo (GhcPass p) -> Constr #

dataTypeOf :: LayoutInfo (GhcPass p) -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (LayoutInfo (GhcPass p))) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (LayoutInfo (GhcPass p))) #

gmapT :: (forall b. Data b => b -> b) -> LayoutInfo (GhcPass p) -> LayoutInfo (GhcPass p) #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LayoutInfo (GhcPass p) -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LayoutInfo (GhcPass p) -> r #

gmapQ :: (forall d. Data d => d -> u) -> LayoutInfo (GhcPass p) -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LayoutInfo (GhcPass p) -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LayoutInfo (GhcPass p) -> m (LayoutInfo (GhcPass p)) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LayoutInfo (GhcPass p) -> m (LayoutInfo (GhcPass p)) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LayoutInfo (GhcPass p) -> m (LayoutInfo (GhcPass p)) #

data HsUniToken (tok :: Symbol) (utok :: Symbol) #

With `UnicodeSyntax`, there might be multiple ways to write the same token. For example an arrow could be either `->` or `→`. This choice must be recorded in order to exactprint such tokens, so instead of `HsToken "->"` we introduce `HsUniToken "->" "→"`.

See also `IsUnicodeSyntax` in `GHC.Parser.Annotation`; we do not use here to avoid a dependency.

Constructors

HsNormalTok |
HsUnicodeTok |

#### Instances

Instances details

(KnownSymbol tok, KnownSymbol utok) => Data (HsUniToken tok utok) |

Instance details

Defined in Language.Haskell.Syntax.Concrete

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsUniToken tok utok -> c (HsUniToken tok utok) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsUniToken tok utok) #

toConstr :: HsUniToken tok utok -> Constr #

dataTypeOf :: HsUniToken tok utok -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsUniToken tok utok)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsUniToken tok utok)) #

gmapT :: (forall b. Data b => b -> b) -> HsUniToken tok utok -> HsUniToken tok utok #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsUniToken tok utok -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsUniToken tok utok -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsUniToken tok utok -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsUniToken tok utok -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsUniToken tok utok -> m (HsUniToken tok utok) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsUniToken tok utok -> m (HsUniToken tok utok) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsUniToken tok utok -> m (HsUniToken tok utok) #

type Anno (HsUniToken tok utok) |
Instance details Defined in GHC.Hs.Extension type Anno (HsUniToken tok utok) = TokenLocation

data HsToken (tok :: Symbol) #

A token stored in the syntax tree. For example, when parsing a let-expression, we store `HsToken "let"` and `HsToken "in"`. The locations of those tokens can be used to faithfully reproduce (exactprint) the original program text.

Constructors

HsTok |

#### Instances

Instances details

KnownSymbol tok => Data (HsToken tok) |

Instance details

Defined in Language.Haskell.Syntax.Concrete

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsToken tok -> c (HsToken tok) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsToken tok) #

toConstr :: HsToken tok -> Constr #

dataTypeOf :: HsToken tok -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsToken tok)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsToken tok)) #

gmapT :: (forall b. Data b => b -> b) -> HsToken tok -> HsToken tok #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsToken tok -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsToken tok -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsToken tok -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsToken tok -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsToken tok -> m (HsToken tok) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsToken tok -> m (HsToken tok) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsToken tok -> m (HsToken tok) #

Eq (HsToken tok) |
Instance details Defined in Language.Haskell.Syntax.Concrete Methods (==) :: HsToken tok -> HsToken tok -> Bool # (/=) :: HsToken tok -> HsToken tok -> Bool #
type Anno (HsToken tok) |
Instance details Defined in GHC.Hs.Extension type Anno (HsToken tok) = TokenLocation

type LHsUniToken (tok :: Symbol) (utok :: Symbol) p = XRec p (HsUniToken tok utok) #

type LHsToken (tok :: Symbol) p = XRec p (HsToken tok) #

newtype HsDocStringChunk #

A contiguous chunk of documentation

Constructors

HsDocStringChunk ByteString |

#### Instances

Instances details

Data HsDocStringChunk |

Instance details

Defined in GHC.Hs.DocString

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsDocStringChunk -> c HsDocStringChunk #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsDocStringChunk #

toConstr :: HsDocStringChunk -> Constr #

dataTypeOf :: HsDocStringChunk -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsDocStringChunk) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsDocStringChunk) #

gmapT :: (forall b. Data b => b -> b) -> HsDocStringChunk -> HsDocStringChunk #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsDocStringChunk -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsDocStringChunk -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsDocStringChunk -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsDocStringChunk -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsDocStringChunk -> m HsDocStringChunk #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsDocStringChunk -> m HsDocStringChunk #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsDocStringChunk -> m HsDocStringChunk #

Show HsDocStringChunk |
Instance details Defined in GHC.Hs.DocString Methods showsPrec :: Int -> HsDocStringChunk -> ShowS # show :: HsDocStringChunk -> String # showList :: [HsDocStringChunk] -> ShowS #
NFData HsDocStringChunk |
Instance details Defined in GHC.Hs.DocString Methods rnf :: HsDocStringChunk -> () #
Binary HsDocStringChunk |
Instance details Defined in GHC.Hs.DocString Methods put_ :: BinHandle -> HsDocStringChunk -> IO () # put :: BinHandle -> HsDocStringChunk -> IO (Bin HsDocStringChunk) # get :: BinHandle -> IO HsDocStringChunk #
Outputable HsDocStringChunk |
Instance details Defined in GHC.Hs.DocString Methods ppr :: HsDocStringChunk -> SDoc #
ExactPrint HsDocStringChunk |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsDocStringChunk -> Entry # setAnnotationAnchor :: HsDocStringChunk -> Anchor -> EpAnnComments -> HsDocStringChunk # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsDocStringChunk -> EP w m HsDocStringChunk #
Eq HsDocStringChunk |
Instance details Defined in GHC.Hs.DocString Methods (==) :: HsDocStringChunk -> HsDocStringChunk -> Bool # (/=) :: HsDocStringChunk -> HsDocStringChunk -> Bool #
Ord HsDocStringChunk |

Instance details

Defined in GHC.Hs.DocString

Methods

compare :: HsDocStringChunk -> HsDocStringChunk -> Ordering #

(<) :: HsDocStringChunk -> HsDocStringChunk -> Bool #

(<=) :: HsDocStringChunk -> HsDocStringChunk -> Bool #

(>) :: HsDocStringChunk -> HsDocStringChunk -> Bool #

(>=) :: HsDocStringChunk -> HsDocStringChunk -> Bool #

max :: HsDocStringChunk -> HsDocStringChunk -> HsDocStringChunk #

min :: HsDocStringChunk -> HsDocStringChunk -> HsDocStringChunk #

type LHsDocStringChunk = Located HsDocStringChunk #

data HsDocStringDecorator #

Constructors

HsDocStringNext | '|' is the decorator
HsDocStringPrevious | `^` is the decorator
HsDocStringNamed !String | '$string' is the decorator
HsDocStringGroup !Int | The decorator is the given number of `*`s

#### Instances

Instances details

Data HsDocStringDecorator |

Instance details

Defined in GHC.Hs.DocString

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsDocStringDecorator -> c HsDocStringDecorator #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsDocStringDecorator #

toConstr :: HsDocStringDecorator -> Constr #

dataTypeOf :: HsDocStringDecorator -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsDocStringDecorator) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsDocStringDecorator) #

gmapT :: (forall b. Data b => b -> b) -> HsDocStringDecorator -> HsDocStringDecorator #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsDocStringDecorator -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsDocStringDecorator -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsDocStringDecorator -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsDocStringDecorator -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsDocStringDecorator -> m HsDocStringDecorator #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsDocStringDecorator -> m HsDocStringDecorator #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsDocStringDecorator -> m HsDocStringDecorator #

Show HsDocStringDecorator |
Instance details Defined in GHC.Hs.DocString Methods showsPrec :: Int -> HsDocStringDecorator -> ShowS # show :: HsDocStringDecorator -> String # showList :: [HsDocStringDecorator] -> ShowS #
NFData HsDocStringDecorator |
Instance details Defined in GHC.Hs.DocString Methods rnf :: HsDocStringDecorator -> () #
Binary HsDocStringDecorator |
Instance details Defined in GHC.Hs.DocString Methods put_ :: BinHandle -> HsDocStringDecorator -> IO () # put :: BinHandle -> HsDocStringDecorator -> IO (Bin HsDocStringDecorator) # get :: BinHandle -> IO HsDocStringDecorator #
Outputable HsDocStringDecorator |
Instance details Defined in GHC.Hs.DocString Methods ppr :: HsDocStringDecorator -> SDoc #
Eq HsDocStringDecorator |
Instance details Defined in GHC.Hs.DocString Methods (==) :: HsDocStringDecorator -> HsDocStringDecorator -> Bool # (/=) :: HsDocStringDecorator -> HsDocStringDecorator -> Bool #
Ord HsDocStringDecorator |

Instance details

Defined in GHC.Hs.DocString

Methods

compare :: HsDocStringDecorator -> HsDocStringDecorator -> Ordering #

(<) :: HsDocStringDecorator -> HsDocStringDecorator -> Bool #

(<=) :: HsDocStringDecorator -> HsDocStringDecorator -> Bool #

(>) :: HsDocStringDecorator -> HsDocStringDecorator -> Bool #

(>=) :: HsDocStringDecorator -> HsDocStringDecorator -> Bool #

max :: HsDocStringDecorator -> HsDocStringDecorator -> HsDocStringDecorator #

min :: HsDocStringDecorator -> HsDocStringDecorator -> HsDocStringDecorator #

data HsDocString #

Haskell Documentation String

Rich structure to support exact printing The location around each chunk doesn't include the decorators

Constructors

MultiLineDocString !HsDocStringDecorator !(NonEmpty LHsDocStringChunk) | The first chunk is preceded by "-- decorator" and each following chunk is preceded by "--" Example: -- | This is a docstring for `foo`. It is the line with the decorator '|' and is always included -- This continues that docstring and is the second element in the NonEmpty list foo :: a -> a
NestedDocString !HsDocStringDecorator LHsDocStringChunk | The docstring is preceded by "{-decorator" and followed by "-}" The chunk contains balanced pairs of '{-' and '-}'
GeneratedDocString HsDocStringChunk | A docstring generated either internally or via TH Pretty printed with the '-- |' decorator This is because it may contain unbalanced pairs of '{-' and '-}' and not form a valid `NestedDocString`

#### Instances

Instances details

Data HsDocString |

Instance details

Defined in GHC.Hs.DocString

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsDocString -> c HsDocString #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsDocString #

toConstr :: HsDocString -> Constr #

dataTypeOf :: HsDocString -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsDocString) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsDocString) #

gmapT :: (forall b. Data b => b -> b) -> HsDocString -> HsDocString #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsDocString -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsDocString -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsDocString -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsDocString -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsDocString -> m HsDocString #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsDocString -> m HsDocString #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsDocString -> m HsDocString #

Show HsDocString |
Instance details Defined in GHC.Hs.DocString Methods showsPrec :: Int -> HsDocString -> ShowS # show :: HsDocString -> String # showList :: [HsDocString] -> ShowS #
NFData HsDocString |
Instance details Defined in GHC.Hs.DocString Methods rnf :: HsDocString -> () #
Binary HsDocString |
Instance details Defined in GHC.Hs.DocString Methods put_ :: BinHandle -> HsDocString -> IO () # put :: BinHandle -> HsDocString -> IO (Bin HsDocString) # get :: BinHandle -> IO HsDocString #
Outputable HsDocString |
Instance details Defined in GHC.Hs.DocString Methods ppr :: HsDocString -> SDoc #
ExactPrint HsDocString |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsDocString -> Entry # setAnnotationAnchor :: HsDocString -> Anchor -> EpAnnComments -> HsDocString # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsDocString -> EP w m HsDocString #
Eq HsDocString |
Instance details Defined in GHC.Hs.DocString Methods (==) :: HsDocString -> HsDocString -> Bool # (/=) :: HsDocString -> HsDocString -> Bool #
ToHie (LHsDoc GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LHsDoc GhcRn -> HieM [HieAST Type]

type LHsDocString = Located HsDocString #

pprWithDocString :: HsDocString -> SDoc -> SDoc #

Annotate a pretty printed thing with its doc The docstring comes after if is `HsDocStringPrevious` Otherwise it comes before. Note - we convert MultiLineDocString HsDocStringPrevious to HsDocStringNext because we can't control if something else will be pretty printed on the same line

mkHsDocStringChunk :: String -> HsDocStringChunk #

mkHsDocStringChunkUtf8ByteString :: ByteString -> HsDocStringChunk #

Create a `HsDocString` from a UTF8-encoded `ByteString`.

unpackHDSC :: HsDocStringChunk -> String #

mkGeneratedHsDocString :: String -> HsDocString #

isEmptyDocString :: HsDocString -> Bool #

docStringChunks :: HsDocString -> [LHsDocStringChunk] #

pprHsDocString :: HsDocString -> SDoc #

Pretty print with decorators, exactly as the user wrote it

pprHsDocStrings :: [HsDocString] -> SDoc #

exactPrintHsDocString :: HsDocString -> String #

Pretty print with decorators, exactly as the user wrote it

renderHsDocString :: HsDocString -> String #

Just get the docstring, without any decorators

renderHsDocStrings :: [HsDocString] -> String #

Just get the docstring, without any decorators Separates docstrings using "nn", which is how haddock likes to render them

type LPat p = XRec p (Pat p) #

type LHsExpr p #

Arguments

= XRec p (HsExpr p) | May have `AnnKeywordId` : `AnnComma` when in a list

Located Haskell Expression

type family SyntaxExpr p #

Syntax Expression

SyntaxExpr is represents the function used in interpreting rebindable syntax. In the parser, we have no information to supply; in the renamer, we have the name of the function (but see Note [Monad fail : Rebindable syntax, overloaded strings] for a wrinkle) and in the type-checker we have a more elaborate structure `SyntaxExprTc`.

In some contexts, rebindable syntax is not implemented, and so we have constructors to represent that possibility in both the renamer and typechecker instantiations.

E.g. `(>>=)` is filled in before the renamer by the appropriate `Name` for `(>>=)`, and then instantiated by the type checker with its type args etc

#### Instances

Instances details

type SyntaxExpr (GhcPass p) |
Instance details Defined in GHC.Hs.Expr type SyntaxExpr (GhcPass p) = SyntaxExprGhc p

data GRHSs p body #

Guarded Right-Hand Sides

GRHSs are used both for pattern bindings and for Matches

- `AnnKeywordId` : `AnnVbar`, `AnnEqual`,`AnnWhere`, `AnnOpen`,`AnnClose` `AnnRarrow`,`AnnSemi`

Constructors

GRHSs |

Fields

- grhssExt :: XCGRHSs p body
- grhssGRHSs :: [LGRHS p body]

  Guarded RHSs

- grhssLocalBinds :: HsLocalBinds p

  The where clause

XGRHSs !(XXGRHSs p body) |

#### Instances

Instances details

(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
ExactPrint (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) #

data MatchGroup p body #

Constructors

MG |

Fields

- mg_ext :: XMG p body
- mg_alts :: XRec p [LMatch p body]

XMatchGroup !(XXMatchGroup p body) |

#### Instances

Instances details

(HiePass p, AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
ExactPrint (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) #

data PromotionFlag #

Is a TyCon a promoted data constructor or just a normal type constructor?

Constructors

NotPromoted |
IsPromoted |

#### Instances

Instances details

Data PromotionFlag |

Instance details

Defined in Language.Haskell.Syntax.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PromotionFlag -> c PromotionFlag #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PromotionFlag #

toConstr :: PromotionFlag -> Constr #

dataTypeOf :: PromotionFlag -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PromotionFlag) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PromotionFlag) #

gmapT :: (forall b. Data b => b -> b) -> PromotionFlag -> PromotionFlag #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PromotionFlag -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PromotionFlag -> r #

gmapQ :: (forall d. Data d => d -> u) -> PromotionFlag -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PromotionFlag -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PromotionFlag -> m PromotionFlag #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PromotionFlag -> m PromotionFlag #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PromotionFlag -> m PromotionFlag #

Eq PromotionFlag |
Instance details Defined in Language.Haskell.Syntax.Type Methods (==) :: PromotionFlag -> PromotionFlag -> Bool # (/=) :: PromotionFlag -> PromotionFlag -> Bool #

isPromoted :: PromotionFlag -> Bool #

data CImportSpec #

Constructors

CLabel CLabelString |
CFunction CCallTarget |
CWrapper |

#### Instances

Instances details

Data CImportSpec |

Instance details

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 NoEpAnns #

Constructors

NoEpAnns |

#### Instances

Instances details

Data NoEpAnns |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NoEpAnns -> c NoEpAnns #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NoEpAnns #

toConstr :: NoEpAnns -> Constr #

dataTypeOf :: NoEpAnns -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NoEpAnns) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NoEpAnns) #

gmapT :: (forall b. Data b => b -> b) -> NoEpAnns -> NoEpAnns #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NoEpAnns -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NoEpAnns -> r #

gmapQ :: (forall d. Data d => d -> u) -> NoEpAnns -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NoEpAnns -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NoEpAnns -> m NoEpAnns #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NoEpAnns -> m NoEpAnns #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NoEpAnns -> m NoEpAnns #

Semigroup NoEpAnns |
Instance details Defined in GHC.Parser.Annotation Methods (<>) :: NoEpAnns -> NoEpAnns -> NoEpAnns # sconcat :: NonEmpty NoEpAnns -> NoEpAnns # stimes :: Integral b => b -> NoEpAnns -> NoEpAnns #
Outputable NoEpAnns |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: NoEpAnns -> SDoc #
Eq NoEpAnns |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: NoEpAnns -> NoEpAnns -> Bool # (/=) :: NoEpAnns -> NoEpAnns -> Bool #
Ord NoEpAnns |
Instance details Defined in GHC.Parser.Annotation Methods compare :: NoEpAnns -> NoEpAnns -> Ordering # (<) :: NoEpAnns -> NoEpAnns -> Bool # (<=) :: NoEpAnns -> NoEpAnns -> Bool # (>) :: NoEpAnns -> NoEpAnns -> Bool # (>=) :: NoEpAnns -> NoEpAnns -> Bool # max :: NoEpAnns -> NoEpAnns -> NoEpAnns # min :: NoEpAnns -> NoEpAnns -> NoEpAnns #
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p))) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn)) -> HieM [HieAST Type]
ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)] -> HieM [HieAST Type]
HasHaddock (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)] -> HdkA (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)])
ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsDerivingClause GhcRn) -> HieM [HieAST Type]
ToHie (LocatedAn NoEpAnns (InjectivityAnn GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (InjectivityAnn GhcRn) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedAn NoEpAnns (HsCmdTop (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsCmdTop (GhcPass p)) -> HieM [HieAST Type]
ToHie (LocatedAn NoEpAnns HsIPName) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns HsIPName -> HieM [HieAST Type]
HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedAn NoEpAnns (HsDerivingClause GhcPs) -> HdkA (LocatedAn NoEpAnns (HsDerivingClause GhcPs))
ExactPrint a => ExactPrint (LocatedAn NoEpAnns a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedAn NoEpAnns a -> Entry # setAnnotationAnchor :: LocatedAn NoEpAnns a -> Anchor -> EpAnnComments -> LocatedAn NoEpAnns a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedAn NoEpAnns a -> EP w m (LocatedAn NoEpAnns a) #
ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) #

ExactPrint (LocatedA body) => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> EP w m (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) #

ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) #

type EpAnnCO #

Arguments

= EpAnn NoEpAnns | Api Annotations for comments only

data AnnSortKey #

Captures the sort order of sub elements. This is needed when the sub-elements have been split (as in a HsLocalBind which holds separate binds and sigs) or for infix patterns where the order has been re-arranged. It is captured explicitly so that after the Delta phase a SrcSpan is used purely as an index into the annotations, allowing transformations of the AST including the introduction of new Located items or re-arranging existing ones.

Constructors

NoAnnSortKey |
AnnSortKey [RealSrcSpan] |

#### Instances

Instances details

Data AnnSortKey |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnSortKey -> c AnnSortKey #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnSortKey #

toConstr :: AnnSortKey -> Constr #

dataTypeOf :: AnnSortKey -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnSortKey) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnSortKey) #

gmapT :: (forall b. Data b => b -> b) -> AnnSortKey -> AnnSortKey #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnSortKey -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnSortKey -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnSortKey -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnSortKey -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnSortKey -> m AnnSortKey #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnSortKey -> m AnnSortKey #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnSortKey -> m AnnSortKey #

Monoid AnnSortKey |
Instance details Defined in GHC.Parser.Annotation Methods mempty :: AnnSortKey # mappend :: AnnSortKey -> AnnSortKey -> AnnSortKey # mconcat :: [AnnSortKey] -> AnnSortKey #
Semigroup AnnSortKey |
Instance details Defined in GHC.Parser.Annotation Methods (<>) :: AnnSortKey -> AnnSortKey -> AnnSortKey # sconcat :: NonEmpty AnnSortKey -> AnnSortKey # stimes :: Integral b => b -> AnnSortKey -> AnnSortKey #
Outputable AnnSortKey |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: AnnSortKey -> SDoc #
Eq AnnSortKey |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: AnnSortKey -> AnnSortKey -> Bool # (/=) :: AnnSortKey -> AnnSortKey -> Bool #

data AnnPragma #

exact print annotation used for capturing the locations of annotations in pragmas.

Constructors

AnnPragma |

Fields

- apr_open :: AddEpAnn
- apr_close :: AddEpAnn
- apr_rest :: [AddEpAnn]

#### Instances

Instances details

Data AnnPragma |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnPragma -> c AnnPragma #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnPragma #

toConstr :: AnnPragma -> Constr #

dataTypeOf :: AnnPragma -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnPragma) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnPragma) #

gmapT :: (forall b. Data b => b -> b) -> AnnPragma -> AnnPragma #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnPragma -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnPragma -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnPragma -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnPragma -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnPragma -> m AnnPragma #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnPragma -> m AnnPragma #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnPragma -> m AnnPragma #

Outputable AnnPragma |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: AnnPragma -> SDoc #
Eq AnnPragma |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: AnnPragma -> AnnPragma -> Bool # (/=) :: AnnPragma -> AnnPragma -> Bool #
ToHie (LocatedP OverlapMode) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedP OverlapMode -> HieM [HieAST Type]
ExactPrint (LocatedP OverlapMode) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP OverlapMode -> Entry # setAnnotationAnchor :: LocatedP OverlapMode -> Anchor -> EpAnnComments -> LocatedP OverlapMode # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP OverlapMode -> EP w m (LocatedP OverlapMode) #
ExactPrint (LocatedP CType) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP CType -> Entry # setAnnotationAnchor :: LocatedP CType -> Anchor -> EpAnnComments -> LocatedP CType # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP CType -> EP w m (LocatedP CType) #
ExactPrint (LocatedP (WarningTxt GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP (WarningTxt GhcPs) -> Entry # setAnnotationAnchor :: LocatedP (WarningTxt GhcPs) -> Anchor -> EpAnnComments -> LocatedP (WarningTxt GhcPs) # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP (WarningTxt GhcPs) -> EP w m (LocatedP (WarningTxt GhcPs)) #

data NameAdornment #

A `NameAnn` can capture the locations of surrounding adornments, such as parens or backquotes. This data type identifies what particular pair are being used.

Constructors

NameParens | '(' ')'
NameParensHash | '(#' '#)'
NameBackquotes | '`'
NameSquare | '[' ']'

#### Instances

Instances details

Data NameAdornment |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NameAdornment -> c NameAdornment #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NameAdornment #

toConstr :: NameAdornment -> Constr #

dataTypeOf :: NameAdornment -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NameAdornment) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NameAdornment) #

gmapT :: (forall b. Data b => b -> b) -> NameAdornment -> NameAdornment #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NameAdornment -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NameAdornment -> r #

gmapQ :: (forall d. Data d => d -> u) -> NameAdornment -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NameAdornment -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NameAdornment -> m NameAdornment #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NameAdornment -> m NameAdornment #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NameAdornment -> m NameAdornment #

Outputable NameAdornment |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: NameAdornment -> SDoc #
Eq NameAdornment |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: NameAdornment -> NameAdornment -> Bool # (/=) :: NameAdornment -> NameAdornment -> Bool #
Ord NameAdornment |

Instance details

Defined in GHC.Parser.Annotation

Methods

compare :: NameAdornment -> NameAdornment -> Ordering #

(<) :: NameAdornment -> NameAdornment -> Bool #

(<=) :: NameAdornment -> NameAdornment -> Bool #

(>) :: NameAdornment -> NameAdornment -> Bool #

(>=) :: NameAdornment -> NameAdornment -> Bool #

max :: NameAdornment -> NameAdornment -> NameAdornment #

min :: NameAdornment -> NameAdornment -> NameAdornment #

data NameAnn #

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 ``foo``, `(bar)`

Fields

- nann_adornment :: NameAdornment
- nann_open :: EpaLocation
- nann_name :: EpaLocation
- nann_close :: EpaLocation
- nann_trailing :: [TrailingAnn]

NameAnnCommas | Used for `(,,,)`, or @()#

Fields

- nann_adornment :: NameAdornment
- nann_open :: EpaLocation
- nann_commas :: [EpaLocation]
- nann_close :: EpaLocation
- nann_trailing :: [TrailingAnn]

NameAnnBars | Used for `(# | | #)`

Fields

- nann_adornment :: NameAdornment
- nann_open :: EpaLocation
- nann_bars :: [EpaLocation]
- nann_close :: EpaLocation
- nann_trailing :: [TrailingAnn]

NameAnnOnly | Used for `()`, `(##)`, `[]`

Fields

- nann_adornment :: NameAdornment
- nann_open :: EpaLocation
- nann_close :: EpaLocation
- nann_trailing :: [TrailingAnn]

NameAnnRArrow | Used for `->`, as an identifier

Fields

- nann_unicode :: Bool
- nann_mopen :: Maybe EpaLocation
- nann_name :: EpaLocation
- nann_mclose :: Maybe EpaLocation
- nann_trailing :: [TrailingAnn]

NameAnnQuote | Used for an item with a leading `'`. The annotation for unquoted item is stored in `nann_quoted`.

Fields

- nann_quote :: EpaLocation
- nann_quoted :: SrcSpanAnnN
- nann_trailing :: [TrailingAnn]

NameAnnTrailing | Used when adding a `TrailingAnn` to an existing `LocatedN` which has no Api Annotation (via the `EpAnnNotUsed` constructor.

Fields

- nann_trailing :: [TrailingAnn]

#### Instances

Instances details

Data NameAnn |

Instance details

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 |
Instance details Defined in GHC.Parser.Annotation Methods mempty :: NameAnn # mappend :: NameAnn -> NameAnn -> NameAnn # mconcat :: [NameAnn] -> NameAnn #
Semigroup NameAnn |
Instance details Defined in GHC.Parser.Annotation Methods (<>) :: NameAnn -> NameAnn -> NameAnn # sconcat :: NonEmpty NameAnn -> NameAnn # stimes :: Integral b => b -> NameAnn -> NameAnn #
Outputable NameAnn |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: NameAnn -> SDoc #
Eq NameAnn |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: NameAnn -> NameAnn -> Bool # (/=) :: NameAnn -> NameAnn -> Bool #
HasLoc (LocatedN a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: LocatedN a -> SrcSpan
ToHie (LBooleanFormula (LocatedN Name)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LBooleanFormula (LocatedN Name) -> HieM [HieAST Type]
ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (LocatedN a) -> HieM [HieAST Type]
ExactPrint (BooleanFormula (LocatedN RdrName)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: BooleanFormula (LocatedN RdrName) -> Entry #

setAnnotationAnchor :: BooleanFormula (LocatedN RdrName) -> Anchor -> EpAnnComments -> BooleanFormula (LocatedN RdrName) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => BooleanFormula (LocatedN RdrName) -> EP w m (BooleanFormula (LocatedN RdrName)) #

ExactPrint (LocatedL (BooleanFormula (LocatedN RdrName))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Entry #

setAnnotationAnchor :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Anchor -> EpAnnComments -> LocatedL (BooleanFormula (LocatedN RdrName)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL (BooleanFormula (LocatedN RdrName)) -> EP w m (LocatedL (BooleanFormula (LocatedN RdrName))) #

ExactPrint (LocatedN RdrName) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedN RdrName -> Entry # setAnnotationAnchor :: LocatedN RdrName -> Anchor -> EpAnnComments -> LocatedN RdrName # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedN RdrName -> EP w m (LocatedN RdrName) #
type Anno (LocatedN Name) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Name) = SrcSpan
type Anno (LocatedN RdrName) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN RdrName) = SrcSpan
type Anno (LocatedN Id) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Id) = SrcSpan
type Anno [LocatedN Name] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Name] = SrcSpan
type Anno [LocatedN RdrName] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN RdrName] = SrcSpan
type Anno [LocatedN Id] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Id] = SrcSpan

data AnnContext #

Exact print annotation for the `Context` data type.

Constructors

AnnContext |

Fields

- ac_darrow :: Maybe (IsUnicodeSyntax, EpaLocation)

  location and encoding of the '=>', if present.

- ac_open :: [EpaLocation]

  zero or more opening parentheses.

- ac_close :: [EpaLocation]

  zero or more closing parentheses.

#### Instances

Instances details

Data AnnContext |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnContext -> c AnnContext #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnContext #

toConstr :: AnnContext -> Constr #

dataTypeOf :: AnnContext -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnContext) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnContext) #

gmapT :: (forall b. Data b => b -> b) -> AnnContext -> AnnContext #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnContext -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnContext -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnContext -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnContext -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnContext -> m AnnContext #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnContext -> m AnnContext #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnContext -> m AnnContext #

Outputable AnnContext |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: AnnContext -> SDoc #
ToHie (LocatedC (DerivClauseTys GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC (DerivClauseTys GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC [LocatedA (HsType GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC [LocatedA (HsType GhcRn)] -> HieM [HieAST Type]
HasHaddock (LocatedC (DerivClauseTys GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedC (DerivClauseTys GhcPs) -> HdkA (LocatedC (DerivClauseTys GhcPs))
ExactPrint a => ExactPrint (LocatedC a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedC a -> Entry # setAnnotationAnchor :: LocatedC a -> Anchor -> EpAnnComments -> LocatedC a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedC a -> EP w m (LocatedC a) #

data ParenType #

Detail of the "brackets" used in an `AnnParen` exact print annotation.

Constructors

AnnParens | '(', ')'
AnnParensHash | '(#', '#)'
AnnParensSquare | '[', ']'

#### Instances

Instances details

Data ParenType |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ParenType -> c ParenType #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ParenType #

toConstr :: ParenType -> Constr #

dataTypeOf :: ParenType -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ParenType) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ParenType) #

gmapT :: (forall b. Data b => b -> b) -> ParenType -> ParenType #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ParenType -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ParenType -> r #

gmapQ :: (forall d. Data d => d -> u) -> ParenType -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ParenType -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ParenType -> m ParenType #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ParenType -> m ParenType #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ParenType -> m ParenType #

Eq ParenType |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: ParenType -> ParenType -> Bool # (/=) :: ParenType -> ParenType -> Bool #
Ord ParenType |
Instance details Defined in GHC.Parser.Annotation Methods compare :: ParenType -> ParenType -> Ordering # (<) :: ParenType -> ParenType -> Bool # (<=) :: ParenType -> ParenType -> Bool # (>) :: ParenType -> ParenType -> Bool # (>=) :: ParenType -> ParenType -> Bool # max :: ParenType -> ParenType -> ParenType # min :: ParenType -> ParenType -> ParenType #

data AnnParen #

exact print annotation for an item having surrounding "brackets", such as tuples or lists

Constructors

AnnParen |

Fields

- ap_adornment :: ParenType
- ap_open :: EpaLocation
- ap_close :: EpaLocation

#### Instances

Instances details

Data AnnParen |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnParen -> c AnnParen #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnParen #

toConstr :: AnnParen -> Constr #

dataTypeOf :: AnnParen -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnParen) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnParen) #

gmapT :: (forall b. Data b => b -> b) -> AnnParen -> AnnParen #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnParen -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnParen -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnParen -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnParen -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnParen -> m AnnParen #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnParen -> m AnnParen #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnParen -> m AnnParen #

data AnnList #

Annotation for the "container" of a list. This captures surrounding items such as braces if present, and introductory keywords such as 'where'.

Constructors

AnnList |

Fields

- al_anchor :: Maybe Anchor

  start point of a list having layout

- al_open :: Maybe AddEpAnn
- al_close :: Maybe AddEpAnn
- al_rest :: [AddEpAnn]

  context, such as 'where' keyword

- al_trailing :: [TrailingAnn]

  items appearing after the list, such as '=>' for a context

#### Instances

Instances details

Data AnnList |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnList -> c AnnList #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnList #

toConstr :: AnnList -> Constr #

dataTypeOf :: AnnList -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnList) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnList) #

gmapT :: (forall b. Data b => b -> b) -> AnnList -> AnnList #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnList -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnList -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnList -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnList -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnList -> m AnnList #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnList -> m AnnList #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnList -> m AnnList #

Monoid AnnList |
Instance details Defined in GHC.Parser.Annotation Methods mempty :: AnnList # mappend :: AnnList -> AnnList -> AnnList # mconcat :: [AnnList] -> AnnList #
Semigroup AnnList |
Instance details Defined in GHC.Parser.Annotation Methods (<>) :: AnnList -> AnnList -> AnnList # sconcat :: NonEmpty AnnList -> AnnList # stimes :: Integral b => b -> AnnList -> AnnList #
Outputable AnnList |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: AnnList -> SDoc #
Eq AnnList |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: AnnList -> AnnList -> Bool # (/=) :: AnnList -> AnnList -> Bool #
ToHie (LBooleanFormula (LocatedN Name)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LBooleanFormula (LocatedN Name) -> HieM [HieAST Type]
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedL [LocatedA (ConDeclField GhcRn)] -> HieM [HieAST Type]
HasHaddock (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedL [LocatedA (IE GhcPs)] -> HdkA (LocatedL [LocatedA (IE GhcPs)])
ExactPrint (LocatedL (BooleanFormula (LocatedN RdrName))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Entry #

setAnnotationAnchor :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Anchor -> EpAnnComments -> LocatedL (BooleanFormula (LocatedN RdrName)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL (BooleanFormula (LocatedN RdrName)) -> EP w m (LocatedL (BooleanFormula (LocatedN RdrName))) #

ExactPrint (Match GhcPs (LocatedA body)) => ExactPrint (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (Match GhcPs (LocatedA body))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> EP w m (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedL [LocatedA (IE GhcPs)] -> Entry # setAnnotationAnchor :: LocatedL [LocatedA (IE GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (IE GhcPs)] # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (IE GhcPs)] -> EP w m (LocatedL [LocatedA (IE GhcPs)]) #
ExactPrint (LocatedL [LocatedA (ConDeclField GhcPs)]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (ConDeclField GhcPs)] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (ConDeclField GhcPs)] -> EP w m (LocatedL [LocatedA (ConDeclField GhcPs)]) #

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

- lann_trailing :: [TrailingAnn]

#### Instances

Instances details

Data AnnListItem |

Instance details

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 |
Instance details Defined in GHC.Parser.Annotation Methods mempty :: AnnListItem # mappend :: AnnListItem -> AnnListItem -> AnnListItem # mconcat :: [AnnListItem] -> AnnListItem #
Semigroup AnnListItem |
Instance details Defined in GHC.Parser.Annotation Methods (<>) :: AnnListItem -> AnnListItem -> AnnListItem # sconcat :: NonEmpty AnnListItem -> AnnListItem # stimes :: Integral b => b -> AnnListItem -> AnnListItem #
Outputable AnnListItem |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: AnnListItem -> SDoc #
Eq AnnListItem |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: AnnListItem -> AnnListItem -> Bool # (/=) :: AnnListItem -> AnnListItem -> Bool #
HasLoc (LocatedA a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: LocatedA a -> SrcSpan
HiePass p => HasType (LocatedA (HsBind (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsBind (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct `HieAST` nodes which include the type of the expression. It is not yet possible to do this efficiently for all expression forms, so we skip filling in the type for those inputs. See Note [Computing the type of every node in the tree]
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (Pat (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (Pat (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: BindContext (LocatedA (HsBind (GhcPass p))) -> HieM [HieAST Type]
ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (LocatedA a) -> HieM [HieAST Type]
ToHie (EvBindContext (LocatedA TcEvBinds)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: EvBindContext (LocatedA TcEvBinds) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IE GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IE GhcRn)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IEWrappedName GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IEWrappedName GhcRn)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA ModuleName)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type]
HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: PScoped (LocatedA (Pat (GhcPass p))) -> HieM [HieAST Type]
(ToHie (RFContext label), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsFieldBind label arg))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (LocatedA (HsFieldBind label arg)) -> HieM [HieAST Type]
HiePass p => ToHie (RScoped (LocatedA (IPBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (IPBind (GhcPass p))) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), AnnoBody p body, HiePass p) => ToHie (RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p)))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p))))) -> HieM [HieAST Type]
HiePass p => ToHie (SigContext (LocatedA (Sig (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: SigContext (LocatedA (Sig (GhcPass p))) -> HieM [HieAST Type]
ToHie (TScoped (LocatedA (HsSigType GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (LocatedA (HsSigType GhcRn)) -> HieM [HieAST Type]
ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TVScoped (LocatedA (HsTyVarBndr flag GhcRn)) -> HieM [HieAST Type]
ToHie (LocatedA HsWrapper) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA HsWrapper -> HieM [HieAST Type]
ToHie (LocatedA (FixitySig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FixitySig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (AnnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (AnnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ClsInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ClsInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DataFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DataFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DefaultDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DefaultDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DerivDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DerivDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DocDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DocDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FamilyDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FamilyDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ForeignDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ForeignDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FunDep GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FunDep GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (InstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (InstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RoleAnnotDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RoleAnnotDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecls GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (SpliceDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (SpliceDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (StandaloneKindSig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (StandaloneKindSig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyClDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyClDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecls GhcRn) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsCmd (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsUntypedSplice (GhcPass p)) -> HieM [HieAST Type]
(HiePass p, Data (body (GhcPass p)), AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
ToHie (LocatedA (ImportDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ImportDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDeclField GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDeclField GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (HsType GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsType GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC [LocatedA (HsType GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC [LocatedA (HsType GhcRn)] -> HieM [HieAST Type]
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedL [LocatedA (ConDeclField GhcRn)] -> HieM [HieAST Type]
HasHaddock (LocatedA (ConDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (ConDecl GhcPs) -> HdkA (LocatedA (ConDecl GhcPs))
HasHaddock (LocatedA (HsDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsDecl GhcPs) -> HdkA (LocatedA (HsDecl GhcPs))
HasHaddock (LocatedA (IE GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (IE GhcPs) -> HdkA (LocatedA (IE GhcPs))
HasHaddock (LocatedA (HsSigType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsSigType GhcPs) -> HdkA (LocatedA (HsSigType GhcPs))
HasHaddock (LocatedA (HsType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsType GhcPs) -> HdkA (LocatedA (HsType GhcPs))
HasHaddock (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedL [LocatedA (IE GhcPs)] -> HdkA (LocatedL [LocatedA (IE GhcPs)])
ExactPrint a => ExactPrint (LocatedA a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedA a -> Entry # setAnnotationAnchor :: LocatedA a -> Anchor -> EpAnnComments -> LocatedA a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedA a -> EP w m (LocatedA a) #
ExactPrint (Match GhcPs (LocatedA body)) => ExactPrint (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (Match GhcPs (LocatedA body))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> EP w m (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedL [LocatedA (IE GhcPs)] -> Entry # setAnnotationAnchor :: LocatedL [LocatedA (IE GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (IE GhcPs)] # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (IE GhcPs)] -> EP w m (LocatedL [LocatedA (IE GhcPs)]) #
ExactPrint (LocatedL [LocatedA (ConDeclField GhcPs)]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (ConDeclField GhcPs)] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (ConDeclField GhcPs)] -> EP w m (LocatedL [LocatedA (ConDeclField GhcPs)]) #

HasDecls (LocatedA (HsExpr GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (HsExpr GhcPs)) #
HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] #

replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) #

HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) #
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
(HiePass p, AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
ExactPrint (GRHS GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHS GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (LocatedA body) => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> EP w m (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) #

(ExactPrint (LocatedA (body GhcPs)), Anno (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA, Anno [GenLocated SrcSpanAnnA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))] ~ SrcSpanAnnL, ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))])) => ExactPrint (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Entry #

setAnnotationAnchor :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Anchor -> EpAnnComments -> StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> EP w m (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) #

type Anno (LocatedA (IE (GhcPass p))) |
Instance details Defined in GHC.Hs.ImpExp type Anno (LocatedA (IE (GhcPass p))) = SrcSpanAnnA
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (IE (GhcPass p))] |
Instance details Defined in GHC.Hs.ImpExp type Anno [LocatedA (IE (GhcPass p))] = SrcSpanAnnL
type Anno [LocatedA (ConDeclField (GhcPass _1))] |
Instance details Defined in GHC.Hs.Decls type Anno [LocatedA (ConDeclField (GhcPass _1))] = SrcSpanAnnL
type Anno [LocatedA (HsType (GhcPass p))] |
Instance details Defined in GHC.Hs.Type type Anno [LocatedA (HsType (GhcPass p))] = SrcSpanAnnC
type Anno (FamEqn p (LocatedA (HsType p))) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn p (LocatedA (HsType p))) = SrcSpanAnnA
type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = SrcAnn NoEpAnns
type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA
type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) = SrcSpanAnnA

data TrailingAnn #

Captures the location of punctuation occurring between items, normally in a list. It is captured as a trailing annotation.

Constructors

AddSemiAnn EpaLocation | Trailing ';'
AddCommaAnn EpaLocation | Trailing ','
AddVbarAnn EpaLocation | Trailing '|'

#### Instances

Instances details

Data TrailingAnn |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TrailingAnn -> c TrailingAnn #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TrailingAnn #

toConstr :: TrailingAnn -> Constr #

dataTypeOf :: TrailingAnn -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TrailingAnn) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TrailingAnn) #

gmapT :: (forall b. Data b => b -> b) -> TrailingAnn -> TrailingAnn #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TrailingAnn -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TrailingAnn -> r #

gmapQ :: (forall d. Data d => d -> u) -> TrailingAnn -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TrailingAnn -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TrailingAnn -> m TrailingAnn #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TrailingAnn -> m TrailingAnn #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TrailingAnn -> m TrailingAnn #

Outputable TrailingAnn |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: TrailingAnn -> SDoc #
Eq TrailingAnn |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: TrailingAnn -> TrailingAnn -> Bool # (/=) :: TrailingAnn -> TrailingAnn -> Bool #

type LocatedAn an = GenLocated (SrcAnn an) #

General representation of a `GenLocated` type carrying a parameterised annotation type.

type SrcSpanAnnC = SrcAnn AnnContext #

type SrcSpanAnnP = SrcAnn AnnPragma #

type SrcSpanAnnL = SrcAnn AnnList #

type SrcSpanAnnN = SrcAnn NameAnn #

type SrcSpanAnnA = SrcAnn AnnListItem #

type LocatedC = GenLocated SrcSpanAnnC #

type LocatedP = GenLocated SrcSpanAnnP #

type LocatedL = GenLocated SrcSpanAnnL #

type LocatedN = GenLocated SrcSpanAnnN #

type LocatedA = GenLocated SrcSpanAnnA #

type SrcAnn ann = SrcSpanAnn' (EpAnn ann) #

We mostly use 'SrcSpanAnn'' with an 'EpAnn''

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.

Constructors

SrcSpanAnn |

Fields

- ann :: !a
- locA :: !SrcSpan

#### Instances

Instances details

Data a => Data (SrcSpanAnn' a) |

Instance details

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) |
Instance details 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 #
HasLoc (LocatedA a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: LocatedA a -> SrcSpan
HasLoc (LocatedN a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: LocatedN a -> SrcSpan
HiePass p => HasType (LocatedA (HsBind (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsBind (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct `HieAST` nodes which include the type of the expression. It is not yet possible to do this efficiently for all expression forms, so we skip filling in the type for those inputs. See Note [Computing the type of every node in the tree]
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (Pat (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (Pat (GhcPass p)) -> HieM [HieAST Type]
ToHie (LBooleanFormula (LocatedN Name)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LBooleanFormula (LocatedN Name) -> HieM [HieAST Type]
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: BindContext (LocatedA (HsBind (GhcPass p))) -> HieM [HieAST Type]
ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (LocatedA a) -> HieM [HieAST Type]
ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (LocatedN a) -> HieM [HieAST Type]
ToHie (EvBindContext (LocatedA TcEvBinds)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: EvBindContext (LocatedA TcEvBinds) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IE GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IE GhcRn)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IEWrappedName GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IEWrappedName GhcRn)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA ModuleName)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type]
HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: PScoped (LocatedA (Pat (GhcPass p))) -> HieM [HieAST Type]
(ToHie (RFContext label), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsFieldBind label arg))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (LocatedA (HsFieldBind label arg)) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (RScoped (LocatedA (IPBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (IPBind (GhcPass p))) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), AnnoBody p body, HiePass p) => ToHie (RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p)))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p))))) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn)) -> HieM [HieAST Type]
HiePass p => ToHie (SigContext (LocatedA (Sig (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: SigContext (LocatedA (Sig (GhcPass p))) -> HieM [HieAST Type]
ToHie (TScoped (LocatedA (HsSigType GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (LocatedA (HsSigType GhcRn)) -> HieM [HieAST Type]
ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TVScoped (LocatedA (HsTyVarBndr flag GhcRn)) -> HieM [HieAST Type]
ToHie (LocatedA HsWrapper) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA HsWrapper -> HieM [HieAST Type]
ToHie (LocatedA (FixitySig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FixitySig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (AnnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (AnnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ClsInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ClsInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DataFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DataFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DefaultDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DefaultDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DerivDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DerivDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DocDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DocDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FamilyDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FamilyDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ForeignDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ForeignDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FunDep GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FunDep GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (InstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (InstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RoleAnnotDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RoleAnnotDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecls GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (SpliceDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (SpliceDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (StandaloneKindSig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (StandaloneKindSig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyClDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyClDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecls GhcRn) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsCmd (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsUntypedSplice (GhcPass p)) -> HieM [HieAST Type]
(HiePass p, Data (body (GhcPass p)), AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
ToHie (LocatedA (ImportDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ImportDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDeclField GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDeclField GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (HsType GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsType GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC (DerivClauseTys GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC (DerivClauseTys GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC [LocatedA (HsType GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC [LocatedA (HsType GhcRn)] -> HieM [HieAST Type]
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedL [LocatedA (ConDeclField GhcRn)] -> HieM [HieAST Type]
ToHie (LocatedP OverlapMode) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedP OverlapMode -> HieM [HieAST Type]
ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)] -> HieM [HieAST Type]
HasHaddock (LocatedA (ConDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (ConDecl GhcPs) -> HdkA (LocatedA (ConDecl GhcPs))
HasHaddock (LocatedA (HsDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsDecl GhcPs) -> HdkA (LocatedA (HsDecl GhcPs))
HasHaddock (LocatedA (IE GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (IE GhcPs) -> HdkA (LocatedA (IE GhcPs))
HasHaddock (LocatedA (HsSigType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsSigType GhcPs) -> HdkA (LocatedA (HsSigType GhcPs))
HasHaddock (LocatedA (HsType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsType GhcPs) -> HdkA (LocatedA (HsType GhcPs))
HasHaddock (LocatedC (DerivClauseTys GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedC (DerivClauseTys GhcPs) -> HdkA (LocatedC (DerivClauseTys GhcPs))
HasHaddock (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedL [LocatedA (IE GhcPs)] -> HdkA (LocatedL [LocatedA (IE GhcPs)])
HasHaddock (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)] -> HdkA (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)])
Outputable a => Outputable (SrcSpanAnn' a) |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: SrcSpanAnn' a -> SDoc #
ExactPrint (BooleanFormula (LocatedN RdrName)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: BooleanFormula (LocatedN RdrName) -> Entry #

setAnnotationAnchor :: BooleanFormula (LocatedN RdrName) -> Anchor -> EpAnnComments -> BooleanFormula (LocatedN RdrName) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => BooleanFormula (LocatedN RdrName) -> EP w m (BooleanFormula (LocatedN RdrName)) #

ExactPrint a => ExactPrint (LocatedA a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedA a -> Entry # setAnnotationAnchor :: LocatedA a -> Anchor -> EpAnnComments -> LocatedA a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedA a -> EP w m (LocatedA a) #
ExactPrint a => ExactPrint (LocatedC a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedC a -> Entry # setAnnotationAnchor :: LocatedC a -> Anchor -> EpAnnComments -> LocatedC a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedC a -> EP w m (LocatedC a) #
ExactPrint (LocatedL (BooleanFormula (LocatedN RdrName))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Entry #

setAnnotationAnchor :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Anchor -> EpAnnComments -> LocatedL (BooleanFormula (LocatedN RdrName)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL (BooleanFormula (LocatedN RdrName)) -> EP w m (LocatedL (BooleanFormula (LocatedN RdrName))) #

ExactPrint (Match GhcPs (LocatedA body)) => ExactPrint (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (Match GhcPs (LocatedA body))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> EP w m (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedL [LocatedA (IE GhcPs)] -> Entry # setAnnotationAnchor :: LocatedL [LocatedA (IE GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (IE GhcPs)] # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (IE GhcPs)] -> EP w m (LocatedL [LocatedA (IE GhcPs)]) #
ExactPrint (LocatedL [LocatedA (ConDeclField GhcPs)]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (ConDeclField GhcPs)] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (ConDeclField GhcPs)] -> EP w m (LocatedL [LocatedA (ConDeclField GhcPs)]) #

ExactPrint (LocatedN RdrName) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedN RdrName -> Entry # setAnnotationAnchor :: LocatedN RdrName -> Anchor -> EpAnnComments -> LocatedN RdrName # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedN RdrName -> EP w m (LocatedN RdrName) #
ExactPrint (LocatedP OverlapMode) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP OverlapMode -> Entry # setAnnotationAnchor :: LocatedP OverlapMode -> Anchor -> EpAnnComments -> LocatedP OverlapMode # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP OverlapMode -> EP w m (LocatedP OverlapMode) #
ExactPrint (LocatedP CType) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP CType -> Entry # setAnnotationAnchor :: LocatedP CType -> Anchor -> EpAnnComments -> LocatedP CType # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP CType -> EP w m (LocatedP CType) #
ExactPrint (LocatedP (WarningTxt GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP (WarningTxt GhcPs) -> Entry # setAnnotationAnchor :: LocatedP (WarningTxt GhcPs) -> Anchor -> EpAnnComments -> LocatedP (WarningTxt GhcPs) # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP (WarningTxt GhcPs) -> EP w m (LocatedP (WarningTxt GhcPs)) #
HasEntry (SrcSpanAnn' (EpAnn an)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods fromAnn :: SrcSpanAnn' (EpAnn an) -> Entry
HasDecls (LocatedA (HsExpr GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (HsExpr GhcPs)) #
HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] #

replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) #

HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) #
Eq a => Eq (SrcSpanAnn' a) |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: SrcSpanAnn' a -> SrcSpanAnn' a -> Bool # (/=) :: SrcSpanAnn' a -> SrcSpanAnn' a -> Bool #
ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsDerivingClause GhcRn) -> HieM [HieAST Type]
ToHie (LocatedAn NoEpAnns (InjectivityAnn GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (InjectivityAnn GhcRn) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedAn NoEpAnns (HsCmdTop (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsCmdTop (GhcPass p)) -> HieM [HieAST Type]
ToHie (LocatedAn NoEpAnns HsIPName) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns HsIPName -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
(HiePass p, AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedAn NoEpAnns (HsDerivingClause GhcPs) -> HdkA (LocatedAn NoEpAnns (HsDerivingClause GhcPs))
NamedThing (Located a) => NamedThing (LocatedAn an a) |
Instance details Defined in GHC.Parser.Annotation Methods getOccName :: LocatedAn an a -> OccName # getName :: LocatedAn an a -> Name #
(Outputable a, Outputable e) => Outputable (GenLocated (SrcSpanAnn' a) e) |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: GenLocated (SrcSpanAnn' a) e -> SDoc #
(Outputable a, OutputableBndr e) => OutputableBndr (GenLocated (SrcSpanAnn' a) e) |
Instance details Defined in GHC.Parser.Annotation Methods pprBndr :: BindingSite -> GenLocated (SrcSpanAnn' a) e -> SDoc # pprPrefixOcc :: GenLocated (SrcSpanAnn' a) e -> SDoc # pprInfixOcc :: GenLocated (SrcSpanAnn' a) e -> SDoc # bndrIsJoin_maybe :: GenLocated (SrcSpanAnn' a) e -> Maybe Int #
ExactPrint a => ExactPrint (LocatedAn NoEpAnns a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedAn NoEpAnns a -> Entry # setAnnotationAnchor :: LocatedAn NoEpAnns a -> Anchor -> EpAnnComments -> LocatedAn NoEpAnns a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedAn NoEpAnns a -> EP w m (LocatedAn NoEpAnns a) #
ExactPrint (GRHS GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHS GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) #

ExactPrint (LocatedA body) => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> EP w m (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) #

ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) #

(ExactPrint (LocatedA (body GhcPs)), Anno (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA, Anno [GenLocated SrcSpanAnnA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))] ~ SrcSpanAnnL, ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))])) => ExactPrint (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Entry #

setAnnotationAnchor :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Anchor -> EpAnnComments -> StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> EP w m (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) #

type Anno (LocatedA (IE (GhcPass p))) |
Instance details Defined in GHC.Hs.ImpExp type Anno (LocatedA (IE (GhcPass p))) = SrcSpanAnnA
type Anno (LocatedN Name) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Name) = SrcSpan
type Anno (LocatedN RdrName) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN RdrName) = SrcSpan
type Anno (LocatedN Id) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Id) = SrcSpan
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (IE (GhcPass p))] |
Instance details Defined in GHC.Hs.ImpExp type Anno [LocatedA (IE (GhcPass p))] = SrcSpanAnnL
type Anno [LocatedA (ConDeclField (GhcPass _1))] |
Instance details Defined in GHC.Hs.Decls type Anno [LocatedA (ConDeclField (GhcPass _1))] = SrcSpanAnnL
type Anno [LocatedA (HsType (GhcPass p))] |
Instance details Defined in GHC.Hs.Type type Anno [LocatedA (HsType (GhcPass p))] = SrcSpanAnnC
type Anno [LocatedN Name] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Name] = SrcSpan
type Anno [LocatedN RdrName] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN RdrName] = SrcSpan
type Anno [LocatedN Id] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Id] = SrcSpan
type Anno (FamEqn p (LocatedA (HsType p))) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn p (LocatedA (HsType p))) = SrcSpanAnnA
type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = SrcAnn NoEpAnns
type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA
type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) = SrcSpanAnnA

type LEpaComment = GenLocated Anchor EpaComment #

data EpAnnComments #

When we are parsing we add comments that belong a particular AST element, and print them together with the element, interleaving them into the output stream. But when editing the AST to move fragments around it is useful to be able to first separate the comments into those occurring before the AST element and those following it. The `EpaCommentsBalanced` constructor is used to do this. The GHC parser will only insert the `EpaComments` form.

Constructors

EpaComments |

Fields

- priorComments :: ![LEpaComment]

EpaCommentsBalanced |

Fields

- priorComments :: ![LEpaComment]
- followingComments :: ![LEpaComment]

#### Instances

Instances details

Data EpAnnComments |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpAnnComments -> c EpAnnComments #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpAnnComments #

toConstr :: EpAnnComments -> Constr #

dataTypeOf :: EpAnnComments -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpAnnComments) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpAnnComments) #

gmapT :: (forall b. Data b => b -> b) -> EpAnnComments -> EpAnnComments #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnComments -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnComments -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpAnnComments -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpAnnComments -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpAnnComments -> m EpAnnComments #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnComments -> m EpAnnComments #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnComments -> m EpAnnComments #

Semigroup EpAnnComments |
Instance details Defined in GHC.Parser.Annotation Methods (<>) :: EpAnnComments -> EpAnnComments -> EpAnnComments # sconcat :: NonEmpty EpAnnComments -> EpAnnComments # stimes :: Integral b => b -> EpAnnComments -> EpAnnComments #
Outputable EpAnnComments |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: EpAnnComments -> SDoc #
Eq EpAnnComments |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: EpAnnComments -> EpAnnComments -> Bool # (/=) :: EpAnnComments -> EpAnnComments -> Bool #

data AnchorOperation #

If tools modify the parsed source, the `MovedAnchor` variant can directly provide the spacing for this item relative to the previous one when printing. This allows AST fragments with a particular anchor to be freely moved, without worrying about recalculating the appropriate anchor span.

Constructors

UnchangedAnchor |
MovedAnchor DeltaPos |

#### Instances

Instances details

Data AnchorOperation |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnchorOperation -> c AnchorOperation #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnchorOperation #

toConstr :: AnchorOperation -> Constr #

dataTypeOf :: AnchorOperation -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnchorOperation) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnchorOperation) #

gmapT :: (forall b. Data b => b -> b) -> AnchorOperation -> AnchorOperation #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnchorOperation -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnchorOperation -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnchorOperation -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnchorOperation -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnchorOperation -> m AnchorOperation #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnchorOperation -> m AnchorOperation #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnchorOperation -> m AnchorOperation #

Show AnchorOperation |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> AnchorOperation -> ShowS # show :: AnchorOperation -> String # showList :: [AnchorOperation] -> ShowS #
Outputable AnchorOperation |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: AnchorOperation -> SDoc #
Eq AnchorOperation |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: AnchorOperation -> AnchorOperation -> Bool # (/=) :: AnchorOperation -> AnchorOperation -> Bool #

data Anchor #

An `Anchor` records the base location for the start of the syntactic element holding the annotations, and is used as the point of reference for calculating delta positions for contained annotations. It is also normally used as the reference point for the spacing of the element relative to its container. If it is moved, that relationship is tracked in the `anchor_op` instead.

Constructors

Anchor |

Fields

- anchor :: RealSrcSpan

  Base location for the start of the syntactic element holding the annotations.

- anchor_op :: AnchorOperation

#### Instances

Instances details

Data Anchor |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Anchor -> c Anchor #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Anchor #

toConstr :: Anchor -> Constr #

dataTypeOf :: Anchor -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Anchor) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Anchor) #

gmapT :: (forall b. Data b => b -> b) -> Anchor -> Anchor #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Anchor -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Anchor -> r #

gmapQ :: (forall d. Data d => d -> u) -> Anchor -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Anchor -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Anchor -> m Anchor #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Anchor -> m Anchor #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Anchor -> m Anchor #

Semigroup Anchor |
Instance details Defined in GHC.Parser.Annotation Methods (<>) :: Anchor -> Anchor -> Anchor # sconcat :: NonEmpty Anchor -> Anchor # stimes :: Integral b => b -> Anchor -> Anchor #
Show Anchor |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> Anchor -> ShowS # show :: Anchor -> String # showList :: [Anchor] -> ShowS #
Outputable Anchor |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: Anchor -> SDoc #
Eq Anchor |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: Anchor -> Anchor -> Bool # (/=) :: Anchor -> Anchor -> Bool #
Ord Anchor |
Instance details Defined in GHC.Parser.Annotation Methods compare :: Anchor -> Anchor -> Ordering # (<) :: Anchor -> Anchor -> Bool # (<=) :: Anchor -> Anchor -> Bool # (>) :: Anchor -> Anchor -> Bool # (>=) :: Anchor -> Anchor -> Bool # max :: Anchor -> Anchor -> Anchor # min :: Anchor -> Anchor -> Anchor #
Outputable (GenLocated Anchor EpaComment) |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: GenLocated Anchor EpaComment -> SDoc #

data EpAnn ann #

The exact print annotations (EPAs) are kept in the HsSyn AST for the GhcPs phase. We do not always have EPAs though, only for code that has been parsed as they do not exist for generated code. This type captures that they may be missing.

A goal of the annotations is that an AST can be edited, including moving subtrees from one place to another, duplicating them, and so on. This means that each fragment must be self-contained. To this end, each annotated fragment keeps track of the anchor position it was originally captured at, being simply the start span of the topmost element of the ast fragment. This gives us a way to later re-calculate all Located items in this layer of the AST, as well as any annotations captured. The comments associated with the AST fragment are also captured here.

The `ann` type parameter allows this general structure to be specialised to the specific set of locations of original exact print annotation elements. So for `HsLet` we have

type instance XLet GhcPs = EpAnn AnnsLet data AnnsLet = AnnsLet { alLet :: EpaLocation, alIn :: EpaLocation } deriving Data

The spacing between the items under the scope of a given EpAnn is normally derived from the original `Anchor`. But if a sub-element is not in its original position, the required spacing can be directly captured in the `anchor_op` field of the `entry` Anchor. This allows us to freely move elements around, and stitch together new AST fragments out of old ones, and have them still printed out in a precise way.

Constructors

EpAnn |

Fields

- entry :: !Anchor

  Base location for the start of the syntactic element holding the annotations.

- anns :: !ann

  Annotations added by the Parser

- comments :: !EpAnnComments

  Comments enclosed in the SrcSpan of the element this `EpAnn` is attached to

EpAnnNotUsed | No Annotation for generated code, e.g. from TH, deriving, etc.

#### Instances

Instances details

Functor EpAnn |
Instance details Defined in GHC.Parser.Annotation Methods fmap :: (a -> b) -> EpAnn a -> EpAnn b # (<$) :: a -> EpAnn b -> EpAnn a #
Data ann => Data (EpAnn ann) |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpAnn ann -> c (EpAnn ann) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (EpAnn ann) #

toConstr :: EpAnn ann -> Constr #

dataTypeOf :: EpAnn ann -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (EpAnn ann)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (EpAnn ann)) #

gmapT :: (forall b. Data b => b -> b) -> EpAnn ann -> EpAnn ann #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpAnn ann -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpAnn ann -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpAnn ann -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpAnn ann -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpAnn ann -> m (EpAnn ann) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnn ann -> m (EpAnn ann) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnn ann -> m (EpAnn ann) #

Monoid a => Monoid (EpAnn a) |
Instance details Defined in GHC.Parser.Annotation Methods mempty :: EpAnn a # mappend :: EpAnn a -> EpAnn a -> EpAnn a # mconcat :: [EpAnn a] -> EpAnn a #
Semigroup a => Semigroup (EpAnn a) |
Instance details Defined in GHC.Parser.Annotation Methods (<>) :: EpAnn a -> EpAnn a -> EpAnn a # sconcat :: NonEmpty (EpAnn a) -> EpAnn a # stimes :: Integral b => b -> EpAnn a -> EpAnn a #
HasLoc (LocatedA a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: LocatedA a -> SrcSpan
HasLoc (LocatedN a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: LocatedN a -> SrcSpan
HiePass p => HasType (LocatedA (HsBind (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsBind (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct `HieAST` nodes which include the type of the expression. It is not yet possible to do this efficiently for all expression forms, so we skip filling in the type for those inputs. See Note [Computing the type of every node in the tree]
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (Pat (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (Pat (GhcPass p)) -> HieM [HieAST Type]
ToHie (LBooleanFormula (LocatedN Name)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LBooleanFormula (LocatedN Name) -> HieM [HieAST Type]
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: BindContext (LocatedA (HsBind (GhcPass p))) -> HieM [HieAST Type]
ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (LocatedA a) -> HieM [HieAST Type]
ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (LocatedN a) -> HieM [HieAST Type]
ToHie (EvBindContext (LocatedA TcEvBinds)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: EvBindContext (LocatedA TcEvBinds) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IE GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IE GhcRn)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IEWrappedName GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IEWrappedName GhcRn)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA ModuleName)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type]
HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: PScoped (LocatedA (Pat (GhcPass p))) -> HieM [HieAST Type]
(ToHie (RFContext label), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsFieldBind label arg))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (LocatedA (HsFieldBind label arg)) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (RScoped (LocatedA (IPBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (IPBind (GhcPass p))) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), AnnoBody p body, HiePass p) => ToHie (RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p)))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p))))) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn)) -> HieM [HieAST Type]
HiePass p => ToHie (SigContext (LocatedA (Sig (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: SigContext (LocatedA (Sig (GhcPass p))) -> HieM [HieAST Type]
ToHie (TScoped (LocatedA (HsSigType GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (LocatedA (HsSigType GhcRn)) -> HieM [HieAST Type]
ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TVScoped (LocatedA (HsTyVarBndr flag GhcRn)) -> HieM [HieAST Type]
ToHie (LocatedA HsWrapper) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA HsWrapper -> HieM [HieAST Type]
ToHie (LocatedA (FixitySig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FixitySig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (AnnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (AnnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ClsInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ClsInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DataFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DataFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DefaultDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DefaultDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DerivDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DerivDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DocDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DocDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FamilyDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FamilyDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ForeignDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ForeignDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FunDep GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FunDep GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (InstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (InstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RoleAnnotDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RoleAnnotDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecls GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (SpliceDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (SpliceDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (StandaloneKindSig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (StandaloneKindSig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyClDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyClDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecls GhcRn) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsCmd (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsUntypedSplice (GhcPass p)) -> HieM [HieAST Type]
(HiePass p, Data (body (GhcPass p)), AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
ToHie (LocatedA (ImportDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ImportDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDeclField GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDeclField GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (HsType GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsType GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC (DerivClauseTys GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC (DerivClauseTys GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC [LocatedA (HsType GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC [LocatedA (HsType GhcRn)] -> HieM [HieAST Type]
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedL [LocatedA (ConDeclField GhcRn)] -> HieM [HieAST Type]
ToHie (LocatedP OverlapMode) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedP OverlapMode -> HieM [HieAST Type]
ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)] -> HieM [HieAST Type]
HasHaddock (LocatedA (ConDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (ConDecl GhcPs) -> HdkA (LocatedA (ConDecl GhcPs))
HasHaddock (LocatedA (HsDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsDecl GhcPs) -> HdkA (LocatedA (HsDecl GhcPs))
HasHaddock (LocatedA (IE GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (IE GhcPs) -> HdkA (LocatedA (IE GhcPs))
HasHaddock (LocatedA (HsSigType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsSigType GhcPs) -> HdkA (LocatedA (HsSigType GhcPs))
HasHaddock (LocatedA (HsType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsType GhcPs) -> HdkA (LocatedA (HsType GhcPs))
HasHaddock (LocatedC (DerivClauseTys GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedC (DerivClauseTys GhcPs) -> HdkA (LocatedC (DerivClauseTys GhcPs))
HasHaddock (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedL [LocatedA (IE GhcPs)] -> HdkA (LocatedL [LocatedA (IE GhcPs)])
HasHaddock (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)] -> HdkA (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)])
Outputable a => Outputable (EpAnn a) |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: EpAnn a -> SDoc #
ExactPrint (BooleanFormula (LocatedN RdrName)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: BooleanFormula (LocatedN RdrName) -> Entry #

setAnnotationAnchor :: BooleanFormula (LocatedN RdrName) -> Anchor -> EpAnnComments -> BooleanFormula (LocatedN RdrName) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => BooleanFormula (LocatedN RdrName) -> EP w m (BooleanFormula (LocatedN RdrName)) #

ExactPrint a => ExactPrint (LocatedA a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedA a -> Entry # setAnnotationAnchor :: LocatedA a -> Anchor -> EpAnnComments -> LocatedA a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedA a -> EP w m (LocatedA a) #
ExactPrint a => ExactPrint (LocatedC a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedC a -> Entry # setAnnotationAnchor :: LocatedC a -> Anchor -> EpAnnComments -> LocatedC a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedC a -> EP w m (LocatedC a) #
ExactPrint (LocatedL (BooleanFormula (LocatedN RdrName))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Entry #

setAnnotationAnchor :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Anchor -> EpAnnComments -> LocatedL (BooleanFormula (LocatedN RdrName)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL (BooleanFormula (LocatedN RdrName)) -> EP w m (LocatedL (BooleanFormula (LocatedN RdrName))) #

ExactPrint (Match GhcPs (LocatedA body)) => ExactPrint (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (Match GhcPs (LocatedA body))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> EP w m (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedL [LocatedA (IE GhcPs)] -> Entry # setAnnotationAnchor :: LocatedL [LocatedA (IE GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (IE GhcPs)] # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (IE GhcPs)] -> EP w m (LocatedL [LocatedA (IE GhcPs)]) #
ExactPrint (LocatedL [LocatedA (ConDeclField GhcPs)]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (ConDeclField GhcPs)] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (ConDeclField GhcPs)] -> EP w m (LocatedL [LocatedA (ConDeclField GhcPs)]) #

ExactPrint (LocatedN RdrName) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedN RdrName -> Entry # setAnnotationAnchor :: LocatedN RdrName -> Anchor -> EpAnnComments -> LocatedN RdrName # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedN RdrName -> EP w m (LocatedN RdrName) #
ExactPrint (LocatedP OverlapMode) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP OverlapMode -> Entry # setAnnotationAnchor :: LocatedP OverlapMode -> Anchor -> EpAnnComments -> LocatedP OverlapMode # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP OverlapMode -> EP w m (LocatedP OverlapMode) #
ExactPrint (LocatedP CType) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP CType -> Entry # setAnnotationAnchor :: LocatedP CType -> Anchor -> EpAnnComments -> LocatedP CType # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP CType -> EP w m (LocatedP CType) #
ExactPrint (LocatedP (WarningTxt GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP (WarningTxt GhcPs) -> Entry # setAnnotationAnchor :: LocatedP (WarningTxt GhcPs) -> Anchor -> EpAnnComments -> LocatedP (WarningTxt GhcPs) # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP (WarningTxt GhcPs) -> EP w m (LocatedP (WarningTxt GhcPs)) #
HasEntry (EpAnn a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods fromAnn :: EpAnn a -> Entry
HasEntry (SrcSpanAnn' (EpAnn an)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods fromAnn :: SrcSpanAnn' (EpAnn an) -> Entry
HasDecls (LocatedA (HsExpr GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (HsExpr GhcPs)) #
HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] #

replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) #

HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) #
Eq ann => Eq (EpAnn ann) |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: EpAnn ann -> EpAnn ann -> Bool # (/=) :: EpAnn ann -> EpAnn ann -> Bool #
ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsDerivingClause GhcRn) -> HieM [HieAST Type]
ToHie (LocatedAn NoEpAnns (InjectivityAnn GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (InjectivityAnn GhcRn) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedAn NoEpAnns (HsCmdTop (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsCmdTop (GhcPass p)) -> HieM [HieAST Type]
ToHie (LocatedAn NoEpAnns HsIPName) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns HsIPName -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
(HiePass p, AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedAn NoEpAnns (HsDerivingClause GhcPs) -> HdkA (LocatedAn NoEpAnns (HsDerivingClause GhcPs))
NamedThing (Located a) => NamedThing (LocatedAn an a) |
Instance details Defined in GHC.Parser.Annotation Methods getOccName :: LocatedAn an a -> OccName # getName :: LocatedAn an a -> Name #
ExactPrint a => ExactPrint (LocatedAn NoEpAnns a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedAn NoEpAnns a -> Entry # setAnnotationAnchor :: LocatedAn NoEpAnns a -> Anchor -> EpAnnComments -> LocatedAn NoEpAnns a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedAn NoEpAnns a -> EP w m (LocatedAn NoEpAnns a) #
ExactPrint (GRHS GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHS GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) #

ExactPrint (LocatedA body) => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> EP w m (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) #

ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) #

(ExactPrint (LocatedA (body GhcPs)), Anno (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA, Anno [GenLocated SrcSpanAnnA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))] ~ SrcSpanAnnL, ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))])) => ExactPrint (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Entry #

setAnnotationAnchor :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Anchor -> EpAnnComments -> StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> EP w m (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) #

type Anno (LocatedA (IE (GhcPass p))) |
Instance details Defined in GHC.Hs.ImpExp type Anno (LocatedA (IE (GhcPass p))) = SrcSpanAnnA
type Anno (LocatedN Name) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Name) = SrcSpan
type Anno (LocatedN RdrName) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN RdrName) = SrcSpan
type Anno (LocatedN Id) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Id) = SrcSpan
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (IE (GhcPass p))] |
Instance details Defined in GHC.Hs.ImpExp type Anno [LocatedA (IE (GhcPass p))] = SrcSpanAnnL
type Anno [LocatedA (ConDeclField (GhcPass _1))] |
Instance details Defined in GHC.Hs.Decls type Anno [LocatedA (ConDeclField (GhcPass _1))] = SrcSpanAnnL
type Anno [LocatedA (HsType (GhcPass p))] |
Instance details Defined in GHC.Hs.Type type Anno [LocatedA (HsType (GhcPass p))] = SrcSpanAnnC
type Anno [LocatedN Name] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Name] = SrcSpan
type Anno [LocatedN RdrName] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN RdrName] = SrcSpan
type Anno [LocatedN Id] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Id] = SrcSpan
type Anno (FamEqn p (LocatedA (HsType p))) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn p (LocatedA (HsType p))) = SrcSpanAnnA
type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = SrcAnn NoEpAnns
type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA
type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) = SrcSpanAnnA

data DeltaPos #

Spacing between output items when exact printing. It captures the spacing from the current print position on the page to the position required for the thing about to be printed. This is either on the same line in which case is is simply the number of spaces to emit, or it is some number of lines down, with a given column offset. The exact printing algorithm keeps track of the column offset pertaining to the current anchor position, so the `deltaColumn` is the additional spaces to add in this case. See https://gitlab.haskell.org/ghc/ghc/wikis/api-annotations for details.

Constructors

SameLine |

Fields

- deltaColumn :: !Int

DifferentLine |

Fields

- deltaLine :: !Int

  deltaLine should always be > 0

- deltaColumn :: !Int

#### Instances

Instances details

Data DeltaPos |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DeltaPos -> c DeltaPos #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DeltaPos #

toConstr :: DeltaPos -> Constr #

dataTypeOf :: DeltaPos -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DeltaPos) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DeltaPos) #

gmapT :: (forall b. Data b => b -> b) -> DeltaPos -> DeltaPos #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DeltaPos -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DeltaPos -> r #

gmapQ :: (forall d. Data d => d -> u) -> DeltaPos -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DeltaPos -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DeltaPos -> m DeltaPos #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DeltaPos -> m DeltaPos #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DeltaPos -> m DeltaPos #

Show DeltaPos |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> DeltaPos -> ShowS # show :: DeltaPos -> String # showList :: [DeltaPos] -> ShowS #
Outputable DeltaPos |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: DeltaPos -> SDoc #
Eq DeltaPos |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: DeltaPos -> DeltaPos -> Bool # (/=) :: DeltaPos -> DeltaPos -> Bool #
Ord DeltaPos |
Instance details Defined in GHC.Parser.Annotation Methods compare :: DeltaPos -> DeltaPos -> Ordering # (<) :: DeltaPos -> DeltaPos -> Bool # (<=) :: DeltaPos -> DeltaPos -> Bool # (>) :: DeltaPos -> DeltaPos -> Bool # (>=) :: DeltaPos -> DeltaPos -> Bool # max :: DeltaPos -> DeltaPos -> DeltaPos # min :: DeltaPos -> DeltaPos -> DeltaPos #

data TokenLocation #

Tokens embedded in the AST have an EpaLocation, unless they come from generated code (e.g. by TH).

Constructors

NoTokenLoc |
TokenLoc !EpaLocation |

#### Instances

Instances details

Data TokenLocation |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TokenLocation -> c TokenLocation #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TokenLocation #

toConstr :: TokenLocation -> Constr #

dataTypeOf :: TokenLocation -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TokenLocation) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TokenLocation) #

gmapT :: (forall b. Data b => b -> b) -> TokenLocation -> TokenLocation #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TokenLocation -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TokenLocation -> r #

gmapQ :: (forall d. Data d => d -> u) -> TokenLocation -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TokenLocation -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TokenLocation -> m TokenLocation #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TokenLocation -> m TokenLocation #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TokenLocation -> m TokenLocation #

Eq TokenLocation |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: TokenLocation -> TokenLocation -> Bool # (/=) :: TokenLocation -> TokenLocation -> Bool #
Outputable a => Outputable (GenLocated TokenLocation a) |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: GenLocated TokenLocation a -> SDoc #

data EpaLocation #

The anchor for an ``AnnKeywordId``. The Parser inserts the ``EpaSpan`` variant, giving the exact location of the original item in the parsed source. This can be replaced by the ``EpaDelta`` version, to provide a position for the item relative to the end of the previous item in the source. This is useful when editing an AST prior to exact printing the changed one. The list of comments in the ``EpaDelta`` variant captures any comments between the prior output and the thing being marked here, since we cannot otherwise sort the relative order.

Constructors

EpaSpan !RealSrcSpan !(Maybe BufSpan) |
EpaDelta !DeltaPos ![LEpaComment] |

#### Instances

Instances details

Data EpaLocation |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpaLocation -> c EpaLocation #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpaLocation #

toConstr :: EpaLocation -> Constr #

dataTypeOf :: EpaLocation -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpaLocation) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpaLocation) #

gmapT :: (forall b. Data b => b -> b) -> EpaLocation -> EpaLocation #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpaLocation -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpaLocation -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpaLocation -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpaLocation -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpaLocation -> m EpaLocation #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpaLocation -> m EpaLocation #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpaLocation -> m EpaLocation #

Outputable EpaLocation |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: EpaLocation -> SDoc #
Eq EpaLocation |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: EpaLocation -> EpaLocation -> Bool # (/=) :: EpaLocation -> EpaLocation -> Bool #

data AddEpAnn #

Captures an annotation, storing the ``AnnKeywordId`` and its location. The parser only ever inserts ``EpaLocation`` fields with a RealSrcSpan being the original location of the annotation in the source file. The ``EpaLocation`` can also store a delta position if the AST has been modified and needs to be pretty printed again. The usual way an `AddEpAnn` is created is using the `mj` ("make jump") function, and then it can be inserted into the appropriate annotation.

Constructors

AddEpAnn AnnKeywordId EpaLocation |

#### Instances

Instances details

Data AddEpAnn |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AddEpAnn -> c AddEpAnn #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AddEpAnn #

toConstr :: AddEpAnn -> Constr #

dataTypeOf :: AddEpAnn -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AddEpAnn) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AddEpAnn) #

gmapT :: (forall b. Data b => b -> b) -> AddEpAnn -> AddEpAnn #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AddEpAnn -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AddEpAnn -> r #

gmapQ :: (forall d. Data d => d -> u) -> AddEpAnn -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AddEpAnn -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AddEpAnn -> m AddEpAnn #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AddEpAnn -> m AddEpAnn #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AddEpAnn -> m AddEpAnn #

Outputable AddEpAnn |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: AddEpAnn -> SDoc #
Eq AddEpAnn |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: AddEpAnn -> AddEpAnn -> Bool # (/=) :: AddEpAnn -> AddEpAnn -> Bool #

data EpaCommentTok #

Constructors

EpaDocComment HsDocString | a docstring that can be pretty printed using pprHsDocString
EpaDocOptions String | doc options (prune, ignore-exports, etc)
EpaLineComment String | comment starting by "--"
EpaBlockComment String | comment in {- -}
EpaEofComment | empty comment, capturing location of EOF

#### Instances

Instances details

Data EpaCommentTok |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpaCommentTok -> c EpaCommentTok #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpaCommentTok #

toConstr :: EpaCommentTok -> Constr #

dataTypeOf :: EpaCommentTok -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpaCommentTok) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpaCommentTok) #

gmapT :: (forall b. Data b => b -> b) -> EpaCommentTok -> EpaCommentTok #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpaCommentTok -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpaCommentTok -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpaCommentTok -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpaCommentTok -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpaCommentTok -> m EpaCommentTok #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpaCommentTok -> m EpaCommentTok #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpaCommentTok -> m EpaCommentTok #

Show EpaCommentTok |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> EpaCommentTok -> ShowS # show :: EpaCommentTok -> String # showList :: [EpaCommentTok] -> ShowS #
Eq EpaCommentTok |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: EpaCommentTok -> EpaCommentTok -> Bool # (/=) :: EpaCommentTok -> EpaCommentTok -> Bool #

data EpaComment #

Constructors

EpaComment |

Fields

- ac_tok :: EpaCommentTok
- ac_prior_tok :: RealSrcSpan

  The location of the prior token, used in exact printing. The `EpaComment` appears as an `LEpaComment` containing its location. The difference between the end of the prior token and the start of this location is used for the spacing when exact printing the comment.

#### Instances

Instances details

Data EpaComment |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpaComment -> c EpaComment #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpaComment #

toConstr :: EpaComment -> Constr #

dataTypeOf :: EpaComment -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpaComment) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpaComment) #

gmapT :: (forall b. Data b => b -> b) -> EpaComment -> EpaComment #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpaComment -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpaComment -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpaComment -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpaComment -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpaComment -> m EpaComment #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpaComment -> m EpaComment #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpaComment -> m EpaComment #

Show EpaComment |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> EpaComment -> ShowS # show :: EpaComment -> String # showList :: [EpaComment] -> ShowS #
Outputable EpaComment |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: EpaComment -> SDoc #
Eq EpaComment |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: EpaComment -> EpaComment -> Bool # (/=) :: EpaComment -> EpaComment -> Bool #
Outputable (GenLocated Anchor EpaComment) |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: GenLocated Anchor EpaComment -> SDoc #

data HasE #

Some template haskell tokens have two variants, one with an `e` the other not:

     [| or [e|
     [|| or [e||

This type indicates whether the `e` is present or not.

Constructors

HasE |
NoE |

#### Instances

Instances details

Data HasE |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HasE -> c HasE #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HasE #

toConstr :: HasE -> Constr #

dataTypeOf :: HasE -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HasE) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HasE) #

gmapT :: (forall b. Data b => b -> b) -> HasE -> HasE #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HasE -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HasE -> r #

gmapQ :: (forall d. Data d => d -> u) -> HasE -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HasE -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HasE -> m HasE #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HasE -> m HasE #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HasE -> m HasE #

Show HasE |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> HasE -> ShowS # show :: HasE -> String # showList :: [HasE] -> ShowS #
Eq HasE |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: HasE -> HasE -> Bool # (/=) :: HasE -> HasE -> Bool #
Ord HasE |
Instance details Defined in GHC.Parser.Annotation Methods compare :: HasE -> HasE -> Ordering # (<) :: HasE -> HasE -> Bool # (<=) :: HasE -> HasE -> Bool # (>) :: HasE -> HasE -> Bool # (>=) :: HasE -> HasE -> Bool # max :: HasE -> HasE -> HasE # min :: HasE -> HasE -> HasE #

data IsUnicodeSyntax #

Certain tokens can have alternate representations when unicode syntax is enabled. This flag is attached to those tokens in the lexer so that the original source representation can be reproduced in the corresponding `EpAnnotation`

Constructors

UnicodeSyntax |
NormalSyntax |

#### Instances

Instances details

Data IsUnicodeSyntax |

Instance details

Defined in GHC.Parser.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IsUnicodeSyntax -> c IsUnicodeSyntax #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IsUnicodeSyntax #

toConstr :: IsUnicodeSyntax -> Constr #

dataTypeOf :: IsUnicodeSyntax -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IsUnicodeSyntax) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IsUnicodeSyntax) #

gmapT :: (forall b. Data b => b -> b) -> IsUnicodeSyntax -> IsUnicodeSyntax #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IsUnicodeSyntax -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IsUnicodeSyntax -> r #

gmapQ :: (forall d. Data d => d -> u) -> IsUnicodeSyntax -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> IsUnicodeSyntax -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> IsUnicodeSyntax -> m IsUnicodeSyntax #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IsUnicodeSyntax -> m IsUnicodeSyntax #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IsUnicodeSyntax -> m IsUnicodeSyntax #

Show IsUnicodeSyntax |
Instance details Defined in GHC.Parser.Annotation Methods showsPrec :: Int -> IsUnicodeSyntax -> ShowS # show :: IsUnicodeSyntax -> String # showList :: [IsUnicodeSyntax] -> ShowS #
Outputable IsUnicodeSyntax |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: IsUnicodeSyntax -> SDoc #
Eq IsUnicodeSyntax |
Instance details Defined in GHC.Parser.Annotation Methods (==) :: IsUnicodeSyntax -> IsUnicodeSyntax -> Bool # (/=) :: IsUnicodeSyntax -> IsUnicodeSyntax -> Bool #
Ord IsUnicodeSyntax |

Instance details

Defined in GHC.Parser.Annotation

Methods

compare :: IsUnicodeSyntax -> IsUnicodeSyntax -> Ordering #

(<) :: IsUnicodeSyntax -> IsUnicodeSyntax -> Bool #

(<=) :: IsUnicodeSyntax -> IsUnicodeSyntax -> Bool #

(>) :: IsUnicodeSyntax -> IsUnicodeSyntax -> Bool #

(>=) :: IsUnicodeSyntax -> IsUnicodeSyntax -> Bool #

max :: IsUnicodeSyntax -> IsUnicodeSyntax -> IsUnicodeSyntax #

min :: IsUnicodeSyntax -> IsUnicodeSyntax -> IsUnicodeSyntax #

unicodeAnn :: AnnKeywordId -> AnnKeywordId #

Convert a normal annotation into its unicode equivalent one

getTokenSrcSpan :: TokenLocation -> SrcSpan #

deltaPos :: Int -> Int -> DeltaPos #

Smart constructor for a `DeltaPos`. It preserves the invariant that for the `DifferentLine` constructor `deltaLine` is always > 0.

getDeltaLine :: DeltaPos -> Int #

epaLocationRealSrcSpan :: EpaLocation -> RealSrcSpan #

Used in the parser only, extract the `RealSrcSpan` from an `EpaLocation`. The parser will never insert a `DeltaPos`, so the partial function is safe.

epaLocationFromSrcAnn :: SrcAnn ann -> EpaLocation #

spanAsAnchor :: SrcSpan -> Anchor #

realSpanAsAnchor :: RealSrcSpan -> Anchor #

emptyComments :: EpAnnComments #

parenTypeKws :: ParenType -> (AnnKeywordId, AnnKeywordId) #

Maps the `ParenType` to the related opening and closing AnnKeywordId. Used when actually printing the item.

trailingAnnToAddEpAnn :: TrailingAnn -> AddEpAnn #

Convert a `TrailingAnn` to an `AddEpAnn`

addTrailingAnnToL :: SrcSpan -> TrailingAnn -> EpAnnComments -> EpAnn AnnList -> EpAnn AnnList #

Helper function used in the parser to add a `TrailingAnn` items to an existing annotation.

addTrailingAnnToA :: SrcSpan -> TrailingAnn -> EpAnnComments -> EpAnn AnnListItem -> EpAnn AnnListItem #

Helper function used in the parser to add a `TrailingAnn` items to an existing annotation.

addTrailingCommaToN :: SrcSpan -> EpAnn NameAnn -> EpaLocation -> EpAnn NameAnn #

Helper function used in the parser to add a comma location to an existing annotation.

l2n :: LocatedAn a1 a2 -> LocatedN a2 #

Helper function (temporary) during transition of names Discards any annotations

n2l :: LocatedN a -> LocatedA a #

la2na :: SrcSpanAnn' a -> SrcSpanAnnN #

Helper function (temporary) during transition of names Discards any annotations

la2la :: LocatedAn ann1 a2 -> LocatedAn ann2 a2 #

Helper function (temporary) during transition of names Discards any annotations

l2l :: SrcSpanAnn' a -> SrcAnn ann #

na2la :: SrcSpanAnn' a -> SrcAnn ann #

Helper function (temporary) during transition of names Discards any annotations

reLoc :: LocatedAn a e -> Located e #

reLocA :: Located e -> LocatedAn ann e #

reLocL :: LocatedN e -> LocatedA e #

reLocC :: LocatedN e -> LocatedC e #

reLocN :: LocatedN a -> Located a #

realSrcSpan :: SrcSpan -> RealSrcSpan #

srcSpan2e :: SrcSpan -> EpaLocation #

la2e :: SrcSpanAnn' a -> EpaLocation #

extraToAnnList :: AnnList -> [AddEpAnn] -> AnnList #

reAnn :: [TrailingAnn] -> EpAnnComments -> Located a -> LocatedA a #

reAnnC :: AnnContext -> EpAnnComments -> Located a -> LocatedC a #

reAnnL :: ann -> EpAnnComments -> Located e -> GenLocated (SrcAnn ann) e #

getLocAnn :: Located a -> SrcSpanAnnA #

getLocA :: GenLocated (SrcSpanAnn' a) e -> SrcSpan #

noLocA :: a -> LocatedAn an a #

noAnnSrcSpan :: SrcSpan -> SrcAnn ann #

noSrcSpanA :: SrcAnn ann #

noAnn :: EpAnn a #

Short form for `EpAnnNotUsed`

addAnns :: EpAnn [AddEpAnn] -> [AddEpAnn] -> EpAnnComments -> EpAnn [AddEpAnn] #

addAnnsA :: SrcSpanAnnA -> [TrailingAnn] -> EpAnnComments -> SrcSpanAnnA #

widenSpan :: SrcSpan -> [AddEpAnn] -> SrcSpan #

The annotations need to all come after the anchor. Make sure this is the case.

widenAnchor :: Anchor -> [AddEpAnn] -> Anchor #

widenAnchorR :: Anchor -> RealSrcSpan -> Anchor #

widenLocatedAn :: SrcSpanAnn' an -> [AddEpAnn] -> SrcSpanAnn' an #

epAnnAnnsL :: EpAnn a -> [a] #

epAnnAnns :: EpAnn [AddEpAnn] -> [AddEpAnn] #

annParen2AddEpAnn :: EpAnn AnnParen -> [AddEpAnn] #

epAnnComments :: EpAnn an -> EpAnnComments #

sortLocatedA :: [GenLocated (SrcSpanAnn' a) e] -> [GenLocated (SrcSpanAnn' a) e] #

mapLocA :: (a -> b) -> GenLocated SrcSpan a -> GenLocated (SrcAnn ann) b #

combineLocsA :: Semigroup a => GenLocated (SrcAnn a) e1 -> GenLocated (SrcAnn a) e2 -> SrcAnn a #

combineSrcSpansA :: Semigroup a => SrcAnn a -> SrcAnn a -> SrcAnn a #

addCLocA :: GenLocated (SrcSpanAnn' a) e1 -> GenLocated SrcSpan e2 -> e3 -> GenLocated (SrcAnn ann) e3 #

Combine locations from two `Located` things and add them to a third thing

addCLocAA :: GenLocated (SrcSpanAnn' a1) e1 -> GenLocated (SrcSpanAnn' a2) e2 -> e3 -> GenLocated (SrcAnn ann) e3 #

getFollowingComments :: EpAnnComments -> [LEpaComment] #

setFollowingComments :: EpAnnComments -> [LEpaComment] -> EpAnnComments #

setPriorComments :: EpAnnComments -> [LEpaComment] -> EpAnnComments #

noComments :: EpAnnCO #

placeholderRealSpan :: RealSrcSpan #

comment :: RealSrcSpan -> EpAnnComments -> EpAnnCO #

addCommentsToSrcAnn :: Monoid ann => SrcAnn ann -> EpAnnComments -> SrcAnn ann #

Add additional comments to a `SrcAnn`, used for manipulating the AST prior to exact printing the changed one.

setCommentsSrcAnn :: Monoid ann => SrcAnn ann -> EpAnnComments -> SrcAnn ann #

Replace any existing comments on a `SrcAnn`, used for manipulating the AST prior to exact printing the changed one.

addCommentsToEpAnn :: Monoid a => SrcSpan -> EpAnn a -> EpAnnComments -> EpAnn a #

Add additional comments, used for manipulating the AST prior to exact printing the changed one.

setCommentsEpAnn :: Monoid a => SrcSpan -> EpAnn a -> EpAnnComments -> EpAnn a #

Replace any existing comments, used for manipulating the AST prior to exact printing the changed one.

transferAnnsA :: SrcSpanAnnA -> SrcSpanAnnA -> (SrcSpanAnnA, SrcSpanAnnA) #

Transfer comments and trailing items from the annotations in the first `SrcSpanAnnA` argument to those in the second.

commentsOnlyA :: Monoid ann => SrcAnn ann -> SrcAnn ann #

Remove the exact print annotations payload, leaving only the anchor and comments.

removeCommentsA :: SrcAnn ann -> SrcAnn ann #

Remove the comments, leaving the exact print annotations payload

type OutputableBndrId (pass :: Pass) = (OutputableBndr (IdGhcP pass), OutputableBndr (IdGhcP (NoGhcTcPass pass)), Outputable (GenLocated (Anno (IdGhcP pass)) (IdGhcP pass)), Outputable (GenLocated (Anno (IdGhcP (NoGhcTcPass pass))) (IdGhcP (NoGhcTcPass pass))), IsPass pass) #

Constraint type to bundle up the requirement for `OutputableBndr` on both the `id` and the `NoGhcTc` of it. See Note [NoGhcTc].

type family NoGhcTcPass (p :: Pass) :: Pass where ... #

Equations

NoGhcTcPass 'Typechecked = 'Renamed |
NoGhcTcPass other = other |

type family IdGhcP (pass :: Pass) where ... #

Maps the "normal" id type for a given GHC pass

Equations

IdGhcP 'Parsed = RdrName |
IdGhcP 'Renamed = Name |
IdGhcP 'Typechecked = Id |

class (NoGhcTcPass (NoGhcTcPass p) ~ NoGhcTcPass p, IsPass (NoGhcTcPass p)) => IsPass (p :: Pass) where #

Allows us to check what phase we're in at GHC's runtime. For example, this class allows us to write > f :: forall p. IsPass p => HsExpr (GhcPass p) -> blah > f e = case ghcPass @p of > GhcPs -> ... in this RHS we have HsExpr GhcPs... > GhcRn -> ... in this RHS we have HsExpr GhcRn... > GhcTc -> ... in this RHS we have HsExpr GhcTc... which is very useful, for example, when pretty-printing. See Note [IsPass].

Methods

ghcPass :: GhcPass p #

#### Instances

Instances details

IsPass 'Parsed |
Instance details Defined in GHC.Hs.Extension Methods ghcPass :: GhcPass 'Parsed #
IsPass 'Renamed |
Instance details Defined in GHC.Hs.Extension Methods ghcPass :: GhcPass 'Renamed #
IsPass 'Typechecked |
Instance details Defined in GHC.Hs.Extension Methods ghcPass :: GhcPass 'Typechecked #

type GhcTc = GhcPass 'Typechecked #

data GhcPass (c :: Pass) where #

Used as a data type index for the hsSyn AST; also serves as a singleton type for Pass

Constructors

GhcPs :: GhcPass 'Parsed |
GhcRn :: GhcPass 'Renamed |
GhcTc :: GhcPass 'Typechecked |

#### Instances

Instances details

HasDecls ParsedSource |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => ParsedSource -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => ParsedSource -> [LHsDecl GhcPs] -> TransformT m ParsedSource #
CvtFlag BndrVis (HsBndrVis GhcPs) |
Instance details Defined in GHC.ThToHs Methods cvtFlag :: BndrVis -> HsBndrVis GhcPs
Typeable p => Data (GhcPass p) |

Instance details

Defined in GHC.Hs.Extension

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GhcPass p -> c (GhcPass p) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (GhcPass p) #

toConstr :: GhcPass p -> Constr #

dataTypeOf :: GhcPass p -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (GhcPass p)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (GhcPass p)) #

gmapT :: (forall b. Data b => b -> b) -> GhcPass p -> GhcPass p #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GhcPass p -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GhcPass p -> r #

gmapQ :: (forall d. Data d => d -> u) -> GhcPass p -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> GhcPass p -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> GhcPass p -> m (GhcPass p) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GhcPass p -> m (GhcPass p) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GhcPass p -> m (GhcPass p) #

Typeable p => Data (LayoutInfo (GhcPass p)) |

Instance details

Defined in GHC.Hs.Extension

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LayoutInfo (GhcPass p) -> c (LayoutInfo (GhcPass p)) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LayoutInfo (GhcPass p)) #

toConstr :: LayoutInfo (GhcPass p) -> Constr #

dataTypeOf :: LayoutInfo (GhcPass p) -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (LayoutInfo (GhcPass p))) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (LayoutInfo (GhcPass p))) #

gmapT :: (forall b. Data b => b -> b) -> LayoutInfo (GhcPass p) -> LayoutInfo (GhcPass p) #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LayoutInfo (GhcPass p) -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LayoutInfo (GhcPass p) -> r #

gmapQ :: (forall d. Data d => d -> u) -> LayoutInfo (GhcPass p) -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LayoutInfo (GhcPass p) -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LayoutInfo (GhcPass p) -> m (LayoutInfo (GhcPass p)) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LayoutInfo (GhcPass p) -> m (LayoutInfo (GhcPass p)) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LayoutInfo (GhcPass p) -> m (LayoutInfo (GhcPass p)) #

IsPass p => CollectPass (GhcPass p) |
Instance details Defined in GHC.Hs.Utils Methods collectXXPat :: CollectFlag (GhcPass p) -> XXPat (GhcPass p) -> [IdP (GhcPass p)] -> [IdP (GhcPass p)] # collectXXHsBindsLR :: XXHsBindsLR (GhcPass p) pR -> [IdP (GhcPass p)] -> [IdP (GhcPass p)] # collectXSplicePat :: CollectFlag (GhcPass p) -> XSplicePat (GhcPass p) -> [IdP (GhcPass p)] -> [IdP (GhcPass p)] #
HasLoc (HsDataDefn GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: HsDataDefn GhcRn -> SrcSpan
HiePass p => HasType (LocatedA (HsBind (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsBind (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct `HieAST` nodes which include the type of the expression. It is not yet possible to do this efficiently for all expression forms, so we skip filling in the type for those inputs. See Note [Computing the type of every node in the tree]
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (Pat (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (Pat (GhcPass p)) -> HieM [HieAST Type]
ToHie (LHsDoc GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LHsDoc GhcRn -> HieM [HieAST Type]
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: BindContext (LocatedA (HsBind (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (Context (FieldOcc (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (FieldOcc (GhcPass p)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IE GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IE GhcRn)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IEWrappedName GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IEWrappedName GhcRn)) -> HieM [HieAST Type]
HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: PScoped (LocatedA (Pat (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (PatSynFieldContext (RecordPatSynField (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: PatSynFieldContext (RecordPatSynField (GhcPass p)) -> HieM [HieAST Type]
(ToHie arg, HasLoc arg, Data arg, HiePass p) => ToHie (RContext (HsRecFields (GhcPass p) arg)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (HsRecFields (GhcPass p) arg) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (RScoped (NHsValBindsLR (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (NHsValBindsLR (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (RScoped (LocatedA (IPBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (IPBind (GhcPass p))) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), AnnoBody p body, HiePass p) => ToHie (RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p)))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p))))) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn)) -> HieM [HieAST Type]
HiePass p => ToHie (RScoped (HsLocalBinds (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (HsLocalBinds (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (RScoped (HsValBindsLR (GhcPass p) (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (HsValBindsLR (GhcPass p) (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (RScoped (ApplicativeArg (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (ApplicativeArg (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (SigContext (LocatedA (Sig (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: SigContext (LocatedA (Sig (GhcPass p))) -> HieM [HieAST Type]
ToHie (TScoped (LocatedA (HsSigType GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (LocatedA (HsSigType GhcRn)) -> HieM [HieAST Type]
ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (FamEqn GhcRn (HsDataDefn GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (HsDataDefn GhcRn)) -> HieM [HieAST Type]
ToHie (TScoped (HsPatSigType GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsPatSigType GhcRn) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (LHsQTyVars GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (LHsQTyVars GhcRn) -> HieM [HieAST Type]
Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TVScoped (LocatedA (HsTyVarBndr flag GhcRn)) -> HieM [HieAST Type]
Data flag => ToHie (TVScoped (HsOuterTyVarBndrs flag GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TVScoped (HsOuterTyVarBndrs flag GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FixitySig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FixitySig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (AnnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (AnnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ClsInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ClsInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DataFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DataFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DefaultDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DefaultDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DerivDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DerivDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DocDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DocDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FamilyDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FamilyDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ForeignDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ForeignDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FunDep GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FunDep GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (InstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (InstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RoleAnnotDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RoleAnnotDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecls GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (SpliceDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (SpliceDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (StandaloneKindSig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (StandaloneKindSig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyClDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyClDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecls GhcRn) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsCmd (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsUntypedSplice (GhcPass p)) -> HieM [HieAST Type]
(HiePass p, Data (body (GhcPass p)), AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
ToHie (LocatedA (ImportDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ImportDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDeclField GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDeclField GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (HsType GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsType GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC (DerivClauseTys GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC (DerivClauseTys GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC [LocatedA (HsType GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC [LocatedA (HsType GhcRn)] -> HieM [HieAST Type]
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedL [LocatedA (ConDeclField GhcRn)] -> HieM [HieAST Type]
HiePass p => ToHie (Located (PatSynBind (GhcPass p) (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Located (PatSynBind (GhcPass p) (GhcPass p)) -> HieM [HieAST Type]
ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)] -> HieM [HieAST Type]
HiePass p => ToHie (HsPatSynDir (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsPatSynDir (GhcPass p) -> HieM [HieAST Type]
ToHie (AnnProvenance GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: AnnProvenance GhcRn -> HieM [HieAST Type]
ToHie (FamilyInfo GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: FamilyInfo GhcRn -> HieM [HieAST Type]
ToHie (ForeignExport GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: ForeignExport GhcRn -> HieM [HieAST Type]
ToHie (ForeignImport GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: ForeignImport GhcRn -> HieM [HieAST Type]
ToHie (HsConDeclGADTDetails GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsConDeclGADTDetails GhcRn -> HieM [HieAST Type]
ToHie (HsDataDefn GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsDataDefn GhcRn -> HieM [HieAST Type]
ToHie (StandaloneKindSig GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: StandaloneKindSig GhcRn -> HieM [HieAST Type]
ToHie (TyClGroup GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TyClGroup GhcRn -> HieM [HieAST Type]
HiePass p => ToHie (HsMatchContext (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsMatchContext (GhcPass p) -> HieM [HieAST Type]
ToHie (HsQuote GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsQuote GhcRn -> HieM [HieAST Type]
HiePass p => ToHie (HsStmtContext (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsStmtContext (GhcPass p) -> HieM [HieAST Type]
HiePass p => ToHie (HsTupArg (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsTupArg (GhcPass p) -> HieM [HieAST Type]
DisambECP (PatBuilder GhcPs) |

Instance details

Defined in GHC.Parser.PostProcess

Associated Types

type Body (PatBuilder GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (PatBuilder GhcPs) = PatBuilder
type InfixOp (PatBuilder GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (PatBuilder GhcPs) = RdrName
type FunArg (PatBuilder GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (PatBuilder GhcPs) = PatBuilder GhcPs

Methods

ecpFromCmd' :: LHsCmd GhcPs -> PV (LocatedA (PatBuilder GhcPs)) #

ecpFromExp' :: LHsExpr GhcPs -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsProjUpdatePV :: SrcSpan -> Located [LocatedAn NoEpAnns (DotFieldOcc GhcPs)] -> LocatedA (PatBuilder GhcPs) -> Bool -> [AddEpAnn] -> PV (LHsRecProj GhcPs (LocatedA (PatBuilder GhcPs))) #

mkHsLamPV :: SrcSpan -> (EpAnnComments -> MatchGroup GhcPs (LocatedA (PatBuilder GhcPs))) -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsLetPV :: SrcSpan -> LHsToken "let" GhcPs -> HsLocalBinds GhcPs -> LHsToken "in" GhcPs -> LocatedA (PatBuilder GhcPs) -> PV (LocatedA (PatBuilder GhcPs)) #

superInfixOp :: (DisambInfixOp (InfixOp (PatBuilder GhcPs)) => PV (LocatedA (PatBuilder GhcPs))) -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsOpAppPV :: SrcSpan -> LocatedA (PatBuilder GhcPs) -> LocatedN (InfixOp (PatBuilder GhcPs)) -> LocatedA (PatBuilder GhcPs) -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsCasePV :: SrcSpan -> LHsExpr GhcPs -> LocatedL [LMatch GhcPs (LocatedA (PatBuilder GhcPs))] -> EpAnnHsCase -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsLamCasePV :: SrcSpan -> LamCaseVariant -> LocatedL [LMatch GhcPs (LocatedA (PatBuilder GhcPs))] -> [AddEpAnn] -> PV (LocatedA (PatBuilder GhcPs)) #

superFunArg :: (DisambECP (FunArg (PatBuilder GhcPs)) => PV (LocatedA (PatBuilder GhcPs))) -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsAppPV :: SrcSpanAnnA -> LocatedA (PatBuilder GhcPs) -> LocatedA (FunArg (PatBuilder GhcPs)) -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsAppTypePV :: SrcSpanAnnA -> LocatedA (PatBuilder GhcPs) -> LHsToken "@" GhcPs -> LHsType GhcPs -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsIfPV :: SrcSpan -> LHsExpr GhcPs -> Bool -> LocatedA (PatBuilder GhcPs) -> Bool -> LocatedA (PatBuilder GhcPs) -> AnnsIf -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsDoPV :: SrcSpan -> Maybe ModuleName -> LocatedL [LStmt GhcPs (LocatedA (PatBuilder GhcPs))] -> AnnList -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsParPV :: SrcSpan -> LHsToken "(" GhcPs -> LocatedA (PatBuilder GhcPs) -> LHsToken ")" GhcPs -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsVarPV :: LocatedN RdrName -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsLitPV :: Located (HsLit GhcPs) -> PV (Located (PatBuilder GhcPs)) #

mkHsOverLitPV :: LocatedAn a (HsOverLit GhcPs) -> PV (LocatedAn a (PatBuilder GhcPs)) #

mkHsWildCardPV :: SrcSpan -> PV (Located (PatBuilder GhcPs)) #

mkHsTySigPV :: SrcSpanAnnA -> LocatedA (PatBuilder GhcPs) -> LHsType GhcPs -> [AddEpAnn] -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsExplicitListPV :: SrcSpan -> [LocatedA (PatBuilder GhcPs)] -> AnnList -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsSplicePV :: Located (HsUntypedSplice GhcPs) -> PV (Located (PatBuilder GhcPs)) #

mkHsRecordPV :: Bool -> SrcSpan -> SrcSpan -> LocatedA (PatBuilder GhcPs) -> ([Fbind (PatBuilder GhcPs)], Maybe SrcSpan) -> [AddEpAnn] -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsNegAppPV :: SrcSpan -> LocatedA (PatBuilder GhcPs) -> [AddEpAnn] -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsSectionR_PV :: SrcSpan -> LocatedA (InfixOp (PatBuilder GhcPs)) -> LocatedA (PatBuilder GhcPs) -> PV (Located (PatBuilder GhcPs)) #

mkHsViewPatPV :: SrcSpan -> LHsExpr GhcPs -> LocatedA (PatBuilder GhcPs) -> [AddEpAnn] -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsAsPatPV :: SrcSpan -> LocatedN RdrName -> LHsToken "@" GhcPs -> LocatedA (PatBuilder GhcPs) -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsLazyPatPV :: SrcSpan -> LocatedA (PatBuilder GhcPs) -> [AddEpAnn] -> PV (LocatedA (PatBuilder GhcPs)) #

mkHsBangPatPV :: SrcSpan -> LocatedA (PatBuilder GhcPs) -> [AddEpAnn] -> PV (LocatedA (PatBuilder GhcPs)) #

mkSumOrTuplePV :: SrcSpanAnnA -> Boxity -> SumOrTuple (PatBuilder GhcPs) -> [AddEpAnn] -> PV (LocatedA (PatBuilder GhcPs)) #

rejectPragmaPV :: LocatedA (PatBuilder GhcPs) -> PV () #

DisambECP (HsCmd GhcPs) |

Instance details

Defined in GHC.Parser.PostProcess

Associated Types

type Body (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsCmd GhcPs) = HsCmd
type InfixOp (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsCmd GhcPs) = HsExpr GhcPs
type FunArg (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsCmd GhcPs) = HsExpr GhcPs

Methods

ecpFromCmd' :: LHsCmd GhcPs -> PV (LocatedA (HsCmd GhcPs)) #

ecpFromExp' :: LHsExpr GhcPs -> PV (LocatedA (HsCmd GhcPs)) #

mkHsProjUpdatePV :: SrcSpan -> Located [LocatedAn NoEpAnns (DotFieldOcc GhcPs)] -> LocatedA (HsCmd GhcPs) -> Bool -> [AddEpAnn] -> PV (LHsRecProj GhcPs (LocatedA (HsCmd GhcPs))) #

mkHsLamPV :: SrcSpan -> (EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsLetPV :: SrcSpan -> LHsToken "let" GhcPs -> HsLocalBinds GhcPs -> LHsToken "in" GhcPs -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) #

superInfixOp :: (DisambInfixOp (InfixOp (HsCmd GhcPs)) => PV (LocatedA (HsCmd GhcPs))) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsOpAppPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> LocatedN (InfixOp (HsCmd GhcPs)) -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsCasePV :: SrcSpan -> LHsExpr GhcPs -> LocatedL [LMatch GhcPs (LocatedA (HsCmd GhcPs))] -> EpAnnHsCase -> PV (LocatedA (HsCmd GhcPs)) #

mkHsLamCasePV :: SrcSpan -> LamCaseVariant -> LocatedL [LMatch GhcPs (LocatedA (HsCmd GhcPs))] -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

superFunArg :: (DisambECP (FunArg (HsCmd GhcPs)) => PV (LocatedA (HsCmd GhcPs))) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsAppPV :: SrcSpanAnnA -> LocatedA (HsCmd GhcPs) -> LocatedA (FunArg (HsCmd GhcPs)) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsAppTypePV :: SrcSpanAnnA -> LocatedA (HsCmd GhcPs) -> LHsToken "@" GhcPs -> LHsType GhcPs -> PV (LocatedA (HsCmd GhcPs)) #

mkHsIfPV :: SrcSpan -> LHsExpr GhcPs -> Bool -> LocatedA (HsCmd GhcPs) -> Bool -> LocatedA (HsCmd GhcPs) -> AnnsIf -> PV (LocatedA (HsCmd GhcPs)) #

mkHsDoPV :: SrcSpan -> Maybe ModuleName -> LocatedL [LStmt GhcPs (LocatedA (HsCmd GhcPs))] -> AnnList -> PV (LocatedA (HsCmd GhcPs)) #

mkHsParPV :: SrcSpan -> LHsToken "(" GhcPs -> LocatedA (HsCmd GhcPs) -> LHsToken ")" GhcPs -> PV (LocatedA (HsCmd GhcPs)) #

mkHsVarPV :: LocatedN RdrName -> PV (LocatedA (HsCmd GhcPs)) #

mkHsLitPV :: Located (HsLit GhcPs) -> PV (Located (HsCmd GhcPs)) #

mkHsOverLitPV :: LocatedAn a (HsOverLit GhcPs) -> PV (LocatedAn a (HsCmd GhcPs)) #

mkHsWildCardPV :: SrcSpan -> PV (Located (HsCmd GhcPs)) #

mkHsTySigPV :: SrcSpanAnnA -> LocatedA (HsCmd GhcPs) -> LHsType GhcPs -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsExplicitListPV :: SrcSpan -> [LocatedA (HsCmd GhcPs)] -> AnnList -> PV (LocatedA (HsCmd GhcPs)) #

mkHsSplicePV :: Located (HsUntypedSplice GhcPs) -> PV (Located (HsCmd GhcPs)) #

mkHsRecordPV :: Bool -> SrcSpan -> SrcSpan -> LocatedA (HsCmd GhcPs) -> ([Fbind (HsCmd GhcPs)], Maybe SrcSpan) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsNegAppPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsSectionR_PV :: SrcSpan -> LocatedA (InfixOp (HsCmd GhcPs)) -> LocatedA (HsCmd GhcPs) -> PV (Located (HsCmd GhcPs)) #

mkHsViewPatPV :: SrcSpan -> LHsExpr GhcPs -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsAsPatPV :: SrcSpan -> LocatedN RdrName -> LHsToken "@" GhcPs -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsLazyPatPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsBangPatPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkSumOrTuplePV :: SrcSpanAnnA -> Boxity -> SumOrTuple (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

rejectPragmaPV :: LocatedA (HsCmd GhcPs) -> PV () #

DisambECP (HsExpr GhcPs) |

Instance details

Defined in GHC.Parser.PostProcess

Associated Types

type Body (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsExpr GhcPs) = HsExpr
type InfixOp (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsExpr GhcPs) = HsExpr GhcPs
type FunArg (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsExpr GhcPs) = HsExpr GhcPs

Methods

ecpFromCmd' :: LHsCmd GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

ecpFromExp' :: LHsExpr GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

mkHsProjUpdatePV :: SrcSpan -> Located [LocatedAn NoEpAnns (DotFieldOcc GhcPs)] -> LocatedA (HsExpr GhcPs) -> Bool -> [AddEpAnn] -> PV (LHsRecProj GhcPs (LocatedA (HsExpr GhcPs))) #

mkHsLamPV :: SrcSpan -> (EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLetPV :: SrcSpan -> LHsToken "let" GhcPs -> HsLocalBinds GhcPs -> LHsToken "in" GhcPs -> LocatedA (HsExpr GhcPs) -> PV (LocatedA (HsExpr GhcPs)) #

superInfixOp :: (DisambInfixOp (InfixOp (HsExpr GhcPs)) => PV (LocatedA (HsExpr GhcPs))) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsOpAppPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> LocatedN (InfixOp (HsExpr GhcPs)) -> LocatedA (HsExpr GhcPs) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsCasePV :: SrcSpan -> LHsExpr GhcPs -> LocatedL [LMatch GhcPs (LocatedA (HsExpr GhcPs))] -> EpAnnHsCase -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLamCasePV :: SrcSpan -> LamCaseVariant -> LocatedL [LMatch GhcPs (LocatedA (HsExpr GhcPs))] -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

superFunArg :: (DisambECP (FunArg (HsExpr GhcPs)) => PV (LocatedA (HsExpr GhcPs))) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsAppPV :: SrcSpanAnnA -> LocatedA (HsExpr GhcPs) -> LocatedA (FunArg (HsExpr GhcPs)) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsAppTypePV :: SrcSpanAnnA -> LocatedA (HsExpr GhcPs) -> LHsToken "@" GhcPs -> LHsType GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

mkHsIfPV :: SrcSpan -> LHsExpr GhcPs -> Bool -> LocatedA (HsExpr GhcPs) -> Bool -> LocatedA (HsExpr GhcPs) -> AnnsIf -> PV (LocatedA (HsExpr GhcPs)) #

mkHsDoPV :: SrcSpan -> Maybe ModuleName -> LocatedL [LStmt GhcPs (LocatedA (HsExpr GhcPs))] -> AnnList -> PV (LocatedA (HsExpr GhcPs)) #

mkHsParPV :: SrcSpan -> LHsToken "(" GhcPs -> LocatedA (HsExpr GhcPs) -> LHsToken ")" GhcPs -> PV (LocatedA (HsExpr GhcPs)) #

mkHsVarPV :: LocatedN RdrName -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLitPV :: Located (HsLit GhcPs) -> PV (Located (HsExpr GhcPs)) #

mkHsOverLitPV :: LocatedAn a (HsOverLit GhcPs) -> PV (LocatedAn a (HsExpr GhcPs)) #

mkHsWildCardPV :: SrcSpan -> PV (Located (HsExpr GhcPs)) #

mkHsTySigPV :: SrcSpanAnnA -> LocatedA (HsExpr GhcPs) -> LHsType GhcPs -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsExplicitListPV :: SrcSpan -> [LocatedA (HsExpr GhcPs)] -> AnnList -> PV (LocatedA (HsExpr GhcPs)) #

mkHsSplicePV :: Located (HsUntypedSplice GhcPs) -> PV (Located (HsExpr GhcPs)) #

mkHsRecordPV :: Bool -> SrcSpan -> SrcSpan -> LocatedA (HsExpr GhcPs) -> ([Fbind (HsExpr GhcPs)], Maybe SrcSpan) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsNegAppPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsSectionR_PV :: SrcSpan -> LocatedA (InfixOp (HsExpr GhcPs)) -> LocatedA (HsExpr GhcPs) -> PV (Located (HsExpr GhcPs)) #

mkHsViewPatPV :: SrcSpan -> LHsExpr GhcPs -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsAsPatPV :: SrcSpan -> LocatedN RdrName -> LHsToken "@" GhcPs -> LocatedA (HsExpr GhcPs) -> PV (LocatedA (HsExpr GhcPs)) #

mkHsLazyPatPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkHsBangPatPV :: SrcSpan -> LocatedA (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

mkSumOrTuplePV :: SrcSpanAnnA -> Boxity -> SumOrTuple (HsExpr GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsExpr GhcPs)) #

rejectPragmaPV :: LocatedA (HsExpr GhcPs) -> PV () #

DisambInfixOp (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess Methods mkHsVarOpPV :: LocatedN RdrName -> PV (LocatedN (HsExpr GhcPs)) # mkHsConOpPV :: LocatedN RdrName -> PV (LocatedN (HsExpr GhcPs)) # mkHsInfixHolePV :: SrcSpan -> (EpAnnComments -> EpAnn EpAnnUnboundVar) -> PV (Located (HsExpr GhcPs)) #
DisambTD (HsType GhcPs) |

Instance details

Defined in GHC.Parser.PostProcess

Methods

mkHsAppTyHeadPV :: LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) #

mkHsAppTyPV :: LocatedA (HsType GhcPs) -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) #

mkHsAppKindTyPV :: LocatedA (HsType GhcPs) -> LHsToken "@" GhcPs -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) #

mkHsOpTyPV :: PromotionFlag -> LHsType GhcPs -> LocatedN RdrName -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) #

mkUnpackednessPV :: Located UnpackednessPragma -> LocatedA (HsType GhcPs) -> PV (LocatedA (HsType GhcPs)) #

HasHaddock (LocatedA (ConDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (ConDecl GhcPs) -> HdkA (LocatedA (ConDecl GhcPs))
HasHaddock (LocatedA (HsDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsDecl GhcPs) -> HdkA (LocatedA (HsDecl GhcPs))
HasHaddock (LocatedA (IE GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (IE GhcPs) -> HdkA (LocatedA (IE GhcPs))
HasHaddock (LocatedA (HsSigType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsSigType GhcPs) -> HdkA (LocatedA (HsSigType GhcPs))
HasHaddock (LocatedA (HsType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsType GhcPs) -> HdkA (LocatedA (HsType GhcPs))
HasHaddock (LocatedC (DerivClauseTys GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedC (DerivClauseTys GhcPs) -> HdkA (LocatedC (DerivClauseTys GhcPs))
HasHaddock (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedL [LocatedA (IE GhcPs)] -> HdkA (LocatedL [LocatedA (IE GhcPs)])
HasHaddock (Located (HsModule GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located (HsModule GhcPs) -> HdkA (Located (HsModule GhcPs))
HasHaddock (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)] -> HdkA (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)])
HasHaddock (HsDataDefn GhcPs) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsDataDefn GhcPs -> HdkA (HsDataDefn GhcPs)
HasHaddock (HsDecl GhcPs) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsDecl GhcPs -> HdkA (HsDecl GhcPs)
Outputable (PatBuilder GhcPs) |
Instance details Defined in GHC.Parser.Types Methods ppr :: PatBuilder GhcPs -> SDoc #
OutputableBndrId p => Outputable (HsTypeOrSigType (GhcPass p)) |
Instance details Defined in GHC.Tc.Errors.Types Methods ppr :: HsTypeOrSigType (GhcPass p) -> SDoc #
OutputableBndrId a => Outputable (InstInfo (GhcPass a)) |
Instance details Defined in GHC.Tc.Utils.Env Methods ppr :: InstInfo (GhcPass a) -> SDoc #
MapXRec (GhcPass p) |
Instance details Defined in GHC.Hs.Extension Methods mapXRec :: Anno a ~ Anno b => (a -> b) -> XRec (GhcPass p) a -> XRec (GhcPass p) b #
UnXRec (GhcPass p) |
Instance details Defined in GHC.Hs.Extension Methods unXRec :: XRec (GhcPass p) a -> a #
ExactPrint (Match GhcPs (LocatedA body)) => ExactPrint (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (Match GhcPs (LocatedA body))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> EP w m (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedL [LocatedA (IE GhcPs)] -> Entry # setAnnotationAnchor :: LocatedL [LocatedA (IE GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (IE GhcPs)] # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (IE GhcPs)] -> EP w m (LocatedL [LocatedA (IE GhcPs)]) #
ExactPrint (LocatedL [LocatedA (ConDeclField GhcPs)]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (ConDeclField GhcPs)] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (ConDeclField GhcPs)] -> EP w m (LocatedL [LocatedA (ConDeclField GhcPs)]) #

ExactPrint (LocatedP (WarningTxt GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP (WarningTxt GhcPs) -> Entry # setAnnotationAnchor :: LocatedP (WarningTxt GhcPs) -> Anchor -> EpAnnComments -> LocatedP (WarningTxt GhcPs) # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP (WarningTxt GhcPs) -> EP w m (LocatedP (WarningTxt GhcPs)) #
ExactPrint (HsModule GhcPs) | 'Located (HsModule GhcPs)' corresponds to `ParsedSource`
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsModule GhcPs -> Entry # setAnnotationAnchor :: HsModule GhcPs -> Anchor -> EpAnnComments -> HsModule GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsModule GhcPs -> EP w m (HsModule GhcPs) #
ExactPrint (HsBind GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsBind GhcPs -> Entry # setAnnotationAnchor :: HsBind GhcPs -> Anchor -> EpAnnComments -> HsBind GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsBind GhcPs -> EP w m (HsBind GhcPs) #
ExactPrint (HsIPBinds GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsIPBinds GhcPs -> Entry # setAnnotationAnchor :: HsIPBinds GhcPs -> Anchor -> EpAnnComments -> HsIPBinds GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsIPBinds GhcPs -> EP w m (HsIPBinds GhcPs) #
ExactPrint (HsLocalBinds GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsLocalBinds GhcPs -> Entry # setAnnotationAnchor :: HsLocalBinds GhcPs -> Anchor -> EpAnnComments -> HsLocalBinds GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsLocalBinds GhcPs -> EP w m (HsLocalBinds GhcPs) #
ExactPrint (IPBind GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: IPBind GhcPs -> Entry # setAnnotationAnchor :: IPBind GhcPs -> Anchor -> EpAnnComments -> IPBind GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => IPBind GhcPs -> EP w m (IPBind GhcPs) #
ExactPrint (RecordPatSynField GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RecordPatSynField GhcPs -> Entry # setAnnotationAnchor :: RecordPatSynField GhcPs -> Anchor -> EpAnnComments -> RecordPatSynField GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RecordPatSynField GhcPs -> EP w m (RecordPatSynField GhcPs) #
ExactPrint (Sig GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: Sig GhcPs -> Entry # setAnnotationAnchor :: Sig GhcPs -> Anchor -> EpAnnComments -> Sig GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Sig GhcPs -> EP w m (Sig GhcPs) #
ExactPrint (AnnDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: AnnDecl GhcPs -> Entry # setAnnotationAnchor :: AnnDecl GhcPs -> Anchor -> EpAnnComments -> AnnDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => AnnDecl GhcPs -> EP w m (AnnDecl GhcPs) #
ExactPrint (ClsInstDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ClsInstDecl GhcPs -> Entry # setAnnotationAnchor :: ClsInstDecl GhcPs -> Anchor -> EpAnnComments -> ClsInstDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ClsInstDecl GhcPs -> EP w m (ClsInstDecl GhcPs) #
ExactPrint (ConDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ConDecl GhcPs -> Entry # setAnnotationAnchor :: ConDecl GhcPs -> Anchor -> EpAnnComments -> ConDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ConDecl GhcPs -> EP w m (ConDecl GhcPs) #
ExactPrint (DefaultDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DefaultDecl GhcPs -> Entry # setAnnotationAnchor :: DefaultDecl GhcPs -> Anchor -> EpAnnComments -> DefaultDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DefaultDecl GhcPs -> EP w m (DefaultDecl GhcPs) #
ExactPrint (DerivClauseTys GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DerivClauseTys GhcPs -> Entry # setAnnotationAnchor :: DerivClauseTys GhcPs -> Anchor -> EpAnnComments -> DerivClauseTys GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DerivClauseTys GhcPs -> EP w m (DerivClauseTys GhcPs) #
ExactPrint (DerivDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DerivDecl GhcPs -> Entry # setAnnotationAnchor :: DerivDecl GhcPs -> Anchor -> EpAnnComments -> DerivDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DerivDecl GhcPs -> EP w m (DerivDecl GhcPs) #
ExactPrint (DerivStrategy GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DerivStrategy GhcPs -> Entry # setAnnotationAnchor :: DerivStrategy GhcPs -> Anchor -> EpAnnComments -> DerivStrategy GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DerivStrategy GhcPs -> EP w m (DerivStrategy GhcPs) #
ExactPrint (DocDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DocDecl GhcPs -> Entry # setAnnotationAnchor :: DocDecl GhcPs -> Anchor -> EpAnnComments -> DocDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DocDecl GhcPs -> EP w m (DocDecl GhcPs) #
ExactPrint (FamilyDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FamilyDecl GhcPs -> Entry # setAnnotationAnchor :: FamilyDecl GhcPs -> Anchor -> EpAnnComments -> FamilyDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FamilyDecl GhcPs -> EP w m (FamilyDecl GhcPs) #
ExactPrint (ForeignDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ForeignDecl GhcPs -> Entry # setAnnotationAnchor :: ForeignDecl GhcPs -> Anchor -> EpAnnComments -> ForeignDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ForeignDecl GhcPs -> EP w m (ForeignDecl GhcPs) #
ExactPrint (ForeignExport GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ForeignExport GhcPs -> Entry # setAnnotationAnchor :: ForeignExport GhcPs -> Anchor -> EpAnnComments -> ForeignExport GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ForeignExport GhcPs -> EP w m (ForeignExport GhcPs) #
ExactPrint (ForeignImport GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ForeignImport GhcPs -> Entry # setAnnotationAnchor :: ForeignImport GhcPs -> Anchor -> EpAnnComments -> ForeignImport GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ForeignImport GhcPs -> EP w m (ForeignImport GhcPs) #
ExactPrint (FunDep GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FunDep GhcPs -> Entry # setAnnotationAnchor :: FunDep GhcPs -> Anchor -> EpAnnComments -> FunDep GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FunDep GhcPs -> EP w m (FunDep GhcPs) #
ExactPrint (HsDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsDecl GhcPs -> Entry # setAnnotationAnchor :: HsDecl GhcPs -> Anchor -> EpAnnComments -> HsDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsDecl GhcPs -> EP w m (HsDecl GhcPs) #
ExactPrint (HsDerivingClause GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsDerivingClause GhcPs -> Entry # setAnnotationAnchor :: HsDerivingClause GhcPs -> Anchor -> EpAnnComments -> HsDerivingClause GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsDerivingClause GhcPs -> EP w m (HsDerivingClause GhcPs) #
ExactPrint (InjectivityAnn GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: InjectivityAnn GhcPs -> Entry # setAnnotationAnchor :: InjectivityAnn GhcPs -> Anchor -> EpAnnComments -> InjectivityAnn GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => InjectivityAnn GhcPs -> EP w m (InjectivityAnn GhcPs) #
ExactPrint (InstDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: InstDecl GhcPs -> Entry # setAnnotationAnchor :: InstDecl GhcPs -> Anchor -> EpAnnComments -> InstDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => InstDecl GhcPs -> EP w m (InstDecl GhcPs) #
ExactPrint (RoleAnnotDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RoleAnnotDecl GhcPs -> Entry # setAnnotationAnchor :: RoleAnnotDecl GhcPs -> Anchor -> EpAnnComments -> RoleAnnotDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RoleAnnotDecl GhcPs -> EP w m (RoleAnnotDecl GhcPs) #
ExactPrint (RuleBndr GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RuleBndr GhcPs -> Entry # setAnnotationAnchor :: RuleBndr GhcPs -> Anchor -> EpAnnComments -> RuleBndr GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RuleBndr GhcPs -> EP w m (RuleBndr GhcPs) #
ExactPrint (RuleDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RuleDecl GhcPs -> Entry # setAnnotationAnchor :: RuleDecl GhcPs -> Anchor -> EpAnnComments -> RuleDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RuleDecl GhcPs -> EP w m (RuleDecl GhcPs) #
ExactPrint (RuleDecls GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RuleDecls GhcPs -> Entry # setAnnotationAnchor :: RuleDecls GhcPs -> Anchor -> EpAnnComments -> RuleDecls GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RuleDecls GhcPs -> EP w m (RuleDecls GhcPs) #
ExactPrint (SpliceDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: SpliceDecl GhcPs -> Entry # setAnnotationAnchor :: SpliceDecl GhcPs -> Anchor -> EpAnnComments -> SpliceDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => SpliceDecl GhcPs -> EP w m (SpliceDecl GhcPs) #
ExactPrint (StandaloneKindSig GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: StandaloneKindSig GhcPs -> Entry # setAnnotationAnchor :: StandaloneKindSig GhcPs -> Anchor -> EpAnnComments -> StandaloneKindSig GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => StandaloneKindSig GhcPs -> EP w m (StandaloneKindSig GhcPs) #
ExactPrint (TyClDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: TyClDecl GhcPs -> Entry # setAnnotationAnchor :: TyClDecl GhcPs -> Anchor -> EpAnnComments -> TyClDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => TyClDecl GhcPs -> EP w m (TyClDecl GhcPs) #
ExactPrint (TyFamInstDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: TyFamInstDecl GhcPs -> Entry # setAnnotationAnchor :: TyFamInstDecl GhcPs -> Anchor -> EpAnnComments -> TyFamInstDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => TyFamInstDecl GhcPs -> EP w m (TyFamInstDecl GhcPs) #
ExactPrint (WarnDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: WarnDecl GhcPs -> Entry # setAnnotationAnchor :: WarnDecl GhcPs -> Anchor -> EpAnnComments -> WarnDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => WarnDecl GhcPs -> EP w m (WarnDecl GhcPs) #
ExactPrint (WarnDecls GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: WarnDecls GhcPs -> Entry # setAnnotationAnchor :: WarnDecls GhcPs -> Anchor -> EpAnnComments -> WarnDecls GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => WarnDecls GhcPs -> EP w m (WarnDecls GhcPs) #
ExactPrint (DotFieldOcc GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DotFieldOcc GhcPs -> Entry # setAnnotationAnchor :: DotFieldOcc GhcPs -> Anchor -> EpAnnComments -> DotFieldOcc GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DotFieldOcc GhcPs -> EP w m (DotFieldOcc GhcPs) #
ExactPrint (FieldLabelStrings GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FieldLabelStrings GhcPs -> Entry # setAnnotationAnchor :: FieldLabelStrings GhcPs -> Anchor -> EpAnnComments -> FieldLabelStrings GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FieldLabelStrings GhcPs -> EP w m (FieldLabelStrings GhcPs) #
ExactPrint (HsCmd GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsCmd GhcPs -> Entry # setAnnotationAnchor :: HsCmd GhcPs -> Anchor -> EpAnnComments -> HsCmd GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsCmd GhcPs -> EP w m (HsCmd GhcPs) #
ExactPrint (HsCmdTop GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsCmdTop GhcPs -> Entry # setAnnotationAnchor :: HsCmdTop GhcPs -> Anchor -> EpAnnComments -> HsCmdTop GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsCmdTop GhcPs -> EP w m (HsCmdTop GhcPs) #
ExactPrint (HsExpr GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsExpr GhcPs -> Entry # setAnnotationAnchor :: HsExpr GhcPs -> Anchor -> EpAnnComments -> HsExpr GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsExpr GhcPs -> EP w m (HsExpr GhcPs) #
ExactPrint (HsPragE GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsPragE GhcPs -> Entry # setAnnotationAnchor :: HsPragE GhcPs -> Anchor -> EpAnnComments -> HsPragE GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsPragE GhcPs -> EP w m (HsPragE GhcPs) #
ExactPrint (HsTupArg GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsTupArg GhcPs -> Entry # setAnnotationAnchor :: HsTupArg GhcPs -> Anchor -> EpAnnComments -> HsTupArg GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsTupArg GhcPs -> EP w m (HsTupArg GhcPs) #
ExactPrint (HsUntypedSplice GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsUntypedSplice GhcPs -> Entry # setAnnotationAnchor :: HsUntypedSplice GhcPs -> Anchor -> EpAnnComments -> HsUntypedSplice GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsUntypedSplice GhcPs -> EP w m (HsUntypedSplice GhcPs) #
ExactPrint (LHsRecUpdFields GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LHsRecUpdFields GhcPs -> Entry # setAnnotationAnchor :: LHsRecUpdFields GhcPs -> Anchor -> EpAnnComments -> LHsRecUpdFields GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LHsRecUpdFields GhcPs -> EP w m (LHsRecUpdFields GhcPs) #
ExactPrint (IE GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: IE GhcPs -> Entry # setAnnotationAnchor :: IE GhcPs -> Anchor -> EpAnnComments -> IE GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => IE GhcPs -> EP w m (IE GhcPs) #
ExactPrint (IEWrappedName GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: IEWrappedName GhcPs -> Entry # setAnnotationAnchor :: IEWrappedName GhcPs -> Anchor -> EpAnnComments -> IEWrappedName GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => IEWrappedName GhcPs -> EP w m (IEWrappedName GhcPs) #
ExactPrint (ImportDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ImportDecl GhcPs -> Entry # setAnnotationAnchor :: ImportDecl GhcPs -> Anchor -> EpAnnComments -> ImportDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ImportDecl GhcPs -> EP w m (ImportDecl GhcPs) #
ExactPrint (HsOverLit GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsOverLit GhcPs -> Entry # setAnnotationAnchor :: HsOverLit GhcPs -> Anchor -> EpAnnComments -> HsOverLit GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsOverLit GhcPs -> EP w m (HsOverLit GhcPs) #
ExactPrint (HsConPatTyArg GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsConPatTyArg GhcPs -> Entry # setAnnotationAnchor :: HsConPatTyArg GhcPs -> Anchor -> EpAnnComments -> HsConPatTyArg GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsConPatTyArg GhcPs -> EP w m (HsConPatTyArg GhcPs) #
ExactPrint (Pat GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: Pat GhcPs -> Entry # setAnnotationAnchor :: Pat GhcPs -> Anchor -> EpAnnComments -> Pat GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Pat GhcPs -> EP w m (Pat GhcPs) #
ExactPrint (AmbiguousFieldOcc GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: AmbiguousFieldOcc GhcPs -> Entry # setAnnotationAnchor :: AmbiguousFieldOcc GhcPs -> Anchor -> EpAnnComments -> AmbiguousFieldOcc GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => AmbiguousFieldOcc GhcPs -> EP w m (AmbiguousFieldOcc GhcPs) #
ExactPrint (ConDeclField GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ConDeclField GhcPs -> Entry # setAnnotationAnchor :: ConDeclField GhcPs -> Anchor -> EpAnnComments -> ConDeclField GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ConDeclField GhcPs -> EP w m (ConDeclField GhcPs) #
ExactPrint (FieldOcc GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FieldOcc GhcPs -> Entry # setAnnotationAnchor :: FieldOcc GhcPs -> Anchor -> EpAnnComments -> FieldOcc GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FieldOcc GhcPs -> EP w m (FieldOcc GhcPs) #
ExactPrint (HsForAllTelescope GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsForAllTelescope GhcPs -> Entry # setAnnotationAnchor :: HsForAllTelescope GhcPs -> Anchor -> EpAnnComments -> HsForAllTelescope GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsForAllTelescope GhcPs -> EP w m (HsForAllTelescope GhcPs) #
ExactPrint (HsPatSigType GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsPatSigType GhcPs -> Entry # setAnnotationAnchor :: HsPatSigType GhcPs -> Anchor -> EpAnnComments -> HsPatSigType GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsPatSigType GhcPs -> EP w m (HsPatSigType GhcPs) #
ExactPrint (HsSigType GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsSigType GhcPs -> Entry # setAnnotationAnchor :: HsSigType GhcPs -> Anchor -> EpAnnComments -> HsSigType GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsSigType GhcPs -> EP w m (HsSigType GhcPs) #
ExactPrint (HsType GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsType GhcPs -> Entry # setAnnotationAnchor :: HsType GhcPs -> Anchor -> EpAnnComments -> HsType GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsType GhcPs -> EP w m (HsType GhcPs) #
ExactPrintTVFlag (HsBndrVis GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods exactTVDelimiters :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => EpAnn [AddEpAnn] -> HsBndrVis GhcPs -> EP w m (HsTyVarBndr (HsBndrVis GhcPs) GhcPs) -> EP w m (EpAnn [AddEpAnn], HsTyVarBndr (HsBndrVis GhcPs) GhcPs)
HasDecls (LocatedA (HsExpr GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (HsExpr GhcPs)) #
HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] #

replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) #

HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) #
RepTV (HsBndrVis GhcRn) BndrVis |
Instance details Defined in GHC.HsToCore.Quote Methods tyVarBndrName :: Name repPlainTV :: Core Name -> HsBndrVis GhcRn -> MetaM (Core (M (TyVarBndr BndrVis))) repKindedTV :: Core Name -> HsBndrVis GhcRn -> Core (M Kind) -> MetaM (Core (M (TyVarBndr BndrVis)))
(HasLoc a, HiePass p) => HasLoc (FamEqn (GhcPass p) a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: FamEqn (GhcPass p) a -> SrcSpan
ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsDerivingClause GhcRn) -> HieM [HieAST Type]
ToHie (LocatedAn NoEpAnns (InjectivityAnn GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (InjectivityAnn GhcRn) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedAn NoEpAnns (HsCmdTop (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsCmdTop (GhcPass p)) -> HieM [HieAST Type]
(ToHie rhs, HasLoc rhs) => ToHie (FamEqn GhcRn rhs) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: FamEqn GhcRn rhs -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
(HiePass p, AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
ToHie a => ToHie (HsScaled GhcRn a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsScaled GhcRn a -> HieM [HieAST Type]
HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedAn NoEpAnns (HsDerivingClause GhcPs) -> HdkA (LocatedAn NoEpAnns (HsDerivingClause GhcPs))
HasHaddock a => HasHaddock (HsScaled GhcPs a) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsScaled GhcPs a -> HdkA (HsScaled GhcPs a)
HasHaddock a => HasHaddock (HsWildCardBndrs GhcPs a) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsWildCardBndrs GhcPs a -> HdkA (HsWildCardBndrs GhcPs a)
Binary a => Binary (WithHsDocIdentifiers a GhcRn) |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> WithHsDocIdentifiers a GhcRn -> IO () # put :: BinHandle -> WithHsDocIdentifiers a GhcRn -> IO (Bin (WithHsDocIdentifiers a GhcRn)) # get :: BinHandle -> IO (WithHsDocIdentifiers a GhcRn) #
ExactPrint a => ExactPrint (WithHsDocIdentifiers a GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: WithHsDocIdentifiers a GhcPs -> Entry # setAnnotationAnchor :: WithHsDocIdentifiers a GhcPs -> Anchor -> EpAnnComments -> WithHsDocIdentifiers a GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => WithHsDocIdentifiers a GhcPs -> EP w m (WithHsDocIdentifiers a GhcPs) #
ExactPrint (HsValBindsLR GhcPs GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsValBindsLR GhcPs GhcPs -> Entry # setAnnotationAnchor :: HsValBindsLR GhcPs GhcPs -> Anchor -> EpAnnComments -> HsValBindsLR GhcPs GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsValBindsLR GhcPs GhcPs -> EP w m (HsValBindsLR GhcPs GhcPs) #
ExactPrint (PatSynBind GhcPs GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: PatSynBind GhcPs GhcPs -> Entry # setAnnotationAnchor :: PatSynBind GhcPs GhcPs -> Anchor -> EpAnnComments -> PatSynBind GhcPs GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => PatSynBind GhcPs GhcPs -> EP w m (PatSynBind GhcPs GhcPs) #
ExactPrint body => ExactPrint (FamEqn GhcPs body) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FamEqn GhcPs body -> Entry # setAnnotationAnchor :: FamEqn GhcPs body -> Anchor -> EpAnnComments -> FamEqn GhcPs body # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FamEqn GhcPs body -> EP w m (FamEqn GhcPs body) #
ExactPrint (GRHS GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHS GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (ParStmtBlock GhcPs GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ParStmtBlock GhcPs GhcPs -> Entry # setAnnotationAnchor :: ParStmtBlock GhcPs GhcPs -> Anchor -> EpAnnComments -> ParStmtBlock GhcPs GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ParStmtBlock GhcPs GhcPs -> EP w m (ParStmtBlock GhcPs GhcPs) #
ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) #

ExactPrint (LocatedA body) => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> EP w m (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) #

ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) #

ExactPrint body => ExactPrint (HsRecFields GhcPs body) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsRecFields GhcPs body -> Entry # setAnnotationAnchor :: HsRecFields GhcPs body -> Anchor -> EpAnnComments -> HsRecFields GhcPs body # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsRecFields GhcPs body -> EP w m (HsRecFields GhcPs body) #
ExactPrintTVFlag flag => ExactPrint (HsOuterTyVarBndrs flag GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsOuterTyVarBndrs flag GhcPs -> Entry # setAnnotationAnchor :: HsOuterTyVarBndrs flag GhcPs -> Anchor -> EpAnnComments -> HsOuterTyVarBndrs flag GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsOuterTyVarBndrs flag GhcPs -> EP w m (HsOuterTyVarBndrs flag GhcPs) #
ExactPrint a => ExactPrint (HsScaled GhcPs a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsScaled GhcPs a -> Entry # setAnnotationAnchor :: HsScaled GhcPs a -> Anchor -> EpAnnComments -> HsScaled GhcPs a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsScaled GhcPs a -> EP w m (HsScaled GhcPs a) #
ExactPrintTVFlag flag => ExactPrint (HsTyVarBndr flag GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsTyVarBndr flag GhcPs -> Entry # setAnnotationAnchor :: HsTyVarBndr flag GhcPs -> Anchor -> EpAnnComments -> HsTyVarBndr flag GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsTyVarBndr flag GhcPs -> EP w m (HsTyVarBndr flag GhcPs) #
ExactPrint body => ExactPrint (HsWildCardBndrs GhcPs body) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsWildCardBndrs GhcPs body -> Entry # setAnnotationAnchor :: HsWildCardBndrs GhcPs body -> Anchor -> EpAnnComments -> HsWildCardBndrs GhcPs body # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsWildCardBndrs GhcPs body -> EP w m (HsWildCardBndrs GhcPs body) #
(ExactPrint (LocatedA (body GhcPs)), Anno (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA, Anno [GenLocated SrcSpanAnnA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))] ~ SrcSpanAnnL, ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))])) => ExactPrint (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Entry #

setAnnotationAnchor :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Anchor -> EpAnnComments -> StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> EP w m (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) #

(ExactPrint tm, ExactPrint ty, Outputable tm, Outputable ty) => ExactPrint (HsArg GhcPs tm ty) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsArg GhcPs tm ty -> Entry # setAnnotationAnchor :: HsArg GhcPs tm ty -> Anchor -> EpAnnComments -> HsArg GhcPs tm ty # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsArg GhcPs tm ty -> EP w m (HsArg GhcPs tm ty) #
data HsRecUpdParent GhcPs |
Instance details Defined in GHC.Hs.Expr data HsRecUpdParent GhcPs
data HsRecUpdParent GhcRn |

Instance details

Defined in GHC.Hs.Expr

data HsRecUpdParent GhcRn = RnRecUpdParent {

- rnRecUpdLabels :: NonEmpty FieldGlobalRdrElt
- rnRecUpdCons :: UniqSet ConLikeName

}

data HsRecUpdParent GhcTc |

Instance details

Defined in GHC.Hs.Expr

data HsRecUpdParent GhcTc = TcRecUpdParent {

- tcRecUpdParent :: RecSelParent
- tcRecUpdLabels :: NonEmpty FieldGlobalRdrElt
- tcRecUpdCons :: UniqSet ConLike

}

type ImportDeclPkgQual GhcPs |
Instance details Defined in GHC.Hs.ImpExp type ImportDeclPkgQual GhcPs = RawPkgQual
type ImportDeclPkgQual GhcRn |
Instance details Defined in GHC.Hs.ImpExp type ImportDeclPkgQual GhcRn = PkgQual
type ImportDeclPkgQual GhcTc |
Instance details Defined in GHC.Hs.ImpExp type ImportDeclPkgQual GhcTc = PkgQual
type XAmbiguous GhcPs |
Instance details Defined in GHC.Hs.Type type XAmbiguous GhcPs = NoExtField
type XAmbiguous GhcRn |
Instance details Defined in GHC.Hs.Type type XAmbiguous GhcRn = NoExtField
type XAmbiguous GhcTc |
Instance details Defined in GHC.Hs.Type type XAmbiguous GhcTc = Id
type XAnyClassStrategy GhcPs |
Instance details Defined in GHC.Hs.Decls type XAnyClassStrategy GhcPs = EpAnn [AddEpAnn]
type XAnyClassStrategy GhcRn |
Instance details Defined in GHC.Hs.Decls type XAnyClassStrategy GhcRn = NoExtField
type XAnyClassStrategy GhcTc |
Instance details Defined in GHC.Hs.Decls type XAnyClassStrategy GhcTc = NoExtField
type XAppTypeE GhcPs |
Instance details Defined in GHC.Hs.Expr type XAppTypeE GhcPs = NoExtField
type XAppTypeE GhcRn |
Instance details Defined in GHC.Hs.Expr type XAppTypeE GhcRn = NoExtField
type XAppTypeE GhcTc |
Instance details Defined in GHC.Hs.Expr type XAppTypeE GhcTc = Type
type XApplicativeArgOne GhcPs |
Instance details Defined in GHC.Hs.Expr type XApplicativeArgOne GhcPs = NoExtField
type XApplicativeArgOne GhcRn |
Instance details Defined in GHC.Hs.Expr type XApplicativeArgOne GhcRn = FailOperator GhcRn
type XApplicativeArgOne GhcTc |
Instance details Defined in GHC.Hs.Expr type XApplicativeArgOne GhcTc = FailOperator GhcTc
type XArithSeq GhcPs |
Instance details Defined in GHC.Hs.Expr type XArithSeq GhcPs = EpAnn [AddEpAnn]
type XArithSeq GhcRn |
Instance details Defined in GHC.Hs.Expr type XArithSeq GhcRn = NoExtField
type XArithSeq GhcTc |
Instance details Defined in GHC.Hs.Expr type XArithSeq GhcTc = PostTcExpr
type XAsPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XAsPat GhcPs = EpAnnCO
type XAsPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XAsPat GhcRn = NoExtField
type XAsPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XAsPat GhcTc = NoExtField
type XBangPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XBangPat GhcPs = EpAnn [AddEpAnn]
type XBangPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XBangPat GhcRn = NoExtField
type XBangPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XBangPat GhcTc = NoExtField
type XCClsInstDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XCClsInstDecl GhcPs = (EpAnn [AddEpAnn], AnnSortKey)
type XCClsInstDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XCClsInstDecl GhcRn = NoExtField
type XCClsInstDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XCClsInstDecl GhcTc = NoExtField
type XCDefaultDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XCDefaultDecl GhcPs = EpAnn [AddEpAnn]
type XCDefaultDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XCDefaultDecl GhcRn = NoExtField
type XCDefaultDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XCDefaultDecl GhcTc = NoExtField
type XCFieldOcc GhcPs |
Instance details Defined in GHC.Hs.Type type XCFieldOcc GhcPs = NoExtField
type XCFieldOcc GhcRn |
Instance details Defined in GHC.Hs.Type type XCFieldOcc GhcRn = Name
type XCFieldOcc GhcTc |
Instance details Defined in GHC.Hs.Type type XCFieldOcc GhcTc = Id
type XCIPBind GhcPs |
Instance details Defined in GHC.Hs.Binds type XCIPBind GhcPs = EpAnn [AddEpAnn]
type XCIPBind GhcRn |
Instance details Defined in GHC.Hs.Binds type XCIPBind GhcRn = NoExtField
type XCIPBind GhcTc |
Instance details Defined in GHC.Hs.Binds type XCIPBind GhcTc = Id
type XCImportDecl GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XCImportDecl GhcPs = XImportDeclPass
type XCImportDecl GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XCImportDecl GhcRn = XImportDeclPass
type XCImportDecl GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XCImportDecl GhcTc = DataConCantHappen
type XCModule GhcPs |
Instance details Defined in GHC.Hs type XCModule GhcPs = XModulePs
type XCModule GhcRn |
Instance details Defined in GHC.Hs type XCModule GhcRn = DataConCantHappen
type XCModule GhcTc |
Instance details Defined in GHC.Hs type XCModule GhcTc = DataConCantHappen
type XCRoleAnnotDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XCRoleAnnotDecl GhcPs = EpAnn [AddEpAnn]
type XCRoleAnnotDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XCRoleAnnotDecl GhcRn = NoExtField
type XCRoleAnnotDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XCRoleAnnotDecl GhcTc = NoExtField
type XCRuleDecls GhcPs |
Instance details Defined in GHC.Hs.Decls type XCRuleDecls GhcPs = (EpAnn [AddEpAnn], SourceText)
type XCRuleDecls GhcRn |
Instance details Defined in GHC.Hs.Decls type XCRuleDecls GhcRn = SourceText
type XCRuleDecls GhcTc |
Instance details Defined in GHC.Hs.Decls type XCRuleDecls GhcTc = SourceText
type XCase GhcPs |
Instance details Defined in GHC.Hs.Expr type XCase GhcPs = EpAnn EpAnnHsCase
type XCase GhcRn |
Instance details Defined in GHC.Hs.Expr type XCase GhcRn = HsMatchContext GhcTc
type XCase GhcTc |
Instance details Defined in GHC.Hs.Expr type XCase GhcTc = HsMatchContext GhcTc
type XClassDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XClassDecl GhcPs = (EpAnn [AddEpAnn], AnnSortKey)
type XClassDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XClassDecl GhcRn = NameSet
type XClassDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XClassDecl GhcTc = NameSet
type XCmdArrApp GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdArrApp GhcPs = EpAnn AddEpAnn
type XCmdArrApp GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdArrApp GhcRn = NoExtField
type XCmdArrApp GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdArrApp GhcTc = Type
type XCmdArrForm GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdArrForm GhcPs = EpAnn AnnList
type XCmdArrForm GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdArrForm GhcRn = NoExtField
type XCmdArrForm GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdArrForm GhcTc = NoExtField
type XCmdCase GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdCase GhcPs = EpAnn EpAnnHsCase
type XCmdCase GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdCase GhcRn = NoExtField
type XCmdCase GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdCase GhcTc = NoExtField
type XCmdDo GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdDo GhcPs = EpAnn AnnList
type XCmdDo GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdDo GhcRn = NoExtField
type XCmdDo GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdDo GhcTc = Type
type XCmdIf GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdIf GhcPs = EpAnn AnnsIf
type XCmdIf GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdIf GhcRn = NoExtField
type XCmdIf GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdIf GhcTc = NoExtField
type XCmdLet GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdLet GhcPs = EpAnnCO
type XCmdLet GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdLet GhcRn = NoExtField
type XCmdLet GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdLet GhcTc = NoExtField
type XCmdTop GhcPs |
Instance details Defined in GHC.Hs.Expr type XCmdTop GhcPs = NoExtField
type XCmdTop GhcRn |
Instance details Defined in GHC.Hs.Expr type XCmdTop GhcRn = CmdSyntaxTable GhcRn
type XCmdTop GhcTc |
Instance details Defined in GHC.Hs.Expr type XCmdTop GhcTc = CmdTopTc
type XConPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XConPat GhcPs = EpAnn [AddEpAnn]
type XConPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XConPat GhcRn = NoExtField
type XConPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XConPat GhcTc = ConPatTc
type XDataDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XDataDecl GhcPs = EpAnn [AddEpAnn]
type XDataDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XDataDecl GhcRn = DataDeclRn
type XDataDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XDataDecl GhcTc = DataDeclRn
type XDecBrG GhcPs |
Instance details Defined in GHC.Hs.Expr type XDecBrG GhcPs = NoExtField
type XDecBrG GhcRn |
Instance details Defined in GHC.Hs.Expr type XDecBrG GhcRn = NoExtField
type XDecBrG GhcTc |
Instance details Defined in GHC.Hs.Expr type XDecBrG GhcTc = DataConCantHappen
type XDecBrL GhcPs |
Instance details Defined in GHC.Hs.Expr type XDecBrL GhcPs = NoExtField
type XDecBrL GhcRn |
Instance details Defined in GHC.Hs.Expr type XDecBrL GhcRn = NoExtField
type XDecBrL GhcTc |
Instance details Defined in GHC.Hs.Expr type XDecBrL GhcTc = DataConCantHappen
type XDo GhcPs |
Instance details Defined in GHC.Hs.Expr type XDo GhcPs = EpAnn AnnList
type XDo GhcRn |
Instance details Defined in GHC.Hs.Expr type XDo GhcRn = NoExtField
type XDo GhcTc |
Instance details Defined in GHC.Hs.Expr type XDo GhcTc = Type
type XExpBr GhcPs |
Instance details Defined in GHC.Hs.Expr type XExpBr GhcPs = NoExtField
type XExpBr GhcRn |
Instance details Defined in GHC.Hs.Expr type XExpBr GhcRn = NoExtField
type XExpBr GhcTc |
Instance details Defined in GHC.Hs.Expr type XExpBr GhcTc = DataConCantHappen
type XExplicitList GhcPs |
Instance details Defined in GHC.Hs.Expr type XExplicitList GhcPs = EpAnn AnnList
type XExplicitList GhcRn |
Instance details Defined in GHC.Hs.Expr type XExplicitList GhcRn = NoExtField
type XExplicitList GhcTc |
Instance details Defined in GHC.Hs.Expr type XExplicitList GhcTc = Type
type XExplicitListTy GhcPs |
Instance details Defined in GHC.Hs.Type type XExplicitListTy GhcPs = EpAnn [AddEpAnn]
type XExplicitListTy GhcRn |
Instance details Defined in GHC.Hs.Type type XExplicitListTy GhcRn = NoExtField
type XExplicitListTy GhcTc |
Instance details Defined in GHC.Hs.Type type XExplicitListTy GhcTc = Kind
type XExplicitSum GhcPs |
Instance details Defined in GHC.Hs.Expr type XExplicitSum GhcPs = EpAnn AnnExplicitSum
type XExplicitSum GhcRn |
Instance details Defined in GHC.Hs.Expr type XExplicitSum GhcRn = NoExtField
type XExplicitSum GhcTc |
Instance details Defined in GHC.Hs.Expr type XExplicitSum GhcTc = [Type]
type XExplicitTuple GhcPs |
Instance details Defined in GHC.Hs.Expr type XExplicitTuple GhcPs = EpAnn [AddEpAnn]
type XExplicitTuple GhcRn |
Instance details Defined in GHC.Hs.Expr type XExplicitTuple GhcRn = NoExtField
type XExplicitTuple GhcTc |
Instance details Defined in GHC.Hs.Expr type XExplicitTuple GhcTc = NoExtField
type XExplicitTupleTy GhcPs |
Instance details Defined in GHC.Hs.Type type XExplicitTupleTy GhcPs = EpAnn [AddEpAnn]
type XExplicitTupleTy GhcRn |
Instance details Defined in GHC.Hs.Type type XExplicitTupleTy GhcRn = NoExtField
type XExplicitTupleTy GhcTc |
Instance details Defined in GHC.Hs.Type type XExplicitTupleTy GhcTc = [Kind]
type XExprWithTySig GhcPs |
Instance details Defined in GHC.Hs.Expr type XExprWithTySig GhcPs = EpAnn [AddEpAnn]
type XExprWithTySig GhcRn |
Instance details Defined in GHC.Hs.Expr type XExprWithTySig GhcRn = NoExtField
type XExprWithTySig GhcTc |
Instance details Defined in GHC.Hs.Expr type XExprWithTySig GhcTc = NoExtField
type XForeignExport GhcPs |
Instance details Defined in GHC.Hs.Decls type XForeignExport GhcPs = EpAnn [AddEpAnn]
type XForeignExport GhcRn |
Instance details Defined in GHC.Hs.Decls type XForeignExport GhcRn = NoExtField
type XForeignExport GhcTc |
Instance details Defined in GHC.Hs.Decls type XForeignExport GhcTc = Coercion
type XForeignImport GhcPs |
Instance details Defined in GHC.Hs.Decls type XForeignImport GhcPs = EpAnn [AddEpAnn]
type XForeignImport GhcRn |
Instance details Defined in GHC.Hs.Decls type XForeignImport GhcRn = NoExtField
type XForeignImport GhcTc |
Instance details Defined in GHC.Hs.Decls type XForeignImport GhcTc = Coercion
type XGetField GhcPs |
Instance details Defined in GHC.Hs.Expr type XGetField GhcPs = EpAnnCO
type XGetField GhcRn |
Instance details Defined in GHC.Hs.Expr type XGetField GhcRn = NoExtField
type XGetField GhcTc |
Instance details Defined in GHC.Hs.Expr type XGetField GhcTc = DataConCantHappen
type XHsOuterImplicit GhcPs |
Instance details Defined in GHC.Hs.Type type XHsOuterImplicit GhcPs = NoExtField
type XHsOuterImplicit GhcRn |
Instance details Defined in GHC.Hs.Type type XHsOuterImplicit GhcRn = [Name]
type XHsOuterImplicit GhcTc |
Instance details Defined in GHC.Hs.Type type XHsOuterImplicit GhcTc = [TyVar]
type XHsPS GhcPs |
Instance details Defined in GHC.Hs.Type type XHsPS GhcPs = EpAnnCO
type XHsPS GhcRn |
Instance details Defined in GHC.Hs.Type type XHsPS GhcRn = HsPSRn
type XHsPS GhcTc |
Instance details Defined in GHC.Hs.Type type XHsPS GhcTc = HsPSRn
type XHsQTvs GhcPs |
Instance details Defined in GHC.Hs.Type type XHsQTvs GhcPs = NoExtField
type XHsQTvs GhcRn |
Instance details Defined in GHC.Hs.Type type XHsQTvs GhcRn = HsQTvsRn
type XHsQTvs GhcTc |
Instance details Defined in GHC.Hs.Type type XHsQTvs GhcTc = HsQTvsRn
type XHsRule GhcPs |
Instance details Defined in GHC.Hs.Decls type XHsRule GhcPs = (EpAnn HsRuleAnn, SourceText)
type XHsRule GhcRn |
Instance details Defined in GHC.Hs.Decls type XHsRule GhcRn = (HsRuleRn, SourceText)
type XHsRule GhcTc |
Instance details Defined in GHC.Hs.Decls type XHsRule GhcTc = (HsRuleRn, SourceText)
type XIEModuleContents GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEModuleContents GhcPs = (Maybe (LocatedP (WarningTxt GhcPs)), EpAnn [AddEpAnn])
type XIEModuleContents GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEModuleContents GhcRn = Maybe (LocatedP (WarningTxt GhcRn))
type XIEModuleContents GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEModuleContents GhcTc = NoExtField
type XIEThingAbs GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAbs GhcPs = (Maybe (LocatedP (WarningTxt GhcPs)), EpAnn [AddEpAnn])
type XIEThingAbs GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAbs GhcRn = (Maybe (LocatedP (WarningTxt GhcRn)), EpAnn [AddEpAnn])
type XIEThingAbs GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAbs GhcTc = EpAnn [AddEpAnn]
type XIEThingAll GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAll GhcPs = (Maybe (LocatedP (WarningTxt GhcPs)), EpAnn [AddEpAnn])
type XIEThingAll GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAll GhcRn = (Maybe (LocatedP (WarningTxt GhcRn)), EpAnn [AddEpAnn])
type XIEThingAll GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEThingAll GhcTc = EpAnn [AddEpAnn]
type XIEThingWith GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEThingWith GhcPs = (Maybe (LocatedP (WarningTxt GhcPs)), EpAnn [AddEpAnn])
type XIEThingWith GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEThingWith GhcRn = (Maybe (LocatedP (WarningTxt GhcRn)), EpAnn [AddEpAnn])
type XIEThingWith GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEThingWith GhcTc = EpAnn [AddEpAnn]
type XIEVar GhcPs |
Instance details Defined in GHC.Hs.ImpExp type XIEVar GhcPs = Maybe (LocatedP (WarningTxt GhcPs))
type XIEVar GhcRn |
Instance details Defined in GHC.Hs.ImpExp type XIEVar GhcRn = Maybe (LocatedP (WarningTxt GhcRn))
type XIEVar GhcTc |
Instance details Defined in GHC.Hs.ImpExp type XIEVar GhcTc = NoExtField
type XIPBinds GhcPs |
Instance details Defined in GHC.Hs.Binds type XIPBinds GhcPs = NoExtField
type XIPBinds GhcRn |
Instance details Defined in GHC.Hs.Binds type XIPBinds GhcRn = NoExtField
type XIPBinds GhcTc |
Instance details Defined in GHC.Hs.Binds type XIPBinds GhcTc = TcEvBinds
type XIPVar GhcPs |
Instance details Defined in GHC.Hs.Expr type XIPVar GhcPs = EpAnnCO
type XIPVar GhcRn |
Instance details Defined in GHC.Hs.Expr type XIPVar GhcRn = EpAnnCO
type XIPVar GhcTc |
Instance details Defined in GHC.Hs.Expr type XIPVar GhcTc = DataConCantHappen
type XIf GhcPs |
Instance details Defined in GHC.Hs.Expr type XIf GhcPs = EpAnn AnnsIf
type XIf GhcRn |
Instance details Defined in GHC.Hs.Expr type XIf GhcRn = NoExtField
type XIf GhcTc |
Instance details Defined in GHC.Hs.Expr type XIf GhcTc = NoExtField
type XLHsRecUpdLabels GhcPs |
Instance details Defined in GHC.Hs.Expr type XLHsRecUpdLabels GhcPs = NoExtField
type XLHsRecUpdLabels GhcRn |
Instance details Defined in GHC.Hs.Expr type XLHsRecUpdLabels GhcRn = NonEmpty (HsRecUpdParent GhcRn)
type XLHsRecUpdLabels GhcTc |
Instance details Defined in GHC.Hs.Expr type XLHsRecUpdLabels GhcTc = DataConCantHappen
type XLazyPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XLazyPat GhcPs = EpAnn [AddEpAnn]
type XLazyPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XLazyPat GhcRn = NoExtField
type XLazyPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XLazyPat GhcTc = NoExtField
type XLet GhcPs |
Instance details Defined in GHC.Hs.Expr type XLet GhcPs = EpAnnCO
type XLet GhcRn |
Instance details Defined in GHC.Hs.Expr type XLet GhcRn = NoExtField
type XLet GhcTc |
Instance details Defined in GHC.Hs.Expr type XLet GhcTc = NoExtField
type XListPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XListPat GhcPs = EpAnn AnnList
type XListPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XListPat GhcRn = NoExtField
type XListPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XListPat GhcTc = Type
type XMissing GhcPs |
Instance details Defined in GHC.Hs.Expr type XMissing GhcPs = EpAnn EpaLocation
type XMissing GhcRn |
Instance details Defined in GHC.Hs.Expr type XMissing GhcRn = NoExtField
type XMissing GhcTc |
Instance details Defined in GHC.Hs.Expr type XMissing GhcTc = Scaled Type
type XMultiIf GhcPs |
Instance details Defined in GHC.Hs.Expr type XMultiIf GhcPs = EpAnn [AddEpAnn]
type XMultiIf GhcRn |
Instance details Defined in GHC.Hs.Expr type XMultiIf GhcRn = NoExtField
type XMultiIf GhcTc |
Instance details Defined in GHC.Hs.Expr type XMultiIf GhcTc = Type
type XNPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XNPat GhcPs = EpAnn [AddEpAnn]
type XNPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XNPat GhcRn = EpAnn [AddEpAnn]
type XNPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XNPat GhcTc = Type
type XNPlusKPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XNPlusKPat GhcPs = EpAnn EpaLocation
type XNPlusKPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XNPlusKPat GhcRn = NoExtField
type XNPlusKPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XNPlusKPat GhcTc = Type
type XNegApp GhcPs |
Instance details Defined in GHC.Hs.Expr type XNegApp GhcPs = EpAnn [AddEpAnn]
type XNegApp GhcRn |
Instance details Defined in GHC.Hs.Expr type XNegApp GhcRn = NoExtField
type XNegApp GhcTc |
Instance details Defined in GHC.Hs.Expr type XNegApp GhcTc = NoExtField
type XNewtypeStrategy GhcPs |
Instance details Defined in GHC.Hs.Decls type XNewtypeStrategy GhcPs = EpAnn [AddEpAnn]
type XNewtypeStrategy GhcRn |
Instance details Defined in GHC.Hs.Decls type XNewtypeStrategy GhcRn = NoExtField
type XNewtypeStrategy GhcTc |
Instance details Defined in GHC.Hs.Decls type XNewtypeStrategy GhcTc = NoExtField
type XOpApp GhcPs |
Instance details Defined in GHC.Hs.Expr type XOpApp GhcPs = EpAnn [AddEpAnn]
type XOpApp GhcRn |
Instance details Defined in GHC.Hs.Expr type XOpApp GhcRn = Fixity
type XOpApp GhcTc |
Instance details Defined in GHC.Hs.Expr type XOpApp GhcTc = DataConCantHappen
type XOverLabel GhcPs |
Instance details Defined in GHC.Hs.Expr type XOverLabel GhcPs = EpAnnCO
type XOverLabel GhcRn |
Instance details Defined in GHC.Hs.Expr type XOverLabel GhcRn = EpAnnCO
type XOverLabel GhcTc |
Instance details Defined in GHC.Hs.Expr type XOverLabel GhcTc = DataConCantHappen
type XOverLit GhcPs |
Instance details Defined in GHC.Hs.Lit type XOverLit GhcPs = NoExtField
type XOverLit GhcRn |
Instance details Defined in GHC.Hs.Lit type XOverLit GhcRn = OverLitRn
type XOverLit GhcTc |
Instance details Defined in GHC.Hs.Lit type XOverLit GhcTc = OverLitTc
type XPatBr GhcPs |
Instance details Defined in GHC.Hs.Expr type XPatBr GhcPs = NoExtField
type XPatBr GhcRn |
Instance details Defined in GHC.Hs.Expr type XPatBr GhcRn = NoExtField
type XPatBr GhcTc |
Instance details Defined in GHC.Hs.Expr type XPatBr GhcTc = DataConCantHappen
type XProjection GhcPs |
Instance details Defined in GHC.Hs.Expr type XProjection GhcPs = EpAnn AnnProjection
type XProjection GhcRn |
Instance details Defined in GHC.Hs.Expr type XProjection GhcRn = NoExtField
type XProjection GhcTc |
Instance details Defined in GHC.Hs.Expr type XProjection GhcTc = DataConCantHappen
type XRecSel GhcPs |
Instance details Defined in GHC.Hs.Expr type XRecSel GhcPs = DataConCantHappen
type XRecSel GhcRn |
Instance details Defined in GHC.Hs.Expr type XRecSel GhcRn = NoExtField
type XRecSel GhcTc |
Instance details Defined in GHC.Hs.Expr type XRecSel GhcTc = NoExtField
type XRecTy GhcPs |
Instance details Defined in GHC.Hs.Type type XRecTy GhcPs = EpAnn AnnList
type XRecTy GhcRn |
Instance details Defined in GHC.Hs.Type type XRecTy GhcRn = NoExtField
type XRecTy GhcTc |
Instance details Defined in GHC.Hs.Type type XRecTy GhcTc = NoExtField
type XRecordCon GhcPs |
Instance details Defined in GHC.Hs.Expr type XRecordCon GhcPs = EpAnn [AddEpAnn]
type XRecordCon GhcRn |
Instance details Defined in GHC.Hs.Expr type XRecordCon GhcRn = NoExtField
type XRecordCon GhcTc |
Instance details Defined in GHC.Hs.Expr type XRecordCon GhcTc = PostTcExpr
type XRecordUpd GhcPs |
Instance details Defined in GHC.Hs.Expr type XRecordUpd GhcPs = EpAnn [AddEpAnn]
type XRecordUpd GhcRn |
Instance details Defined in GHC.Hs.Expr type XRecordUpd GhcRn = NoExtField
type XRecordUpd GhcTc |
Instance details Defined in GHC.Hs.Expr type XRecordUpd GhcTc = DataConCantHappen
type XSectionL GhcPs |
Instance details Defined in GHC.Hs.Expr type XSectionL GhcPs = EpAnnCO
type XSectionL GhcRn |
Instance details Defined in GHC.Hs.Expr type XSectionL GhcRn = EpAnnCO
type XSectionL GhcTc |
Instance details Defined in GHC.Hs.Expr type XSectionL GhcTc = DataConCantHappen
type XSectionR GhcPs |
Instance details Defined in GHC.Hs.Expr type XSectionR GhcPs = EpAnnCO
type XSectionR GhcRn |
Instance details Defined in GHC.Hs.Expr type XSectionR GhcRn = EpAnnCO
type XSectionR GhcTc |
Instance details Defined in GHC.Hs.Expr type XSectionR GhcTc = DataConCantHappen
type XSigPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XSigPat GhcPs = EpAnn [AddEpAnn]
type XSigPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XSigPat GhcRn = NoExtField
type XSigPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XSigPat GhcTc = Type
type XSplicePat GhcPs |
Instance details Defined in GHC.Hs.Pat type XSplicePat GhcPs = NoExtField
type XSplicePat GhcRn |
Instance details Defined in GHC.Hs.Pat type XSplicePat GhcRn = HsUntypedSpliceResult (Pat GhcRn)
type XSplicePat GhcTc |
Instance details Defined in GHC.Hs.Pat type XSplicePat GhcTc = DataConCantHappen
type XSpliceTy GhcPs |
Instance details Defined in GHC.Hs.Type type XSpliceTy GhcPs = NoExtField
type XSpliceTy GhcRn |
Instance details Defined in GHC.Hs.Type type XSpliceTy GhcRn = HsUntypedSpliceResult (LHsType GhcRn)
type XSpliceTy GhcTc |
Instance details Defined in GHC.Hs.Type type XSpliceTy GhcTc = Kind
type XStandaloneKindSig GhcPs |
Instance details Defined in GHC.Hs.Decls type XStandaloneKindSig GhcPs = EpAnn [AddEpAnn]
type XStandaloneKindSig GhcRn |
Instance details Defined in GHC.Hs.Decls type XStandaloneKindSig GhcRn = NoExtField
type XStandaloneKindSig GhcTc |
Instance details Defined in GHC.Hs.Decls type XStandaloneKindSig GhcTc = NoExtField
type XStatic GhcPs |
Instance details Defined in GHC.Hs.Expr type XStatic GhcPs = EpAnn [AddEpAnn]
type XStatic GhcRn |
Instance details Defined in GHC.Hs.Expr type XStatic GhcRn = NameSet
type XStatic GhcTc |
Instance details Defined in GHC.Hs.Expr type XStatic GhcTc = (NameSet, Type)
type XStockStrategy GhcPs |
Instance details Defined in GHC.Hs.Decls type XStockStrategy GhcPs = EpAnn [AddEpAnn]
type XStockStrategy GhcRn |
Instance details Defined in GHC.Hs.Decls type XStockStrategy GhcRn = NoExtField
type XStockStrategy GhcTc |
Instance details Defined in GHC.Hs.Decls type XStockStrategy GhcTc = NoExtField
type XSumPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XSumPat GhcPs = EpAnn EpAnnSumPat
type XSumPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XSumPat GhcRn = NoExtField
type XSumPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XSumPat GhcTc = [Type]
type XSynDecl GhcPs |
Instance details Defined in GHC.Hs.Decls type XSynDecl GhcPs = EpAnn [AddEpAnn]
type XSynDecl GhcRn |
Instance details Defined in GHC.Hs.Decls type XSynDecl GhcRn = NameSet
type XSynDecl GhcTc |
Instance details Defined in GHC.Hs.Decls type XSynDecl GhcTc = NameSet
type XTuplePat GhcPs |
Instance details Defined in GHC.Hs.Pat type XTuplePat GhcPs = EpAnn [AddEpAnn]
type XTuplePat GhcRn |
Instance details Defined in GHC.Hs.Pat type XTuplePat GhcRn = NoExtField
type XTuplePat GhcTc |
Instance details Defined in GHC.Hs.Pat type XTuplePat GhcTc = [Type]
type XTyFamInstD GhcPs |
Instance details Defined in GHC.Hs.Decls type XTyFamInstD GhcPs = NoExtField
type XTyFamInstD GhcRn |
Instance details Defined in GHC.Hs.Decls type XTyFamInstD GhcRn = NoExtField
type XTyFamInstD GhcTc |
Instance details Defined in GHC.Hs.Decls type XTyFamInstD GhcTc = NoExtField
type XTypBr GhcPs |
Instance details Defined in GHC.Hs.Expr type XTypBr GhcPs = NoExtField
type XTypBr GhcRn |
Instance details Defined in GHC.Hs.Expr type XTypBr GhcRn = NoExtField
type XTypBr GhcTc |
Instance details Defined in GHC.Hs.Expr type XTypBr GhcTc = DataConCantHappen
type XTypedBracket GhcPs |
Instance details Defined in GHC.Hs.Expr type XTypedBracket GhcPs = EpAnn [AddEpAnn]
type XTypedBracket GhcRn |
Instance details Defined in GHC.Hs.Expr type XTypedBracket GhcRn = NoExtField
type XTypedBracket GhcTc |
Instance details Defined in GHC.Hs.Expr type XTypedBracket GhcTc = HsBracketTc
type XTypedSplice GhcPs |
Instance details Defined in GHC.Hs.Expr type XTypedSplice GhcPs = (EpAnnCO, EpAnn [AddEpAnn])
type XTypedSplice GhcRn |
Instance details Defined in GHC.Hs.Expr type XTypedSplice GhcRn = SplicePointName
type XTypedSplice GhcTc |
Instance details Defined in GHC.Hs.Expr type XTypedSplice GhcTc = DelayedSplice
type XUnambiguous GhcPs |
Instance details Defined in GHC.Hs.Type type XUnambiguous GhcPs = NoExtField
type XUnambiguous GhcRn |
Instance details Defined in GHC.Hs.Type type XUnambiguous GhcRn = Name
type XUnambiguous GhcTc |
Instance details Defined in GHC.Hs.Type type XUnambiguous GhcTc = Id
type XUnboundVar GhcPs |
Instance details Defined in GHC.Hs.Expr type XUnboundVar GhcPs = EpAnn EpAnnUnboundVar
type XUnboundVar GhcRn |
Instance details Defined in GHC.Hs.Expr type XUnboundVar GhcRn = NoExtField
type XUnboundVar GhcTc |
Instance details Defined in GHC.Hs.Expr type XUnboundVar GhcTc = HoleExprRef
type XUntypedBracket GhcPs |
Instance details Defined in GHC.Hs.Expr type XUntypedBracket GhcPs = EpAnn [AddEpAnn]
type XUntypedBracket GhcRn |
Instance details Defined in GHC.Hs.Expr type XUntypedBracket GhcRn = [PendingRnSplice]
type XUntypedBracket GhcTc |
Instance details Defined in GHC.Hs.Expr type XUntypedBracket GhcTc = HsBracketTc
type XUntypedSplice GhcPs |
Instance details Defined in GHC.Hs.Expr type XUntypedSplice GhcPs = EpAnnCO
type XUntypedSplice GhcRn |
Instance details Defined in GHC.Hs.Expr type XUntypedSplice GhcRn = HsUntypedSpliceResult (HsExpr GhcRn)
type XUntypedSplice GhcTc |
Instance details Defined in GHC.Hs.Expr type XUntypedSplice GhcTc = DataConCantHappen
type XUntypedSpliceExpr GhcPs |
Instance details Defined in GHC.Hs.Expr type XUntypedSpliceExpr GhcPs = EpAnn [AddEpAnn]
type XUntypedSpliceExpr GhcRn |
Instance details Defined in GHC.Hs.Expr type XUntypedSpliceExpr GhcRn = EpAnn [AddEpAnn]
type XUntypedSpliceExpr GhcTc |
Instance details Defined in GHC.Hs.Expr type XUntypedSpliceExpr GhcTc = DataConCantHappen
type XVarBr GhcPs |
Instance details Defined in GHC.Hs.Expr type XVarBr GhcPs = NoExtField
type XVarBr GhcRn |
Instance details Defined in GHC.Hs.Expr type XVarBr GhcRn = NoExtField
type XVarBr GhcTc |
Instance details Defined in GHC.Hs.Expr type XVarBr GhcTc = DataConCantHappen
type XViaStrategy GhcPs |
Instance details Defined in GHC.Hs.Decls type XViaStrategy GhcPs = XViaStrategyPs
type XViaStrategy GhcRn |
Instance details Defined in GHC.Hs.Decls type XViaStrategy GhcRn = LHsSigType GhcRn
type XViaStrategy GhcTc |
Instance details Defined in GHC.Hs.Decls type XViaStrategy GhcTc = Type
type XViewPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XViewPat GhcPs = EpAnn [AddEpAnn]
type XViewPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XViewPat GhcRn = Maybe (HsExpr GhcRn)
type XViewPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XViewPat GhcTc = Type
type XWarnings GhcPs |
Instance details Defined in GHC.Hs.Decls type XWarnings GhcPs = (EpAnn [AddEpAnn], SourceText)
type XWarnings GhcRn |
Instance details Defined in GHC.Hs.Decls type XWarnings GhcRn = SourceText
type XWarnings GhcTc |
Instance details Defined in GHC.Hs.Decls type XWarnings GhcTc = SourceText
type XWildPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XWildPat GhcPs = NoExtField
type XWildPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XWildPat GhcRn = NoExtField
type XWildPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XWildPat GhcTc = Type
type XXCmd GhcPs |
Instance details Defined in GHC.Hs.Expr type XXCmd GhcPs = DataConCantHappen
type XXCmd GhcRn |
Instance details Defined in GHC.Hs.Expr type XXCmd GhcRn = DataConCantHappen
type XXCmd GhcTc |
Instance details Defined in GHC.Hs.Expr type XXCmd GhcTc = HsWrap HsCmd
type XXExpr GhcPs |
Instance details Defined in GHC.Hs.Expr type XXExpr GhcPs = DataConCantHappen
type XXExpr GhcRn |
Instance details Defined in GHC.Hs.Expr type XXExpr GhcRn = HsExpansion (HsExpr GhcRn) (HsExpr GhcRn)
type XXExpr GhcTc |
Instance details Defined in GHC.Hs.Expr type XXExpr GhcTc = XXExprGhcTc
type XXPat GhcPs |
Instance details Defined in GHC.Hs.Pat type XXPat GhcPs = DataConCantHappen
type XXPat GhcRn |
Instance details Defined in GHC.Hs.Pat type XXPat GhcRn = HsPatExpansion (Pat GhcRn) (Pat GhcRn)
type XXPat GhcTc |
Instance details Defined in GHC.Hs.Pat type XXPat GhcTc = XXPatGhcTc
type XXQuote GhcPs |
Instance details Defined in GHC.Hs.Expr type XXQuote GhcPs = DataConCantHappen
type XXQuote GhcRn |
Instance details Defined in GHC.Hs.Expr type XXQuote GhcRn = DataConCantHappen
type XXQuote GhcTc |
Instance details Defined in GHC.Hs.Expr type XXQuote GhcTc = NoExtField
type XXSig GhcPs |
Instance details Defined in GHC.Hs.Binds type XXSig GhcPs = DataConCantHappen
type XXSig GhcRn |
Instance details Defined in GHC.Hs.Binds type XXSig GhcRn = IdSig
type XXSig GhcTc |
Instance details Defined in GHC.Hs.Binds type XXSig GhcTc = IdSig
type ConLikeP GhcPs |
Instance details Defined in GHC.Hs.Pat type ConLikeP GhcPs = RdrName
type ConLikeP GhcRn |
Instance details Defined in GHC.Hs.Pat type ConLikeP GhcRn = Name
type ConLikeP GhcTc |
Instance details Defined in GHC.Hs.Pat type ConLikeP GhcTc = ConLike
type XHsOuterExplicit GhcPs _1 |
Instance details Defined in GHC.Hs.Type type XHsOuterExplicit GhcPs _1 = EpAnnForallTy
type XHsOuterExplicit GhcRn _1 |
Instance details Defined in GHC.Hs.Type type XHsOuterExplicit GhcRn _1 = NoExtField
type XHsOuterExplicit GhcTc flag |
Instance details Defined in GHC.Hs.Type type XHsOuterExplicit GhcTc flag = [VarBndr TyVar flag]
type XHsWC GhcPs b |
Instance details Defined in GHC.Hs.Type type XHsWC GhcPs b = NoExtField
type XHsWC GhcRn b |
Instance details Defined in GHC.Hs.Type type XHsWC GhcRn b = [Name]
type XHsWC GhcTc b |
Instance details Defined in GHC.Hs.Type type XHsWC GhcTc b = [Name]
type XMG GhcPs b |
Instance details Defined in GHC.Hs.Expr type XMG GhcPs b = Origin
type XMG GhcRn b |
Instance details Defined in GHC.Hs.Expr type XMG GhcRn b = Origin
type XMG GhcTc b |
Instance details Defined in GHC.Hs.Expr type XMG GhcTc b = MatchGroupTc
type XXHsBindsLR GhcPs pR |
Instance details Defined in GHC.Hs.Binds type XXHsBindsLR GhcPs pR = DataConCantHappen
type XXHsBindsLR GhcRn pR |
Instance details Defined in GHC.Hs.Binds type XXHsBindsLR GhcRn pR = DataConCantHappen
type XXHsBindsLR GhcTc pR |
Instance details Defined in GHC.Hs.Binds type XXHsBindsLR GhcTc pR = AbsBinds
type XPatBind GhcPs (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XPatBind GhcPs (GhcPass pR) = EpAnn [AddEpAnn]
type XPatBind GhcRn (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XPatBind GhcRn (GhcPass pR) = NameSet
type XPatBind GhcTc (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XPatBind GhcTc (GhcPass pR) = (Type, ([CoreTickish], [[CoreTickish]]))
type Body (PatBuilder GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (PatBuilder GhcPs) = PatBuilder
type Body (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsCmd GhcPs) = HsCmd
type Body (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsExpr GhcPs) = HsExpr
type FunArg (PatBuilder GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (PatBuilder GhcPs) = PatBuilder GhcPs
type FunArg (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsCmd GhcPs) = HsExpr GhcPs
type FunArg (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsExpr GhcPs) = HsExpr GhcPs
type InfixOp (PatBuilder GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (PatBuilder GhcPs) = RdrName
type InfixOp (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsCmd GhcPs) = HsExpr GhcPs
type InfixOp (HsExpr GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsExpr GhcPs) = HsExpr GhcPs
type SyntaxExpr (GhcPass p) |
Instance details Defined in GHC.Hs.Expr type SyntaxExpr (GhcPass p) = SyntaxExprGhc p
type Anno (LocatedA (IE (GhcPass p))) |
Instance details Defined in GHC.Hs.ImpExp type Anno (LocatedA (IE (GhcPass p))) = SrcSpanAnnA
type Anno (FixitySig (GhcPass p)) |
Instance details Defined in GHC.Hs.Binds type Anno (FixitySig (GhcPass p)) = SrcSpanAnnA
type Anno (IPBind (GhcPass p)) |
Instance details Defined in GHC.Hs.Binds type Anno (IPBind (GhcPass p)) = SrcSpanAnnA
type Anno (Sig (GhcPass p)) |
Instance details Defined in GHC.Hs.Binds type Anno (Sig (GhcPass p)) = SrcSpanAnnA
type Anno (AnnDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (AnnDecl (GhcPass p)) = SrcSpanAnnA
type Anno (ClsInstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (ClsInstDecl (GhcPass p)) = SrcSpanAnnA
type Anno (ConDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (ConDecl (GhcPass p)) = SrcSpanAnnA
type Anno (DataFamInstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DataFamInstDecl (GhcPass p)) = SrcSpanAnnA
type Anno (DefaultDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DefaultDecl (GhcPass p)) = SrcSpanAnnA
type Anno (DerivClauseTys (GhcPass _1)) |
Instance details Defined in GHC.Hs.Decls type Anno (DerivClauseTys (GhcPass _1)) = SrcSpanAnnC
type Anno (DerivDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DerivDecl (GhcPass p)) = SrcSpanAnnA
type Anno (DerivStrategy (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DerivStrategy (GhcPass p)) = SrcAnn NoEpAnns
type Anno (DocDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DocDecl (GhcPass p)) = SrcSpanAnnA
type Anno (FamilyDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (FamilyDecl (GhcPass p)) = SrcSpanAnnA
type Anno (FamilyResultSig (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (FamilyResultSig (GhcPass p)) = SrcAnn NoEpAnns
type Anno (ForeignDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (ForeignDecl (GhcPass p)) = SrcSpanAnnA
type Anno (FunDep (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (FunDep (GhcPass p)) = SrcSpanAnnA
type Anno (HsDecl (GhcPass _1)) |
Instance details Defined in GHC.Hs.Decls type Anno (HsDecl (GhcPass _1)) = SrcSpanAnnA
type Anno (HsDerivingClause (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (HsDerivingClause (GhcPass p)) = SrcAnn NoEpAnns
type Anno (InjectivityAnn (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (InjectivityAnn (GhcPass p)) = SrcAnn NoEpAnns
type Anno (InstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (InstDecl (GhcPass p)) = SrcSpanAnnA
type Anno (RoleAnnotDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RoleAnnotDecl (GhcPass p)) = SrcSpanAnnA
type Anno (RuleBndr (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RuleBndr (GhcPass p)) = SrcAnn NoEpAnns
type Anno (RuleDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RuleDecl (GhcPass p)) = SrcSpanAnnA
type Anno (RuleDecls (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RuleDecls (GhcPass p)) = SrcSpanAnnA
type Anno (SpliceDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (SpliceDecl (GhcPass p)) = SrcSpanAnnA
type Anno (StandaloneKindSig (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (StandaloneKindSig (GhcPass p)) = SrcSpanAnnA
type Anno (TyClDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (TyClDecl (GhcPass p)) = SrcSpanAnnA
type Anno (TyFamInstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (TyFamInstDecl (GhcPass p)) = SrcSpanAnnA
type Anno (WarnDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (WarnDecl (GhcPass p)) = SrcSpanAnnA
type Anno (WarnDecls (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (WarnDecls (GhcPass p)) = SrcSpanAnnA
type Anno (DotFieldOcc (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (DotFieldOcc (GhcPass p)) = SrcAnn NoEpAnns
type Anno (FieldLabelStrings (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (FieldLabelStrings (GhcPass p)) = SrcAnn NoEpAnns
type Anno (HsCmd (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsCmd (GhcPass p)) = SrcSpanAnnA
type Anno (HsCmdTop (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsCmdTop (GhcPass p)) = SrcAnn NoEpAnns
type Anno (HsExpr (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsExpr (GhcPass p)) = SrcSpanAnnA
type Anno (HsUntypedSplice (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsUntypedSplice (GhcPass p)) = SrcSpanAnnA
type Anno (IE (GhcPass p)) |
Instance details Defined in GHC.Hs.ImpExp type Anno (IE (GhcPass p)) = SrcSpanAnnA
type Anno (IEWrappedName (GhcPass _1)) |
Instance details Defined in GHC.Hs.ImpExp type Anno (IEWrappedName (GhcPass _1)) = SrcSpanAnnA
type Anno (ImportDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.ImpExp type Anno (ImportDecl (GhcPass p)) = SrcSpanAnnA
type Anno (HsOverLit (GhcPass p)) |
Instance details Defined in GHC.Hs.Pat type Anno (HsOverLit (GhcPass p)) = SrcAnn NoEpAnns
type Anno (Pat (GhcPass p)) |
Instance details Defined in GHC.Hs.Pat type Anno (Pat (GhcPass p)) = SrcSpanAnnA
type Anno (AmbiguousFieldOcc (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (AmbiguousFieldOcc (GhcPass p)) = SrcAnn NoEpAnns
type Anno (BangType (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (BangType (GhcPass p)) = SrcSpanAnnA
type Anno (ConDeclField (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (ConDeclField (GhcPass p)) = SrcSpanAnnA
type Anno (FieldOcc (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (FieldOcc (GhcPass p)) = SrcAnn NoEpAnns
type Anno (HsKind (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (HsKind (GhcPass p)) = SrcSpanAnnA
type Anno (HsSigType (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (HsSigType (GhcPass p)) = SrcSpanAnnA
type Anno (HsType (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (HsType (GhcPass p)) = SrcSpanAnnA
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (IE (GhcPass p))] |
Instance details Defined in GHC.Hs.ImpExp type Anno [LocatedA (IE (GhcPass p))] = SrcSpanAnnL
type Anno [LocatedA (ConDeclField (GhcPass _1))] |
Instance details Defined in GHC.Hs.Decls type Anno [LocatedA (ConDeclField (GhcPass _1))] = SrcSpanAnnL
type Anno [LocatedA (HsType (GhcPass p))] |
Instance details Defined in GHC.Hs.Type type Anno [LocatedA (HsType (GhcPass p))] = SrcSpanAnnC
type IdP (GhcPass p) |
Instance details Defined in GHC.Hs.Extension type IdP (GhcPass p) = IdGhcP p
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]
Instance details Defined in GHC.Hs.Extension type NoGhcTc (GhcPass pass) = GhcPass (NoGhcTcPass pass)
type XAnnD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XAnnD (GhcPass _1) = NoExtField
type XApp (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XApp (GhcPass _1) = EpAnnCO
type XAppKindTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XAppKindTy (GhcPass _1) = NoExtField
type XAppTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XAppTy (GhcPass _1) = NoExtField
type XApplicativeArgMany (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XApplicativeArgMany (GhcPass _1) = NoExtField
type XBangTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XBangTy (GhcPass _1) = EpAnn [AddEpAnn]
type XCDerivDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCDerivDecl (GhcPass _1) = EpAnn [AddEpAnn]
type XCDotFieldOcc (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCDotFieldOcc (GhcPass _1) = EpAnn AnnFieldLabel
type XCExport (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCExport (GhcPass _1) = Located SourceText
type XCFamilyDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCFamilyDecl (GhcPass _1) = EpAnn [AddEpAnn]
type XCFunDep (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCFunDep (GhcPass _1) = EpAnn [AddEpAnn]
type XCHsDataDefn (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCHsDataDefn (GhcPass _1) = NoExtField
type XCHsDerivingClause (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCHsDerivingClause (GhcPass _1) = EpAnn [AddEpAnn]
type XCHsGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCHsGroup (GhcPass _1) = NoExtField
type XCImport (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCImport (GhcPass _1) = Located SourceText
type XCInjectivityAnn (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCInjectivityAnn (GhcPass _1) = EpAnn [AddEpAnn]
type XCKindSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCKindSig (GhcPass _1) = NoExtField
type XCRuleBndr (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCRuleBndr (GhcPass _1) = EpAnn [AddEpAnn]
type XCTyClGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCTyClGroup (GhcPass _1) = NoExtField
type XCTyFamInstDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XCTyFamInstDecl (GhcPass _1) = EpAnn [AddEpAnn]
type XCharTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XCharTy (GhcPass _1) = SourceText
type XClassOpSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XClassOpSig (GhcPass p) = EpAnn AnnSig
type XClsInstD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XClsInstD (GhcPass _1) = NoExtField
type XCmdApp (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdApp (GhcPass _1) = EpAnnCO
type XCmdLam (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdLam (GhcPass _1) = NoExtField
type XCmdLamCase (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdLamCase (GhcPass _1) = EpAnn [AddEpAnn]
type XCmdPar (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdPar (GhcPass _1) = EpAnnCO
type XCmdWrap (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XCmdWrap (GhcPass _1) = NoExtField
type XCompleteMatchSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XCompleteMatchSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText)
type XConDeclField (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XConDeclField (GhcPass _1) = EpAnn [AddEpAnn]
type XConDeclGADT (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XConDeclGADT (GhcPass _1) = EpAnn [AddEpAnn]
type XConDeclH98 (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XConDeclH98 (GhcPass _1) = EpAnn [AddEpAnn]
type XDataFamInstD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDataFamInstD (GhcPass _1) = NoExtField
type XDctMulti (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDctMulti (GhcPass _1) = NoExtField
type XDctSingle (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDctSingle (GhcPass _1) = NoExtField
type XDefD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDefD (GhcPass _1) = NoExtField
type XDerivD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDerivD (GhcPass _1) = NoExtField
type XDocD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XDocD (GhcPass _1) = NoExtField
type XDocTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XDocTy (GhcPass _1) = EpAnn [AddEpAnn]
type XFamDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XFamDecl (GhcPass _1) = NoExtField
type XFixSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XFixSig (GhcPass p) = EpAnn [AddEpAnn]
type XFixitySig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XFixitySig (GhcPass p) = NoExtField
type XForAllTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XForAllTy (GhcPass _1) = NoExtField
type XForD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XForD (GhcPass _1) = NoExtField
type XFunTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XFunTy (GhcPass _1) = EpAnnCO
type XHsAnnotation (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XHsAnnotation (GhcPass _1) = (EpAnn AnnPragma, SourceText)
type XHsChar (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsChar (GhcPass _1) = SourceText
type XHsCharPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsCharPrim (GhcPass _1) = SourceText
type XHsDoublePrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsDoublePrim (GhcPass _1) = NoExtField
type XHsFloatPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsFloatPrim (GhcPass _1) = NoExtField
type XHsForAllInvis (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XHsForAllInvis (GhcPass _1) = EpAnnForallTy
type XHsForAllVis (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XHsForAllVis (GhcPass _1) = EpAnnForallTy
type XHsInt (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt (GhcPass _1) = NoExtField
type XHsInt16Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt16Prim (GhcPass _1) = SourceText
type XHsInt32Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt32Prim (GhcPass _1) = SourceText
type XHsInt64Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt64Prim (GhcPass _1) = SourceText
type XHsInt8Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInt8Prim (GhcPass _1) = SourceText
type XHsIntPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsIntPrim (GhcPass _1) = SourceText
type XHsInteger (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsInteger (GhcPass _1) = SourceText
type XHsRat (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsRat (GhcPass _1) = NoExtField
type XHsSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XHsSig (GhcPass _1) = NoExtField
type XHsString (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsString (GhcPass _1) = SourceText
type XHsStringPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsStringPrim (GhcPass _1) = SourceText
type XHsWord16Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWord16Prim (GhcPass _1) = SourceText
type XHsWord32Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWord32Prim (GhcPass _1) = SourceText
type XHsWord64Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWord64Prim (GhcPass _1) = SourceText
type XHsWord8Prim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWord8Prim (GhcPass _1) = SourceText
type XHsWordPrim (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XHsWordPrim (GhcPass _1) = SourceText
type XIEDoc (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEDoc (GhcPass _1) = NoExtField
type XIEDocNamed (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEDocNamed (GhcPass _1) = NoExtField
type XIEGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEGroup (GhcPass _1) = NoExtField
type XIEName (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEName (GhcPass _1) = NoExtField
type XIEPattern (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEPattern (GhcPass _1) = EpaLocation
type XIEType (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XIEType (GhcPass _1) = EpaLocation
type XIParamTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XIParamTy (GhcPass _1) = EpAnn [AddEpAnn]
type XInlineSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XInlineSig (GhcPass p) = EpAnn [AddEpAnn]
type XInstD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XInstD (GhcPass _1) = NoExtField
type XKindSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XKindSig (GhcPass _1) = EpAnn [AddEpAnn]
type XKindSigD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XKindSigD (GhcPass _1) = NoExtField
type XKindedTyVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XKindedTyVar (GhcPass _1) = EpAnn [AddEpAnn]
type XLam (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XLam (GhcPass _1) = NoExtField
type XLam (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XLam (GhcPass _1) = NoExtField
type XLamCase (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XLamCase (GhcPass _1) = EpAnn [AddEpAnn]
type XListTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XListTy (GhcPass _1) = EpAnn AnnParen
type XLitE (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XLitE (GhcPass _1) = EpAnnCO
type XLitPat (GhcPass _1) |
Instance details Defined in GHC.Hs.Pat type XLitPat (GhcPass _1) = NoExtField
type XMinimalSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XMinimalSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText)
type XNoSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XNoSig (GhcPass _1) = NoExtField
type XNumTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XNumTy (GhcPass _1) = SourceText
type XOpTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XOpTy (GhcPass _1) = EpAnn [AddEpAnn]
type XOverLitE (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XOverLitE (GhcPass _1) = EpAnnCO
type XPar (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XPar (GhcPass _1) = EpAnnCO
type XParPat (GhcPass _1) |
Instance details Defined in GHC.Hs.Pat type XParPat (GhcPass _1) = EpAnnCO
type XParTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XParTy (GhcPass _1) = EpAnn AnnParen
type XPatSynSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XPatSynSig (GhcPass p) = EpAnn AnnSig
type XPragE (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XPragE (GhcPass _1) = NoExtField
type XPresent (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XPresent (GhcPass _1) = EpAnn [AddEpAnn]
type XProc (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XProc (GhcPass _1) = EpAnn [AddEpAnn]
type XQualTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XQualTy (GhcPass _1) = NoExtField
type XRoleAnnotD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XRoleAnnotD (GhcPass _1) = NoExtField
type XRuleBndrSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XRuleBndrSig (GhcPass _1) = EpAnn [AddEpAnn]
type XRuleD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XRuleD (GhcPass _1) = NoExtField
type XSCC (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XSCC (GhcPass _1) = (EpAnn AnnPragma, SourceText)
type XSCCFunSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XSCCFunSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText)
type XSigD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XSigD (GhcPass _1) = NoExtField
type XSpecInstSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XSpecInstSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText)
type XSpecSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XSpecSig (GhcPass p) = EpAnn [AddEpAnn]
type XSpliceD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XSpliceD (GhcPass _1) = NoExtField
type XSpliceDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XSpliceDecl (GhcPass _1) = NoExtField
type XStarTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XStarTy (GhcPass _1) = NoExtField
type XStrTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XStrTy (GhcPass _1) = SourceText
type XSumTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XSumTy (GhcPass _1) = EpAnn AnnParen
type XTupleTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XTupleTy (GhcPass _1) = EpAnn AnnParen
type XTyClD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XTyClD (GhcPass _1) = NoExtField
type XTyLit (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XTyLit (GhcPass _1) = NoExtField
type XTyVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XTyVar (GhcPass _1) = EpAnn [AddEpAnn]
type XTyVarSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XTyVarSig (GhcPass _1) = NoExtField
type XTypeSig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XTypeSig (GhcPass p) = EpAnn AnnSig
type XUserTyVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XUserTyVar (GhcPass _1) = EpAnn [AddEpAnn]
type XValD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XValD (GhcPass _1) = NoExtField
type XVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XVar (GhcPass _1) = NoExtField
type XVar (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XVar (GhcPass _1) = NoExtField
type XVarPat (GhcPass _1) |
Instance details Defined in GHC.Hs.Pat type XVarPat (GhcPass _1) = NoExtField
type XWarning (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XWarning (GhcPass _1) = EpAnn [AddEpAnn]
type XWarningD (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XWarningD (GhcPass _1) = NoExtField
type XWildCardTy (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XWildCardTy (GhcPass _1) = NoExtField
type XXAmbiguousFieldOcc (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXAmbiguousFieldOcc (GhcPass _1) = DataConCantHappen
type XXAnnDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXAnnDecl (GhcPass _1) = DataConCantHappen
type XXApplicativeArg (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXApplicativeArg (GhcPass _1) = DataConCantHappen
type XXClsInstDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXClsInstDecl (GhcPass _1) = DataConCantHappen
type XXCmdTop (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXCmdTop (GhcPass _1) = DataConCantHappen
type XXConDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXConDecl (GhcPass _1) = DataConCantHappen
type XXConDeclField (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXConDeclField (GhcPass _1) = DataConCantHappen
type XXDefaultDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXDefaultDecl (GhcPass _1) = DataConCantHappen
type XXDerivClauseTys (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXDerivClauseTys (GhcPass _1) = DataConCantHappen
type XXDerivDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXDerivDecl (GhcPass _1) = DataConCantHappen
type XXDotFieldOcc (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXDotFieldOcc (GhcPass _1) = DataConCantHappen
type XXFamilyDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXFamilyDecl (GhcPass _1) = DataConCantHappen
type XXFamilyResultSig (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXFamilyResultSig (GhcPass _1) = DataConCantHappen
type XXFieldOcc (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXFieldOcc (GhcPass _1) = DataConCantHappen
type XXFixitySig (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XXFixitySig (GhcPass p) = DataConCantHappen
type XXForeignDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXForeignDecl (GhcPass _1) = DataConCantHappen
type XXForeignExport (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXForeignExport (GhcPass _1) = DataConCantHappen
type XXForeignImport (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXForeignImport (GhcPass _1) = DataConCantHappen
type XXFunDep (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXFunDep (GhcPass _1) = DataConCantHappen
type XXHsDataDefn (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXHsDataDefn (GhcPass _1) = DataConCantHappen
type XXHsDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXHsDecl (GhcPass _1) = DataConCantHappen
type XXHsDerivingClause (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXHsDerivingClause (GhcPass _1) = DataConCantHappen
type XXHsForAllTelescope (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXHsForAllTelescope (GhcPass _1) = DataConCantHappen
type XXHsGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXHsGroup (GhcPass _1) = DataConCantHappen
type XXHsIPBinds (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XXHsIPBinds (GhcPass p) = DataConCantHappen
type XXHsOuterTyVarBndrs (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXHsOuterTyVarBndrs (GhcPass _1) = DataConCantHappen
type XXHsPatSigType (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXHsPatSigType (GhcPass _1) = DataConCantHappen
type XXHsSigType (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXHsSigType (GhcPass _1) = DataConCantHappen
type XXIE (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XXIE (GhcPass _1) = DataConCantHappen
type XXIEWrappedName (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XXIEWrappedName (GhcPass _1) = DataConCantHappen
type XXIPBind (GhcPass p) |
Instance details Defined in GHC.Hs.Binds type XXIPBind (GhcPass p) = DataConCantHappen
type XXImportDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.ImpExp type XXImportDecl (GhcPass _1) = DataConCantHappen
type XXInjectivityAnn (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXInjectivityAnn (GhcPass _1) = DataConCantHappen
type XXInstDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXInstDecl (GhcPass _1) = DataConCantHappen
type XXLHsQTyVars (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXLHsQTyVars (GhcPass _1) = DataConCantHappen
type XXLit (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XXLit (GhcPass _1) = DataConCantHappen
type XXOverLit (GhcPass _1) |
Instance details Defined in GHC.Hs.Lit type XXOverLit (GhcPass _1) = DataConCantHappen
type XXPragE (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXPragE (GhcPass _1) = DataConCantHappen
type XXRoleAnnotDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXRoleAnnotDecl (GhcPass _1) = DataConCantHappen
type XXRuleBndr (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXRuleBndr (GhcPass _1) = DataConCantHappen
type XXRuleDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXRuleDecl (GhcPass _1) = DataConCantHappen
type XXRuleDecls (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXRuleDecls (GhcPass _1) = DataConCantHappen
type XXSpliceDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXSpliceDecl (GhcPass _1) = DataConCantHappen
type XXStandaloneKindSig (GhcPass p) |
Instance details Defined in GHC.Hs.Decls type XXStandaloneKindSig (GhcPass p) = DataConCantHappen
type XXTupArg (GhcPass _1) |
Instance details Defined in GHC.Hs.Expr type XXTupArg (GhcPass _1) = DataConCantHappen
type XXTyClDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXTyClDecl (GhcPass _1) = DataConCantHappen
type XXTyClGroup (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXTyClGroup (GhcPass _1) = DataConCantHappen
type XXTyFamInstDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXTyFamInstDecl (GhcPass _1) = DataConCantHappen
type XXTyLit (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXTyLit (GhcPass _1) = DataConCantHappen
type XXTyVarBndr (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXTyVarBndr (GhcPass _1) = DataConCantHappen
type XXType (GhcPass _1) |
Instance details Defined in GHC.Hs.Type type XXType (GhcPass _1) = HsCoreTy
type XXWarnDecl (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXWarnDecl (GhcPass _1) = DataConCantHappen
type XXWarnDecls (GhcPass _1) |
Instance details Defined in GHC.Hs.Decls type XXWarnDecls (GhcPass _1) = DataConCantHappen
type XCFamEqn (GhcPass _1) r |
Instance details Defined in GHC.Hs.Decls type XCFamEqn (GhcPass _1) r = EpAnn [AddEpAnn]
type XCGRHS (GhcPass _1) _2 |
Instance details Defined in GHC.Hs.Expr type XCGRHS (GhcPass _1) _2 = EpAnn GrhsAnn
type XCGRHSs (GhcPass _1) _2 |
Instance details Defined in GHC.Hs.Expr type XCGRHSs (GhcPass _1) _2 = EpAnnComments
type XCMatch (GhcPass _1) b |
Instance details Defined in GHC.Hs.Expr type XCMatch (GhcPass _1) b = EpAnn [AddEpAnn]
type XFunBind (GhcPass pL) GhcPs |
Instance details Defined in GHC.Hs.Binds type XFunBind (GhcPass pL) GhcPs = NoExtField
type XFunBind (GhcPass pL) GhcRn | After the renamer (but before the type-checker), the FunBind extension field contains the locally-bound free variables of this defn. See Note [Bind free vars]
Instance details Defined in GHC.Hs.Binds type XFunBind (GhcPass pL) GhcRn = NameSet

type XFunBind (GhcPass pL) GhcTc

After the type-checker, the FunBind extension field contains the ticks to put on the rhs, if any, and a coercion from the type of the MatchGroup to the type of the Id. Example:

         f :: Int -> forall a. a -> a
         f x y = y

Then the MatchGroup will have type (Int -> a' -> a') (with a free type variable a'). The coercion will take a CoreExpr of this type and convert it to a CoreExpr of type Int -> forall a'. a' -> a' Notice that the coercion captures the free a'.

Instance details Defined in GHC.Hs.Binds type XFunBind (GhcPass pL) GhcTc = (HsWrapper, [CoreTickish])
type XPSB (GhcPass idL) GhcPs |
Instance details Defined in GHC.Hs.Binds type XPSB (GhcPass idL) GhcPs = EpAnn [AddEpAnn]
type XPSB (GhcPass idL) GhcRn |
Instance details Defined in GHC.Hs.Binds type XPSB (GhcPass idL) GhcRn = NameSet
type XPSB (GhcPass idL) GhcTc |
Instance details Defined in GHC.Hs.Binds type XPSB (GhcPass idL) GhcTc = NameSet
type XRec (GhcPass p) a |
Instance details Defined in GHC.Hs.Extension type XRec (GhcPass p) a = GenLocated (Anno a) a
type XXFamEqn (GhcPass _1) r |
Instance details Defined in GHC.Hs.Decls type XXFamEqn (GhcPass _1) r = DataConCantHappen
type XXGRHS (GhcPass _1) b |
Instance details Defined in GHC.Hs.Expr type XXGRHS (GhcPass _1) b = DataConCantHappen
type XXGRHSs (GhcPass _1) _2 |
Instance details Defined in GHC.Hs.Expr type XXGRHSs (GhcPass _1) _2 = DataConCantHappen
type XXHsWildCardBndrs (GhcPass _1) _2 |
Instance details Defined in GHC.Hs.Type type XXHsWildCardBndrs (GhcPass _1) _2 = DataConCantHappen
type XXMatch (GhcPass _1) b |
Instance details Defined in GHC.Hs.Expr type XXMatch (GhcPass _1) b = DataConCantHappen
type XXMatchGroup (GhcPass _1) b |
Instance details Defined in GHC.Hs.Expr type XXMatchGroup (GhcPass _1) b = DataConCantHappen
type XXValBindsLR (GhcPass pL) pR |
Instance details Defined in GHC.Hs.Binds type XXValBindsLR (GhcPass pL) pR = NHsValBindsLR (GhcPass pL)
type XApplicativeStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XApplicativeStmt (GhcPass _1) GhcPs b = NoExtField
type XApplicativeStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XApplicativeStmt (GhcPass _1) GhcRn b = NoExtField
type XApplicativeStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XApplicativeStmt (GhcPass _1) GhcTc b = Type
type XBindStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XBindStmt (GhcPass _1) GhcPs b = EpAnn [AddEpAnn]
type XBindStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XBindStmt (GhcPass _1) GhcRn b = XBindStmtRn
type XBindStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XBindStmt (GhcPass _1) GhcTc b = XBindStmtTc
type XBodyStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XBodyStmt (GhcPass _1) GhcPs b = NoExtField
type XBodyStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XBodyStmt (GhcPass _1) GhcRn b = NoExtField
type XBodyStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XBodyStmt (GhcPass _1) GhcTc b = Type
type XParStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XParStmt (GhcPass _1) GhcPs b = NoExtField
type XParStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XParStmt (GhcPass _1) GhcRn b = NoExtField
type XParStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XParStmt (GhcPass _1) GhcTc b = Type
type XRecStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XRecStmt (GhcPass _1) GhcPs b = EpAnn AnnList
type XRecStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XRecStmt (GhcPass _1) GhcRn b = NoExtField
type XRecStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XRecStmt (GhcPass _1) GhcTc b = RecStmtTc
type XTransStmt (GhcPass _1) GhcPs b |
Instance details Defined in GHC.Hs.Expr type XTransStmt (GhcPass _1) GhcPs b = EpAnn [AddEpAnn]
type XTransStmt (GhcPass _1) GhcRn b |
Instance details Defined in GHC.Hs.Expr type XTransStmt (GhcPass _1) GhcRn b = NoExtField
type XTransStmt (GhcPass _1) GhcTc b |
Instance details Defined in GHC.Hs.Expr type XTransStmt (GhcPass _1) GhcTc b = Type
type XEmptyLocalBinds (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XEmptyLocalBinds (GhcPass pL) (GhcPass pR) = NoExtField
type XHsIPBinds (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XHsIPBinds (GhcPass pL) (GhcPass pR) = EpAnn AnnList
type XHsValBinds (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XHsValBinds (GhcPass pL) (GhcPass pR) = EpAnn AnnList
type XParStmtBlock (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Expr type XParStmtBlock (GhcPass pL) (GhcPass pR) = NoExtField
type XPatSynBind (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XPatSynBind (GhcPass pL) (GhcPass pR) = NoExtField
type XValBinds (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XValBinds (GhcPass pL) (GhcPass pR) = AnnSortKey
type XVarBind (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XVarBind (GhcPass pL) (GhcPass pR) = XVarBindGhc pL pR
type XXHsLocalBindsLR (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Binds type XXHsLocalBindsLR (GhcPass pL) (GhcPass pR) = DataConCantHappen
type XXParStmtBlock (GhcPass pL) (GhcPass pR) |
Instance details Defined in GHC.Hs.Expr type XXParStmtBlock (GhcPass pL) (GhcPass pR) = DataConCantHappen
type XXPatSynBind (GhcPass idL) (GhcPass idR) |
Instance details Defined in GHC.Hs.Binds type XXPatSynBind (GhcPass idL) (GhcPass idR) = DataConCantHappen
type XLastStmt (GhcPass _1) (GhcPass _2) b |
Instance details Defined in GHC.Hs.Expr type XLastStmt (GhcPass _1) (GhcPass _2) b = NoExtField
type XLetStmt (GhcPass _1) (GhcPass _2) b |
Instance details Defined in GHC.Hs.Expr type XLetStmt (GhcPass _1) (GhcPass _2) b = EpAnn [AddEpAnn]
type XXStmtLR (GhcPass _1) (GhcPass _2) b |
Instance details Defined in GHC.Hs.Expr type XXStmtLR (GhcPass _1) (GhcPass _2) b = DataConCantHappen
type Anno (HsBindLR (GhcPass idL) (GhcPass idR)) |
Instance details Defined in GHC.Hs.Binds type Anno (HsBindLR (GhcPass idL) (GhcPass idR)) = SrcSpanAnnA
type Anno (FamEqn (GhcPass p) _1) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn (GhcPass p) _1) = SrcSpanAnnA
type Anno (FamEqn (GhcPass p) _1) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn (GhcPass p) _1) = SrcSpanAnnA
type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = SrcAnn NoEpAnns
type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA
type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) |
Instance details Defined in GHC.Hs.Type type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag (GhcPass _1)) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag (GhcPass _1)) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcPs) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcPs) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcRn) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcRn) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcTc) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcTc) = SrcSpanAnnA
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) = SrcSpanAnnA

type GhcRn = GhcPass 'Renamed #

type GhcPs = GhcPass 'Parsed #

data Pass #

Constructors

Parsed |
Renamed |
Typechecked |

#### Instances

Instances details

Data Pass |

Instance details

Defined in GHC.Hs.Extension

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pass -> c Pass #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pass #

toConstr :: Pass -> Constr #

dataTypeOf :: Pass -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pass) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pass) #

gmapT :: (forall b. Data b => b -> b) -> Pass -> Pass #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pass -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pass -> r #

gmapQ :: (forall d. Data d => d -> u) -> Pass -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Pass -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pass -> m Pass #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pass -> m Pass #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pass -> m Pass #

type IsSrcSpanAnn (p :: Pass) a = (Anno (IdGhcP p) ~ SrcSpanAnn' (EpAnn a), IsPass p) #

pprIfPs :: forall (p :: Pass). IsPass p => (p ~ 'Parsed => SDoc) -> SDoc #

pprIfRn :: forall (p :: Pass). IsPass p => (p ~ 'Renamed => SDoc) -> SDoc #

pprIfTc :: forall (p :: Pass). IsPass p => (p ~ 'Typechecked => SDoc) -> SDoc #

noHsTok :: forall (tok :: Symbol). GenLocated TokenLocation (HsToken tok) #

noHsUniTok :: forall (tok :: Symbol) (utok :: Symbol). GenLocated TokenLocation (HsUniToken tok utok) #

data ExtractedTHDocs #

Maps of docs that were added via Template Haskell's `putDoc`.

Constructors

ExtractedTHDocs |

Fields

- ethd_mod_header :: Maybe (HsDoc GhcRn)

  The added module header documentation, if it exists.

- ethd_decl_docs :: UniqMap Name (HsDoc GhcRn)

  The documentation added to declarations.

- ethd_arg_docs :: UniqMap Name (IntMap (HsDoc GhcRn))

  The documentation added to function arguments.

- ethd_inst_docs :: UniqMap Name (HsDoc GhcRn)

  The documentation added to class and family instances.

data Docs #

Constructors

Docs |

Fields

- docs_mod_hdr :: Maybe (HsDoc GhcRn)

  Module header.

- docs_decls :: UniqMap Name [HsDoc GhcRn]

  Docs for declarations: functions, data types, instances, methods etc. A list because sometimes subsequent haddock comments can be combined into one

- docs_args :: UniqMap Name (IntMap (HsDoc GhcRn))

  Docs for arguments. E.g. function arguments, method arguments.

- docs_structure :: DocStructure
- docs_named_chunks :: Map String (HsDoc GhcRn)

  Map from chunk name to content.

  This map will be empty unless we have an explicit export list from which we can reference the chunks.

- docs_haddock_opts :: Maybe String

  Haddock options from `OPTIONS_HADDOCK` or from `-haddock-opts`.

- docs_language :: Maybe Language

  The `Language` used in the module, for example `Haskell2010`.

- docs_extensions :: EnumSet Extension

  The full set of language extensions used in the module.

#### Instances

Instances details

NFData Docs |
Instance details Defined in GHC.Hs.Doc Methods rnf :: Docs -> () #
Binary Docs |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> Docs -> IO () # put :: BinHandle -> Docs -> IO (Bin Docs) # get :: BinHandle -> IO Docs #
Outputable Docs |
Instance details Defined in GHC.Hs.Doc Methods ppr :: Docs -> SDoc #

type DocStructure = [DocStructureItem] #

data DocStructureItem #

A simplified version of `IE`.

Constructors

DsiSectionHeading !Int !(HsDoc GhcRn) |
DsiDocChunk !(HsDoc GhcRn) |
DsiNamedChunkRef !String |
DsiExports !Avails |
DsiModExport |

Fields

- !(NonEmpty ModuleName)

  We might re-export avails from multiple modules with a single export declaration. E.g. when we have

      module M (module X) where
      import R0 as X
      import R1 as X

- !Avails

#### Instances

Instances details

NFData DocStructureItem |
Instance details Defined in GHC.Hs.Doc Methods rnf :: DocStructureItem -> () #
Binary DocStructureItem |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> DocStructureItem -> IO () # put :: BinHandle -> DocStructureItem -> IO (Bin DocStructureItem) # get :: BinHandle -> IO DocStructureItem #
Outputable DocStructureItem |
Instance details Defined in GHC.Hs.Doc Methods ppr :: DocStructureItem -> SDoc #

type LHsDoc pass = Located (HsDoc pass) #

data WithHsDocIdentifiers a pass #

Annotate a value with the probable identifiers found in it These will be used by haddock to generate links.

The identifiers are bundled along with their location in the source file. This is useful for tooling to know exactly where they originate.

This type is currently used in two places - for regular documentation comments, with `a` set to `HsDocString`, and for adding identifier information to warnings, where `a` is `StringLiteral`

Constructors

WithHsDocIdentifiers |

Fields

- hsDocString :: !a
- hsDocIdentifiers :: ![Located (IdP pass)]

#### Instances

Instances details

ToHie (LHsDoc GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LHsDoc GhcRn -> HieM [HieAST Type]
(Data pass, Data (IdP pass), Data a) => Data (WithHsDocIdentifiers a pass) |

Instance details

Defined in GHC.Hs.Doc

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WithHsDocIdentifiers a pass -> c (WithHsDocIdentifiers a pass) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WithHsDocIdentifiers a pass) #

toConstr :: WithHsDocIdentifiers a pass -> Constr #

dataTypeOf :: WithHsDocIdentifiers a pass -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (WithHsDocIdentifiers a pass)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WithHsDocIdentifiers a pass)) #

gmapT :: (forall b. Data b => b -> b) -> WithHsDocIdentifiers a pass -> WithHsDocIdentifiers a pass #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WithHsDocIdentifiers a pass -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WithHsDocIdentifiers a pass -> r #

gmapQ :: (forall d. Data d => d -> u) -> WithHsDocIdentifiers a pass -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> WithHsDocIdentifiers a pass -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> WithHsDocIdentifiers a pass -> m (WithHsDocIdentifiers a pass) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> WithHsDocIdentifiers a pass -> m (WithHsDocIdentifiers a pass) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> WithHsDocIdentifiers a pass -> m (WithHsDocIdentifiers a pass) #

(NFData (IdP pass), NFData a) => NFData (WithHsDocIdentifiers a pass) |
Instance details Defined in GHC.Hs.Doc Methods rnf :: WithHsDocIdentifiers a pass -> () #
Binary a => Binary (WithHsDocIdentifiers a GhcRn) |
Instance details Defined in GHC.Hs.Doc Methods put_ :: BinHandle -> WithHsDocIdentifiers a GhcRn -> IO () # put :: BinHandle -> WithHsDocIdentifiers a GhcRn -> IO (Bin (WithHsDocIdentifiers a GhcRn)) # get :: BinHandle -> IO (WithHsDocIdentifiers a GhcRn) #
Outputable a => Outputable (WithHsDocIdentifiers a pass) | For compatibility with the existing @-ddump-parsed' output, we only show the docstring. Use `pprHsDoc` to show `HsDoc`'s internals.
Instance details Defined in GHC.Hs.Doc Methods ppr :: WithHsDocIdentifiers a pass -> SDoc #
ExactPrint a => ExactPrint (WithHsDocIdentifiers a GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: WithHsDocIdentifiers a GhcPs -> Entry # setAnnotationAnchor :: WithHsDocIdentifiers a GhcPs -> Anchor -> EpAnnComments -> WithHsDocIdentifiers a GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => WithHsDocIdentifiers a GhcPs -> EP w m (WithHsDocIdentifiers a GhcPs) #
(Eq (IdP pass), Eq a) => Eq (WithHsDocIdentifiers a pass) |
Instance details Defined in GHC.Hs.Doc Methods (==) :: WithHsDocIdentifiers a pass -> WithHsDocIdentifiers a pass -> Bool # (/=) :: WithHsDocIdentifiers a pass -> WithHsDocIdentifiers a pass -> Bool #

type HsDoc = WithHsDocIdentifiers HsDocString #

A docstring with the (probable) identifiers found in it.

hsDocIds :: WithHsDocIdentifiers a GhcRn -> NameSet #

Extract a mapping from the lexed identifiers to the names they may correspond to.

pprWithDoc :: LHsDoc name -> SDoc -> SDoc #

Pretty print a thing with its doc The docstring will include the comment decorators '-- |', '{-|' etc and will come either before or after depending on how it was written i.e it will come after the thing if it is a '-- ^' or '{-^' and before otherwise.

pprMaybeWithDoc :: Maybe (LHsDoc name) -> SDoc -> SDoc #

See `pprWithHsDoc`

pprHsDocDebug :: Outputable (IdP name) => HsDoc name -> SDoc #

Print a doc with its identifiers, useful for debugging

emptyDocs :: Docs #

type LIEWrappedName p = XRec p (IEWrappedName p) #

Located name with possible adornment - `AnnKeywordId`s : `AnnType`, `AnnPattern`

data IEWrappedName p #

A name in an import or export specification which may have adornments. Used primarily for accurate pretty printing of ParsedSource, and API Annotation placement. The `Annotation` is the location of the adornment in the original source.

Constructors

IEName (XIEName p) (LIdP p) | no extra
IEPattern (XIEPattern p) (LIdP p) | pattern X
IEType (XIEType p) (LIdP p) | type (:+:)
XIEWrappedName !(XXIEWrappedName p) |

#### Instances

Instances details

ToHie (IEContext (LocatedA (IEWrappedName GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IEWrappedName GhcRn)) -> HieM [HieAST Type]
ExactPrint (IEWrappedName GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: IEWrappedName GhcPs -> Entry # setAnnotationAnchor :: IEWrappedName GhcPs -> Anchor -> EpAnnComments -> IEWrappedName GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => IEWrappedName GhcPs -> EP w m (IEWrappedName GhcPs) #
type Anno (IEWrappedName (GhcPass _1)) |
Instance details Defined in GHC.Hs.ImpExp type Anno (IEWrappedName (GhcPass _1)) = SrcSpanAnnA

data IEWildcard #

Wildcard in an import or export sublist, like the `..` in `import Mod ( T(Mk1, Mk2, ..) )`.

Constructors

NoIEWildcard | no wildcard in this list
IEWildcard Int | wildcard after the given # of items in this list The `Int` is in the range [0..n], where n is the length of the list.

#### Instances

Instances details

Data IEWildcard |

Instance details

Defined in Language.Haskell.Syntax.ImpExp

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IEWildcard -> c IEWildcard #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IEWildcard #

toConstr :: IEWildcard -> Constr #

dataTypeOf :: IEWildcard -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IEWildcard) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IEWildcard) #

gmapT :: (forall b. Data b => b -> b) -> IEWildcard -> IEWildcard #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IEWildcard -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IEWildcard -> r #

gmapQ :: (forall d. Data d => d -> u) -> IEWildcard -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> IEWildcard -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> IEWildcard -> m IEWildcard #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IEWildcard -> m IEWildcard #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IEWildcard -> m IEWildcard #

Eq IEWildcard |
Instance details Defined in Language.Haskell.Syntax.ImpExp Methods (==) :: IEWildcard -> IEWildcard -> Bool # (/=) :: IEWildcard -> IEWildcard -> Bool #

type LIE pass #

Arguments

= XRec pass (IE pass)

When in a list this may have

- `AnnKeywordId` : `AnnComma`

Located Import or Export

data ImportListInterpretation #

Whether the import list is exactly what to import, or whether `hiding` was used, and therefore everything but what was listed should be imported

Constructors

Exactly |
EverythingBut |

#### Instances

Instances details

Data ImportListInterpretation |

Instance details

Defined in Language.Haskell.Syntax.ImpExp

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImportListInterpretation -> c ImportListInterpretation #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ImportListInterpretation #

toConstr :: ImportListInterpretation -> Constr #

dataTypeOf :: ImportListInterpretation -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ImportListInterpretation) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ImportListInterpretation) #

gmapT :: (forall b. Data b => b -> b) -> ImportListInterpretation -> ImportListInterpretation #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImportListInterpretation -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImportListInterpretation -> r #

gmapQ :: (forall d. Data d => d -> u) -> ImportListInterpretation -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ImportListInterpretation -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImportListInterpretation -> m ImportListInterpretation #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportListInterpretation -> m ImportListInterpretation #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportListInterpretation -> m ImportListInterpretation #

Eq ImportListInterpretation |
Instance details Defined in Language.Haskell.Syntax.ImpExp Methods (==) :: ImportListInterpretation -> ImportListInterpretation -> Bool # (/=) :: ImportListInterpretation -> ImportListInterpretation -> Bool #

data ImportDecl pass #

Import Declaration

A single Haskell `import` declaration.

Constructors

ImportDecl |

Fields

- ideclExt :: XCImportDecl pass
- ideclName :: XRec pass ModuleName

  Module name.

- ideclPkgQual :: ImportDeclPkgQual pass

  Package qualifier.

- ideclSource :: IsBootInterface

  IsBoot = {-# SOURCE #-} import

- ideclSafe :: Bool

  True => safe import

- ideclQualified :: ImportDeclQualifiedStyle

  If/how the import is qualified.

- ideclAs :: Maybe (XRec pass ModuleName)

  as Module

- ideclImportList :: Maybe (ImportListInterpretation, XRec pass [LIE pass])

  Explicit import list (EverythingBut => hiding, names)

XImportDecl !(XXImportDecl pass)

`AnnKeywordId`s

- `AnnImport`
- `AnnOpen`, `AnnClose` for ideclSource
- `AnnSafe`,`AnnQualified`, `AnnPackageName`,`AnnAs`, `AnnVal`
- `AnnHiding`,`AnnOpen`, `AnnClose` attached to location in ideclImportList

#### Instances

Instances details

ToHie (LocatedA (ImportDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ImportDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (ImportDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ImportDecl GhcPs -> Entry # setAnnotationAnchor :: ImportDecl GhcPs -> Anchor -> EpAnnComments -> ImportDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ImportDecl GhcPs -> EP w m (ImportDecl GhcPs) #
type Anno (ImportDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.ImpExp type Anno (ImportDecl (GhcPass p)) = SrcSpanAnnA

data ImportDeclQualifiedStyle #

If/how an import is `qualified`.

Constructors

QualifiedPre | `qualified` appears in prepositive position.
QualifiedPost | `qualified` appears in postpositive position.
NotQualified | Not qualified.

#### Instances

Instances details

Data ImportDeclQualifiedStyle |

Instance details

Defined in Language.Haskell.Syntax.ImpExp

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImportDeclQualifiedStyle -> c ImportDeclQualifiedStyle #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ImportDeclQualifiedStyle #

toConstr :: ImportDeclQualifiedStyle -> Constr #

dataTypeOf :: ImportDeclQualifiedStyle -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ImportDeclQualifiedStyle) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ImportDeclQualifiedStyle) #

gmapT :: (forall b. Data b => b -> b) -> ImportDeclQualifiedStyle -> ImportDeclQualifiedStyle #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImportDeclQualifiedStyle -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImportDeclQualifiedStyle -> r #

gmapQ :: (forall d. Data d => d -> u) -> ImportDeclQualifiedStyle -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ImportDeclQualifiedStyle -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImportDeclQualifiedStyle -> m ImportDeclQualifiedStyle #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportDeclQualifiedStyle -> m ImportDeclQualifiedStyle #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportDeclQualifiedStyle -> m ImportDeclQualifiedStyle #

Eq ImportDeclQualifiedStyle |
Instance details Defined in Language.Haskell.Syntax.ImpExp Methods (==) :: ImportDeclQualifiedStyle -> ImportDeclQualifiedStyle -> Bool # (/=) :: ImportDeclQualifiedStyle -> ImportDeclQualifiedStyle -> Bool #

type LImportDecl pass #

Arguments

= XRec pass (ImportDecl pass)

When in a list this may have

- `AnnKeywordId` : `AnnSemi`

Located Import Declaration

data WarnDecls pass #

Warning pragma Declarations

Constructors

Warnings |

Fields

- wd_ext :: XWarnings pass
- wd_warnings :: [LWarnDecl pass]

XWarnDecls !(XXWarnDecls pass) |

#### Instances

Instances details

ToHie (LocatedA (WarnDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecls GhcRn) -> HieM [HieAST Type]
ExactPrint (WarnDecls GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: WarnDecls GhcPs -> Entry # setAnnotationAnchor :: WarnDecls GhcPs -> Anchor -> EpAnnComments -> WarnDecls GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => WarnDecls GhcPs -> EP w m (WarnDecls GhcPs) #
type Anno (WarnDecls (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (WarnDecls (GhcPass p)) = SrcSpanAnnA

data EpAnnImportDecl #

Constructors

EpAnnImportDecl |

Fields

- importDeclAnnImport :: EpaLocation
- importDeclAnnPragma :: Maybe (EpaLocation, EpaLocation)
- importDeclAnnSafe :: Maybe EpaLocation
- importDeclAnnQualified :: Maybe EpaLocation
- importDeclAnnPackage :: Maybe EpaLocation
- importDeclAnnAs :: Maybe EpaLocation

#### Instances

Instances details

Data EpAnnImportDecl |

Instance details

Defined in GHC.Hs.ImpExp

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpAnnImportDecl -> c EpAnnImportDecl #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpAnnImportDecl #

toConstr :: EpAnnImportDecl -> Constr #

dataTypeOf :: EpAnnImportDecl -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpAnnImportDecl) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpAnnImportDecl) #

gmapT :: (forall b. Data b => b -> b) -> EpAnnImportDecl -> EpAnnImportDecl #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnImportDecl -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnImportDecl -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpAnnImportDecl -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpAnnImportDecl -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpAnnImportDecl -> m EpAnnImportDecl #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnImportDecl -> m EpAnnImportDecl #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnImportDecl -> m EpAnnImportDecl #

data XImportDeclPass #

Constructors

XImportDeclPass |

Fields

- ideclAnn :: EpAnn EpAnnImportDecl
- ideclSourceText :: SourceText
- ideclImplicit :: Bool

  GHC generates an `ImportDecl` to represent the invisible `import Prelude` that appears in any file that omits `import Prelude`, setting this field to indicate that the import doesn't appear in the original source. True => implicit import (of Prelude)

#### Instances

Instances details

Data XImportDeclPass |

Instance details

Defined in GHC.Hs.ImpExp

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> XImportDeclPass -> c XImportDeclPass #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c XImportDeclPass #

toConstr :: XImportDeclPass -> Constr #

dataTypeOf :: XImportDeclPass -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c XImportDeclPass) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c XImportDeclPass) #

gmapT :: (forall b. Data b => b -> b) -> XImportDeclPass -> XImportDeclPass #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> XImportDeclPass -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> XImportDeclPass -> r #

gmapQ :: (forall d. Data d => d -> u) -> XImportDeclPass -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> XImportDeclPass -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> XImportDeclPass -> m XImportDeclPass #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> XImportDeclPass -> m XImportDeclPass #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> XImportDeclPass -> m XImportDeclPass #

importDeclQualifiedStyle :: Maybe EpaLocation -> Maybe EpaLocation -> (Maybe EpaLocation, ImportDeclQualifiedStyle) #

Given two possible located `qualified` tokens, compute a style (in a conforming Haskell program only one of the two can be not `Nothing`). This is called from GHC.Parser.

isImportDeclQualified :: ImportDeclQualifiedStyle -> Bool #

Convenience function to answer the question if an import decl. is qualified.

simpleImportDecl :: ModuleName -> ImportDecl GhcPs #

ieName :: forall (p :: Pass). IE (GhcPass p) -> IdP (GhcPass p) #

ieNames :: forall (p :: Pass). IE (GhcPass p) -> [IdP (GhcPass p)] #

ieDeprecation :: forall (p :: Pass). IsPass p => IE (GhcPass p) -> Maybe (WarningTxt (GhcPass p)) #

ieWrappedLName :: forall (p :: Pass). IEWrappedName (GhcPass p) -> LIdP (GhcPass p) #

ieWrappedName :: forall (p :: Pass). IEWrappedName (GhcPass p) -> IdP (GhcPass p) #

lieWrappedName :: forall (p :: Pass). LIEWrappedName (GhcPass p) -> IdP (GhcPass p) #

ieLWrappedName :: forall (p :: Pass). LIEWrappedName (GhcPass p) -> LIdP (GhcPass p) #

replaceWrappedName :: IEWrappedName GhcPs -> IdP GhcRn -> IEWrappedName GhcRn #

replaceLWrappedName :: LIEWrappedName GhcPs -> IdP GhcRn -> LIEWrappedName GhcRn #

pprImpExp :: (HasOccName name, OutputableBndr name) => name -> SDoc #

data OverLitVal #

Overloaded Literal Value

Constructors

HsIntegral !IntegralLit | Integer-looking literals;
HsFractional !FractionalLit | Frac-looking literals
HsIsString !SourceText !FastString | String-looking literals

#### Instances

Instances details

Data OverLitVal |

Instance details

Defined in Language.Haskell.Syntax.Lit

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OverLitVal -> c OverLitVal #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OverLitVal #

toConstr :: OverLitVal -> Constr #

dataTypeOf :: OverLitVal -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OverLitVal) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OverLitVal) #

gmapT :: (forall b. Data b => b -> b) -> OverLitVal -> OverLitVal #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OverLitVal -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OverLitVal -> r #

gmapQ :: (forall d. Data d => d -> u) -> OverLitVal -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> OverLitVal -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> OverLitVal -> m OverLitVal #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OverLitVal -> m OverLitVal #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OverLitVal -> m OverLitVal #

Eq OverLitVal |
Instance details Defined in Language.Haskell.Syntax.Lit Methods (==) :: OverLitVal -> OverLitVal -> Bool # (/=) :: OverLitVal -> OverLitVal -> Bool #
Ord OverLitVal |
Instance details 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 #

data HsLit x #

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 `Int#`
HsWordPrim (XHsWordPrim x) Integer | literal `Word#`
HsInt8Prim (XHsInt8Prim x) Integer | literal `Int8#`
HsInt16Prim (XHsInt16Prim x) Integer | literal `Int16#`
HsInt32Prim (XHsInt32Prim x) Integer | literal `Int32#`
HsInt64Prim (XHsInt64Prim x) Integer | literal `Int64#`
HsWord8Prim (XHsWord8Prim x) Integer | literal `Word8#`
HsWord16Prim (XHsWord16Prim x) Integer | literal `Word16#`
HsWord32Prim (XHsWord32Prim x) Integer | literal `Word32#`
HsWord64Prim (XHsWord64Prim x) Integer | literal `Word64#`
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) |

#### Instances

Instances details

Eq (HsLit x) |
Instance details Defined in Language.Haskell.Syntax.Lit Methods (==) :: HsLit x -> HsLit x -> Bool # (/=) :: HsLit x -> HsLit x -> Bool #

negateOverLitVal :: OverLitVal -> OverLitVal #

data HsImplBang #

Haskell Implementation Bang

Bangs of data constructor arguments as generated by the compiler after consulting HsSrcBang, flags, etc.

Constructors

HsLazy | Lazy field, or one with an unlifted type
HsStrict Bool | Strict but not unpacked field True = we could have unpacked, but opted not to because of -O0. See Note [Detecting useless UNPACK pragmas]
HsUnpack (Maybe Coercion) | Strict and unpacked field co :: arg-ty ~ product-ty HsBang

#### Instances

Instances details

Data HsImplBang |

Instance details

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 |
Instance details Defined in GHC.Core.DataCon Methods ppr :: HsImplBang -> SDoc #

data HsSrcBang #

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

Instances details

Data HsSrcBang |

Instance details

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 |
Instance details Defined in GHC.Core.DataCon Methods ppr :: HsSrcBang -> SDoc #

data AmbiguousFieldOcc pass #

Ambiguous Field Occurrence

Represents an *occurrence* of a field that is potentially ambiguous after the renamer, with the ambiguity resolved by the typechecker. We always store the `RdrName` that the user originally wrote, and store the selector function after the renamer (for unambiguous occurrences) or the typechecker (for ambiguous occurrences).

See Note [HsRecField and HsRecUpdField] in GHC.Hs.Pat. See Note [Located RdrNames] in GHC.Hs.Expr.

Constructors

Unambiguous (XUnambiguous pass) (XRec pass RdrName) |
Ambiguous (XAmbiguous pass) (XRec pass RdrName) |
XAmbiguousFieldOcc !(XXAmbiguousFieldOcc pass) |

#### Instances

Instances details

HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p))) -> HieM [HieAST Type]
ExactPrint (AmbiguousFieldOcc GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: AmbiguousFieldOcc GhcPs -> Entry # setAnnotationAnchor :: AmbiguousFieldOcc GhcPs -> Anchor -> EpAnnComments -> AmbiguousFieldOcc GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => AmbiguousFieldOcc GhcPs -> EP w m (AmbiguousFieldOcc GhcPs) #
ExactPrint (LocatedA body) => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> EP w m (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) #

type Anno (AmbiguousFieldOcc (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (AmbiguousFieldOcc (GhcPass p)) = SrcAnn NoEpAnns

type LAmbiguousFieldOcc pass = XRec pass (AmbiguousFieldOcc pass) #

Located Ambiguous Field Occurence

data FieldOcc pass #

Field Occurrence

Represents an *occurrence* of a field. This may or may not be a binding occurrence (e.g. this type is used in `ConDeclField` and `RecordPatSynField` which bind their fields, but also in `HsRecField` for record construction and patterns, which do not).

We store both the `RdrName` the user originally wrote, and after the renamer we use the extension field to store the selector function.

Constructors

FieldOcc |

Fields

- foExt :: XCFieldOcc pass
- foLabel :: XRec pass RdrName

XFieldOcc !(XXFieldOcc pass) |

#### Instances

Instances details

HiePass p => ToHie (Context (FieldOcc (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (FieldOcc (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p))) -> HieM [HieAST Type]
ExactPrint (FieldOcc GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FieldOcc GhcPs -> Entry # setAnnotationAnchor :: FieldOcc GhcPs -> Anchor -> EpAnnComments -> FieldOcc GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FieldOcc GhcPs -> EP w m (FieldOcc GhcPs) #
(Eq (XRec pass RdrName), Eq (XCFieldOcc pass), Eq (XXFieldOcc pass)) => Eq (FieldOcc pass) |
Instance details Defined in Language.Haskell.Syntax.Type Methods (==) :: FieldOcc pass -> FieldOcc pass -> Bool # (/=) :: FieldOcc pass -> FieldOcc pass -> Bool #
ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) #

type Anno (FieldOcc (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (FieldOcc (GhcPass p)) = SrcAnn NoEpAnns

type LFieldOcc pass = XRec pass (FieldOcc pass) #

Located Field Occurrence

type LHsTypeArg p = HsArg p (LHsType p) (LHsKind p) #

data HsArg p tm ty #

Arguments in an expression/type after splitting

Constructors

HsValArg tm |
HsTypeArg !(LHsToken "@" p) ty |
HsArgPar SrcSpan |

#### Instances

Instances details

(HasLoc tm, HasLoc ty) => HasLoc (HsArg p tm ty) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: HsArg p tm ty -> SrcSpan
(ToHie tm, ToHie ty) => ToHie (HsArg p tm ty) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsArg p tm ty -> HieM [HieAST Type]
(ExactPrint tm, ExactPrint ty, Outputable tm, Outputable ty) => ExactPrint (HsArg GhcPs tm ty) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsArg GhcPs tm ty -> Entry # setAnnotationAnchor :: HsArg GhcPs tm ty -> Anchor -> EpAnnComments -> HsArg GhcPs tm ty # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsArg GhcPs tm ty -> EP w m (HsArg GhcPs tm ty) #

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 (see `HsConPatDetails` 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).

Constructors

PrefixCon [tyarg] [arg] |
RecCon rec |
InfixCon arg arg |

#### Instances

Instances details

(Data tyarg, Data rec, Data arg) => Data (HsConDetails tyarg arg rec) |

Instance details

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) #

(ToHie tyarg, ToHie arg, ToHie rec) => ToHie (HsConDetails tyarg arg rec) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsConDetails tyarg arg rec -> HieM [HieAST Type]

type LConDeclField pass #

Arguments

= XRec pass (ConDeclField pass) | May have `AnnKeywordId` : `AnnComma` when in a list

Located Constructor Declaration Field

data HsTupleSort #

Haskell Tuple Sort

Constructors

HsUnboxedTuple |
HsBoxedOrConstraintTuple |

#### Instances

Instances details

Data HsTupleSort |

Instance details

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 #

data HsScaled pass a #

This is used in the syntax. In constructor declaration. It must keep the arrow representation.

Constructors

HsScaled (HsArrow pass) a |

#### Instances

Instances details

ToHie a => ToHie (HsScaled GhcRn a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsScaled GhcRn a -> HieM [HieAST Type]
HasHaddock a => HasHaddock (HsScaled GhcPs a) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsScaled GhcPs a -> HdkA (HsScaled GhcPs a)
ExactPrint a => ExactPrint (HsScaled GhcPs a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsScaled GhcPs a -> Entry # setAnnotationAnchor :: HsScaled GhcPs a -> Anchor -> EpAnnComments -> HsScaled GhcPs a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsScaled GhcPs a -> EP w m (HsScaled GhcPs a) #

data HsLinearArrowTokens pass #

Constructors

HsPct1 !(LHsToken "%1" pass) !(LHsUniToken "->" "\8594" pass) |
HsLolly !(LHsToken "\8888" pass) |

data HsArrow pass #

Denotes the type of arrows in the surface language

Constructors

HsUnrestrictedArrow !(LHsUniToken "->" "\8594" pass) | a -> b or a → b
HsLinearArrow !(HsLinearArrowTokens pass) | a %1 -> b or a %1 → b, or a ⊸ b
HsExplicitMult !(LHsToken "%" pass) !(LHsType pass) !(LHsUniToken "->" "\8594" 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 `HsType` so as to preserve the syntax as written in the program.

data HsType pass #

Haskell Type

Constructors

HsForAllTy

- `AnnKeywordId` : `AnnForall`, `AnnDot`,`AnnDarrow` For details on above see Note [exact print annotations] in GHC.Parser.Annotation

Fields

- hst_xforall :: XForAllTy pass
- hst_tele :: HsForAllTelescope pass
- hst_body :: LHsType pass

HsQualTy |

Fields

- hst_xqual :: XQualTy pass
- hst_ctxt :: LHsContext pass
- hst_body :: LHsType pass

HsTyVar (XTyVar pass) PromotionFlag (LIdP pass)

- `AnnKeywordId` : None

HsAppTy (XAppTy pass) (LHsType pass) (LHsType pass)

- `AnnKeywordId` : None

HsAppKindTy (XAppKindTy pass) (LHsType pass) !(LHsToken "@" pass) (LHsKind pass) |

HsFunTy (XFunTy pass) (HsArrow pass) (LHsType pass) (LHsType pass)

- `AnnKeywordId` : `AnnRarrow`,

HsListTy (XListTy pass) (LHsType pass)

- `AnnKeywordId` : `AnnOpen` `'['`, `AnnClose` `']'`

HsTupleTy (XTupleTy pass) HsTupleSort [LHsType pass]

- `AnnKeywordId` : `AnnOpen` `'(' or '(#'`, `AnnClose` `')' or '#)'`

HsSumTy (XSumTy pass) [LHsType pass]

- `AnnKeywordId` : `AnnOpen` `'(#'`, `AnnClose` '#)'@

HsOpTy (XOpTy pass) PromotionFlag (LHsType pass) (LIdP pass) (LHsType pass)

- `AnnKeywordId` : None

HsParTy (XParTy pass) (LHsType pass)

- `AnnKeywordId` : `AnnOpen` `'('`, `AnnClose` `')'`

HsIParamTy (XIParamTy pass) (XRec pass HsIPName) (LHsType pass)

    (?x :: ty)

- `AnnKeywordId` : `AnnDcolon`

HsStarTy (XStarTy pass) Bool

- `AnnKeywordId` : None

HsKindSig (XKindSig pass) (LHsType pass) (LHsKind pass)

    (ty :: kind)

- `AnnKeywordId` : `AnnOpen` `'('`, `AnnDcolon`,`AnnClose` `')'`

HsSpliceTy (XSpliceTy pass) (HsUntypedSplice pass)

- `AnnKeywordId` : `AnnOpen` `'$('`, `AnnClose` `')'`

HsDocTy (XDocTy pass) (LHsType pass) (LHsDoc pass)

- `AnnKeywordId` : None

HsBangTy (XBangTy pass) HsSrcBang (LHsType pass)

- `AnnKeywordId` : `AnnOpen` `'{-# UNPACK' or '{-# NOUNPACK'`, `AnnClose` `'#-}'` `AnnBang` `'!'`

HsRecTy (XRecTy pass) [LConDeclField pass]

- `AnnKeywordId` : `AnnOpen` `'{'`, `AnnClose` `'}'`

HsExplicitListTy (XExplicitListTy pass) PromotionFlag [LHsType pass]

- `AnnKeywordId` : `AnnOpen` `"'["`, `AnnClose` `']'`

HsExplicitTupleTy (XExplicitTupleTy pass) [LHsType pass]

- `AnnKeywordId` : `AnnOpen` `"'("`, `AnnClose` `')'`

HsTyLit (XTyLit pass) (HsTyLit pass)

- `AnnKeywordId` : None

HsWildCardTy (XWildCardTy pass)

- `AnnKeywordId` : None

XHsType !(XXType pass) |

#### Instances

Instances details

ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
ToHie (LocatedA (HsType GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsType GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC [LocatedA (HsType GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC [LocatedA (HsType GhcRn)] -> HieM [HieAST Type]
DisambTD (HsType GhcPs) |

Instance details

Defined in GHC.Parser.PostProcess

Methods

mkHsAppTyHeadPV :: LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) #

mkHsAppTyPV :: LocatedA (HsType GhcPs) -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) #

mkHsAppKindTyPV :: LocatedA (HsType GhcPs) -> LHsToken "@" GhcPs -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) #

mkHsOpTyPV :: PromotionFlag -> LHsType GhcPs -> LocatedN RdrName -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) #

mkUnpackednessPV :: Located UnpackednessPragma -> LocatedA (HsType GhcPs) -> PV (LocatedA (HsType GhcPs)) #

HasHaddock (LocatedA (HsType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsType GhcPs) -> HdkA (LocatedA (HsType GhcPs))
ExactPrint (HsType GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsType GhcPs -> Entry # setAnnotationAnchor :: HsType GhcPs -> Anchor -> EpAnnComments -> HsType GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsType GhcPs -> EP w m (HsType GhcPs) #
type Anno (BangType (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (BangType (GhcPass p)) = SrcSpanAnnA
type Anno (HsKind (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (HsKind (GhcPass p)) = SrcSpanAnnA
type Anno (HsType (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (HsType (GhcPass p)) = SrcSpanAnnA
type Anno [LocatedA (HsType (GhcPass p))] |
Instance details Defined in GHC.Hs.Type type Anno [LocatedA (HsType (GhcPass p))] = SrcSpanAnnC
type Anno (FamEqn p (LocatedA (HsType p))) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn p (LocatedA (HsType p))) = SrcSpanAnnA

data HsBndrVis pass #

Constructors

HsBndrRequired |
HsBndrInvisible (LHsToken "@" pass) |

#### Instances

Instances details

CvtFlag BndrVis (HsBndrVis GhcPs) |
Instance details Defined in GHC.ThToHs Methods cvtFlag :: BndrVis -> HsBndrVis GhcPs
ExactPrintTVFlag (HsBndrVis GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods exactTVDelimiters :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => EpAnn [AddEpAnn] -> HsBndrVis GhcPs -> EP w m (HsTyVarBndr (HsBndrVis GhcPs) GhcPs) -> EP w m (EpAnn [AddEpAnn], HsTyVarBndr (HsBndrVis GhcPs) GhcPs)
OutputableBndrFlag (HsBndrVis p') p |
Instance details Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr (HsBndrVis p') (GhcPass p) -> SDoc
RepTV (HsBndrVis GhcRn) BndrVis |
Instance details Defined in GHC.HsToCore.Quote Methods tyVarBndrName :: Name repPlainTV :: Core Name -> HsBndrVis GhcRn -> MetaM (Core (M (TyVarBndr BndrVis))) repKindedTV :: Core Name -> HsBndrVis GhcRn -> Core (M Kind) -> MetaM (Core (M (TyVarBndr BndrVis)))

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)

- `AnnKeywordId` : `AnnOpen`, `AnnDcolon`, `AnnClose`

XTyVarBndr !(XXTyVarBndr pass) |

#### Instances

Instances details

Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TVScoped (LocatedA (HsTyVarBndr flag GhcRn)) -> HieM [HieAST Type]
ExactPrintTVFlag flag => ExactPrint (HsTyVarBndr flag GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsTyVarBndr flag GhcPs -> Entry # setAnnotationAnchor :: HsTyVarBndr flag GhcPs -> Anchor -> EpAnnComments -> HsTyVarBndr flag GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsTyVarBndr flag GhcPs -> EP w m (HsTyVarBndr flag GhcPs) #
type Anno (HsTyVarBndr _flag (GhcPass _1)) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag (GhcPass _1)) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcPs) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcPs) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcRn) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcRn) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcTc) |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcTc) = SrcSpanAnnA

newtype HsIPName #

These names are used early on to store the names of implicit parameters. They completely disappear after type-checking.

Constructors

HsIPName FastString |

#### Instances

Instances details

Data HsIPName |

Instance details

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 #

ExactPrint HsIPName |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsIPName -> Entry # setAnnotationAnchor :: HsIPName -> Anchor -> EpAnnComments -> HsIPName # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsIPName -> EP w m HsIPName #
Eq HsIPName |
Instance details Defined in Language.Haskell.Syntax.Type Methods (==) :: HsIPName -> HsIPName -> Bool # (/=) :: HsIPName -> HsIPName -> Bool #
ToHie (LocatedAn NoEpAnns HsIPName) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns HsIPName -> HieM [HieAST Type]
type Anno HsIPName |
Instance details Defined in GHC.Hs.Type type Anno HsIPName = SrcAnn NoEpAnns

data HsSigType pass #

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 |

Fields

- sig_ext :: XHsSig pass
- sig_bndrs :: HsOuterSigTyVarBndrs pass
- sig_body :: LHsType pass

XHsSigType !(XXHsSigType pass) |

#### Instances

Instances details

ToHie (TScoped (LocatedA (HsSigType GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (LocatedA (HsSigType GhcRn)) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn))) -> HieM [HieAST Type]
HasHaddock (LocatedA (HsSigType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsSigType GhcPs) -> HdkA (LocatedA (HsSigType GhcPs))
ExactPrint (HsSigType GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsSigType GhcPs -> Entry # setAnnotationAnchor :: HsSigType GhcPs -> Anchor -> EpAnnComments -> HsSigType GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsSigType GhcPs -> EP w m (HsSigType GhcPs) #
type Anno (HsSigType (GhcPass p)) |
Instance details Defined in GHC.Hs.Type type Anno (HsSigType (GhcPass p)) = SrcSpanAnnA

type LHsSigWcType pass = HsWildCardBndrs pass (LHsSigType pass) #

Located Haskell Signature Wildcard Type

type LHsWcType pass = HsWildCardBndrs pass (LHsType pass) #

Located Haskell Wildcard Type

type LHsSigType pass = XRec pass (HsSigType pass) #

Located Haskell Signature Type

data HsPatSigType pass #

Types that can appear in pattern signatures, as well as the signatures for term-level binders in RULES. See `Note [Pattern signature binders and scoping]`.

This is very similar to `HsSigWcType`, but with slightly different semantics: see `Note [HsType binders]`. See also `Note [The wildcard story for types]`.

Constructors

HsPS |

Fields

- hsps_ext :: XHsPS pass

  After renamer: `HsPSRn`

- hsps_body :: LHsType pass

  Main payload (the type itself)

XHsPatSigType !(XXHsPatSigType pass) |

#### Instances

Instances details

ToHie (TScoped (HsPatSigType GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsPatSigType GhcRn) -> HieM [HieAST Type]
ExactPrint (HsPatSigType GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsPatSigType GhcPs -> Entry # setAnnotationAnchor :: HsPatSigType GhcPs -> Anchor -> EpAnnComments -> HsPatSigType GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsPatSigType GhcPs -> EP w m (HsPatSigType GhcPs) #

data HsWildCardBndrs pass thing #

Haskell Wildcard Binders

Constructors

HsWC |

Fields

- hswc_ext :: XHsWC pass thing
- hswc_body :: thing

XHsWildCardBndrs !(XXHsWildCardBndrs pass thing) |

#### Instances

Instances details

ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
HasHaddock a => HasHaddock (HsWildCardBndrs GhcPs a) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsWildCardBndrs GhcPs a -> HdkA (HsWildCardBndrs GhcPs a)
ExactPrint body => ExactPrint (HsWildCardBndrs GhcPs body) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsWildCardBndrs GhcPs body -> Entry # setAnnotationAnchor :: HsWildCardBndrs GhcPs body -> Anchor -> EpAnnComments -> HsWildCardBndrs GhcPs body # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsWildCardBndrs GhcPs body -> EP w m (HsWildCardBndrs GhcPs body) #

type HsOuterFamEqnTyVarBndrs = HsOuterTyVarBndrs () #

Used for type-family instance equations, e.g.,

    type instance forall a. F [a] = Tree a

The notion of specificity is irrelevant in type family equations, so we use `()` for the `HsOuterTyVarBndrs` `flag`.

type HsOuterSigTyVarBndrs = HsOuterTyVarBndrs Specificity #

Used for signatures, e.g.,

    f :: forall a {b}. blah

We use `Specificity` for the `HsOuterTyVarBndrs` `flag` to allow distinguishing between specified and inferred type variables.

data HsOuterTyVarBndrs flag pass #

The outermost type variables in a type that obeys the `forall`-or-nothing rule. See `Note [forall-or-nothing rule]`.

Constructors

HsOuterImplicit | Implicit forall, e.g., `f :: a -> b -> b`

Fields

- hso_ximplicit :: XHsOuterImplicit pass

HsOuterExplicit | Explicit forall, e.g., `f :: forall a b. a -> b -> b`

Fields

- hso_xexplicit :: XHsOuterExplicit pass flag
- hso_bndrs :: [LHsTyVarBndr flag (NoGhcTc pass)]

XHsOuterTyVarBndrs !(XXHsOuterTyVarBndrs pass) |

#### Instances

Instances details

Data flag => ToHie (TVScoped (HsOuterTyVarBndrs flag GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TVScoped (HsOuterTyVarBndrs flag GhcRn) -> HieM [HieAST Type]
ExactPrintTVFlag flag => ExactPrint (HsOuterTyVarBndrs flag GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsOuterTyVarBndrs flag GhcPs -> Entry # setAnnotationAnchor :: HsOuterTyVarBndrs flag GhcPs -> Anchor -> EpAnnComments -> HsOuterTyVarBndrs flag GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsOuterTyVarBndrs flag GhcPs -> EP w m (HsOuterTyVarBndrs flag GhcPs) #
type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) |
Instance details Defined in GHC.Hs.Type type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) = SrcSpanAnnA

data LHsQTyVars pass #

Located Haskell Quantified Type Variables

Constructors

HsQTvs |

Fields

- hsq_ext :: XHsQTvs pass
- hsq_explicit :: [LHsTyVarBndr (HsBndrVis pass) pass]

XLHsQTyVars !(XXLHsQTyVars pass) |

#### Instances

Instances details

ToHie (TScoped (LHsQTyVars GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (LHsQTyVars GhcRn) -> HieM [HieAST Type]

type LHsTyVarBndr flag pass = XRec pass (HsTyVarBndr flag pass) #

Located Haskell Type Variable Binder

data HsForAllTelescope pass #

The type variable binders in an `HsForAllTy`. See also `Note [Variable Specificity and Forall Visibility]` in GHC.Tc.Gen.HsType.

Constructors

HsForAllVis | A visible `forall` (e.g., `forall a -> {...}`). These do not have any notion of specificity, so we use `()` as a placeholder value.

Fields

- hsf_xvis :: XHsForAllVis pass
- hsf_vis_bndrs :: [LHsTyVarBndr () pass]

HsForAllInvis | An invisible `forall` (e.g., `forall a {b} c. {...}`), where each binder has a `Specificity`.

Fields

- hsf_xinvis :: XHsForAllInvis pass
- hsf_invis_bndrs :: [LHsTyVarBndr Specificity pass]

XHsForAllTelescope !(XXHsForAllTelescope pass) |

#### Instances

Instances details

ExactPrint (HsForAllTelescope GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsForAllTelescope GhcPs -> Entry # setAnnotationAnchor :: HsForAllTelescope GhcPs -> Anchor -> EpAnnComments -> HsForAllTelescope GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsForAllTelescope GhcPs -> EP w m (HsForAllTelescope GhcPs) #

type LHsKind pass #

Arguments

= XRec pass (HsKind pass) | `AnnKeywordId` : `AnnDcolon`

Located Haskell Kind

type HsKind pass = HsType pass #

Haskell Kind

type LHsType pass #

Arguments

= XRec pass (HsType pass) | May have `AnnKeywordId` : `AnnComma` when in a list

Located Haskell Type

type HsContext pass = [LHsType pass] #

Haskell Context

type LHsContext pass #

Arguments

= XRec pass (HsContext pass) | `AnnKeywordId` : `AnnUnit` For details on above see Note [exact print annotations] in GHC.Parser.Annotation

Located Haskell Context

type LBangType pass = XRec pass (BangType pass) #

Located Bang Type

hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr (HsBndrVis pass) pass] #

hsPatSigType :: HsPatSigType pass -> LHsType pass #

mapHsOuterImplicit :: (XHsOuterImplicit pass -> XHsOuterImplicit pass) -> HsOuterTyVarBndrs flag pass -> HsOuterTyVarBndrs flag pass #

hsIPNameFS :: HsIPName -> FastString #

isHsBndrInvisible :: HsBndrVis pass -> Bool #

isHsKindedTyVar :: HsTyVarBndr flag pass -> Bool #

Does this `HsTyVarBndr` come with an explicit kind annotation?

hsMult :: HsScaled pass a -> HsArrow pass #

hsScaledThing :: HsScaled pass a -> a #

noTypeArgs :: [Void] #

An empty list that can be used to indicate that there are no type arguments allowed in cases where HsConDetails is applied to Void.

conDetailsArity :: (rec -> Arity) -> HsConDetails tyarg arg rec -> Arity #

data HsFieldBind lhs rhs #

Haskell Field Binding

- `AnnKeywordId` : `AnnEqual`,

For details on above see Note [exact print annotations] in GHC.Parser.Annotation

Constructors

HsFieldBind |

Fields

- hfbAnn :: XHsFieldBind lhs
- hfbLHS :: lhs
- hfbRHS :: rhs

  Filled in by renamer when punning

- hfbPun :: Bool

  Note [Punning]

#### Instances

Instances details

Foldable (HsFieldBind lhs) |

Instance details

Defined in Language.Haskell.Syntax.Pat

Methods

fold :: Monoid m => HsFieldBind lhs m -> m #

foldMap :: Monoid m => (a -> m) -> HsFieldBind lhs a -> m #

foldMap' :: Monoid m => (a -> m) -> HsFieldBind lhs a -> m #

foldr :: (a -> b -> b) -> b -> HsFieldBind lhs a -> b #

foldr' :: (a -> b -> b) -> b -> HsFieldBind lhs a -> b #

foldl :: (b -> a -> b) -> b -> HsFieldBind lhs a -> b #

foldl' :: (b -> a -> b) -> b -> HsFieldBind lhs a -> b #

foldr1 :: (a -> a -> a) -> HsFieldBind lhs a -> a #

foldl1 :: (a -> a -> a) -> HsFieldBind lhs a -> a #

toList :: HsFieldBind lhs a -> [a] #

null :: HsFieldBind lhs a -> Bool #

length :: HsFieldBind lhs a -> Int #

elem :: Eq a => a -> HsFieldBind lhs a -> Bool #

maximum :: Ord a => HsFieldBind lhs a -> a #

minimum :: Ord a => HsFieldBind lhs a -> a #

sum :: Num a => HsFieldBind lhs a -> a #

product :: Num a => HsFieldBind lhs a -> a #

Traversable (HsFieldBind lhs) |
Instance details Defined in Language.Haskell.Syntax.Pat Methods traverse :: Applicative f => (a -> f b) -> HsFieldBind lhs a -> f (HsFieldBind lhs b) # sequenceA :: Applicative f => HsFieldBind lhs (f a) -> f (HsFieldBind lhs a) # mapM :: Monad m => (a -> m b) -> HsFieldBind lhs a -> m (HsFieldBind lhs b) # sequence :: Monad m => HsFieldBind lhs (m a) -> m (HsFieldBind lhs a) #
Functor (HsFieldBind lhs) |
Instance details Defined in Language.Haskell.Syntax.Pat Methods fmap :: (a -> b) -> HsFieldBind lhs a -> HsFieldBind lhs b # (<$) :: a -> HsFieldBind lhs b -> HsFieldBind lhs a #
(ToHie (RFContext label), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsFieldBind label arg))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (LocatedA (HsFieldBind label arg)) -> HieM [HieAST Type]
ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) #

ExactPrint (LocatedA body) => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> EP w m (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) #

ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) #

type Anno (HsFieldBind lhs rhs) |
Instance details Defined in GHC.Hs.Pat type Anno (HsFieldBind lhs rhs) = SrcSpanAnnA

type HsRecUpdField p q = HsFieldBind (LAmbiguousFieldOcc p) (LHsExpr q) #

Haskell Record Update Field

type HsRecField p arg = HsFieldBind (LFieldOcc p) arg #

Haskell Record Field

type LHsRecUpdField p q = XRec p (HsRecUpdField p q) #

Located Haskell Record Update Field

type LHsRecField p arg = XRec p (HsRecField p arg) #

Located Haskell Record Field

type LHsFieldBind p id arg = XRec p (HsFieldBind id arg) #

Located Haskell Record Field

newtype RecFieldsDotDot #

Newtype to be able to have a specific XRec instance for the Int in `rec_dotdot`

Constructors

RecFieldsDotDot |

Fields

- unRecFieldsDotDot :: Int

#### Instances

Instances details

Data RecFieldsDotDot |

Instance details

Defined in Language.Haskell.Syntax.Pat

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RecFieldsDotDot -> c RecFieldsDotDot #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RecFieldsDotDot #

toConstr :: RecFieldsDotDot -> Constr #

dataTypeOf :: RecFieldsDotDot -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RecFieldsDotDot) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RecFieldsDotDot) #

gmapT :: (forall b. Data b => b -> b) -> RecFieldsDotDot -> RecFieldsDotDot #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RecFieldsDotDot -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RecFieldsDotDot -> r #

gmapQ :: (forall d. Data d => d -> u) -> RecFieldsDotDot -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RecFieldsDotDot -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RecFieldsDotDot -> m RecFieldsDotDot #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RecFieldsDotDot -> m RecFieldsDotDot #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RecFieldsDotDot -> m RecFieldsDotDot #

Eq RecFieldsDotDot |
Instance details Defined in Language.Haskell.Syntax.Pat Methods (==) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool # (/=) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool #
Ord RecFieldsDotDot |

Instance details

Defined in Language.Haskell.Syntax.Pat

Methods

compare :: RecFieldsDotDot -> RecFieldsDotDot -> Ordering #

(<) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool #

(<=) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool #

(>) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool #

(>=) :: RecFieldsDotDot -> RecFieldsDotDot -> Bool #

max :: RecFieldsDotDot -> RecFieldsDotDot -> RecFieldsDotDot #

min :: RecFieldsDotDot -> RecFieldsDotDot -> RecFieldsDotDot #

type Anno RecFieldsDotDot |
Instance details Defined in GHC.Hs.Pat type Anno RecFieldsDotDot = SrcSpan

data HsRecFields p arg #

Haskell Record Fields

HsRecFields is used only for patterns and expressions (not data type declarations)

Constructors

HsRecFields |

Fields

- rec_flds :: [LHsRecField p arg]
- rec_dotdot :: Maybe (XRec p RecFieldsDotDot)

#### Instances

Instances details

(ToHie arg, HasLoc arg, Data arg, HiePass p) => ToHie (RContext (HsRecFields (GhcPass p) arg)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (HsRecFields (GhcPass p) arg) -> HieM [HieAST Type]
ExactPrint body => ExactPrint (HsRecFields GhcPs body) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsRecFields GhcPs body -> Entry # setAnnotationAnchor :: HsRecFields GhcPs body -> Anchor -> EpAnnComments -> HsRecFields GhcPs body # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsRecFields GhcPs body -> EP w m (HsRecFields GhcPs body) #

type HsConPatDetails p = HsConDetails (HsConPatTyArg (NoGhcTc p)) (LPat p) (HsRecFields p (LPat p)) #

Haskell Constructor Pattern Details

data HsConPatTyArg p #

Type argument in a data constructor pattern, e.g. the `@a` in `f (Just @a x) = ...`.

Constructors

HsConPatTyArg !(LHsToken "@" p) (HsPatSigType p) |

#### Instances

Instances details

ExactPrint (HsConPatTyArg GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsConPatTyArg GhcPs -> Entry # setAnnotationAnchor :: HsConPatTyArg GhcPs -> Anchor -> EpAnnComments -> HsConPatTyArg GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsConPatTyArg GhcPs -> EP w m (HsConPatTyArg GhcPs) #

type family ConLikeP x #

#### Instances

Instances details

type ConLikeP GhcPs |
Instance details Defined in GHC.Hs.Pat type ConLikeP GhcPs = RdrName
type ConLikeP GhcRn |
Instance details Defined in GHC.Hs.Pat type ConLikeP GhcRn = Name
type ConLikeP GhcTc |
Instance details Defined in GHC.Hs.Pat type ConLikeP GhcTc = ConLike

pattern WildPat :: XWildPat p -> Pat p #

Wildcard Pattern The sole reason for a type on a WildPat is to support hsPatType :: Pat Id -> Type

pattern VarPat :: XVarPat p -> LIdP p -> Pat p #

Variable Pattern

pattern LazyPat :: XLazyPat p -> LPat p -> Pat p #

Lazy Pattern ^ - `AnnKeywordId` : `AnnTilde`

pattern AsPat :: XAsPat p -> LIdP p -> !(LHsToken "@" p) -> LPat p -> Pat p #

As pattern ^ - `AnnKeywordId` : `AnnAt`

pattern ParPat #

Arguments

:: XParPat p |
-> !(LHsToken "(" p) |
-> LPat p | Parenthesised pattern

-> !(LHsToken ")" p)

- `AnnKeywordId` : `AnnOpen` `'('`, `AnnClose` `')'`

-> Pat p |

pattern BangPat :: XBangPat p -> LPat p -> Pat p #

Bang pattern ^ - `AnnKeywordId` : `AnnBang`

pattern ListPat :: XListPat p -> [LPat p] -> Pat p #

Syntactic List

- `AnnKeywordId` : `AnnOpen` `'['`, `AnnClose` `']'`

pattern TuplePat :: XTuplePat p -> [LPat p] -> Boxity -> Pat p #

Tuple sub-patterns

- `AnnKeywordId` : `AnnOpen` `'('` or `'(#'`, `AnnClose` `')'` or `'#)'`

pattern SumPat :: XSumPat p -> LPat p -> ConTag -> SumWidth -> Pat p #

Anonymous sum pattern

- `AnnKeywordId` : `AnnOpen` `'(#'`, `AnnClose` `'#)'`

pattern ConPat :: XConPat p -> XRec p (ConLikeP p) -> HsConPatDetails p -> Pat p #

Constructor Pattern

pattern ViewPat #

Arguments

:: XViewPat p |
-> LHsExpr p |
-> LPat p | View Pattern
-> Pat p |

- `AnnKeywordId` : `AnnRarrow`

pattern SplicePat #

Arguments

:: XSplicePat p |
-> HsUntypedSplice p | Splice Pattern (Includes quasi-quotes)
-> Pat p |

- `AnnKeywordId` : `AnnOpen` `'$('` `AnnClose` `')'`

pattern LitPat :: XLitPat p -> HsLit p -> Pat p #

Literal Pattern Used for *non-overloaded* literal patterns: Int#, Char#, Int, Char, String, etc.

pattern NPat :: XNPat p -> XRec p (HsOverLit p) -> Maybe (SyntaxExpr p) -> SyntaxExpr p -> Pat p #

Natural Pattern

- `AnnKeywordId` : `AnnVal` ``+``

pattern NPlusKPat :: XNPlusKPat p -> LIdP p -> XRec p (HsOverLit p) -> HsOverLit p -> SyntaxExpr p -> SyntaxExpr p -> Pat p #

n+k pattern

pattern SigPat #

Arguments

:: XSigPat p |
-> LPat p |
-> HsPatSigType (NoGhcTc p) | Pattern with a type signature
-> Pat p |

- `AnnKeywordId` : `AnnDcolon`

pattern XPat :: !(XXPat p) -> Pat p #

pat_args :: Pat p -> HsConPatDetails p #

pat_con :: Pat p -> XRec p (ConLikeP p) #

pat_con_ext :: Pat p -> XConPat p #

hsConPatArgs :: UnXRec p => HsConPatDetails p -> [LPat p] #

hsRecFields :: UnXRec p => HsRecFields p arg -> [XCFieldOcc p] #

hsRecFieldsArgs :: UnXRec p => HsRecFields p arg -> [arg] #

hsRecFieldSel :: UnXRec p => HsRecField p arg -> XCFieldOcc p #

pprLPat :: forall (p :: Pass). OutputableBndrId p => LPat (GhcPass p) -> SDoc #

data HsPatSynDir id #

Haskell Pattern Synonym Direction

Constructors

Unidirectional |
ImplicitBidirectional |
ExplicitBidirectional (MatchGroup id (LHsExpr id)) |

#### Instances

Instances details

HiePass p => ToHie (HsPatSynDir (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsPatSynDir (GhcPass p) -> HieM [HieAST Type]

data RecordPatSynField pass #

Record Pattern Synonym Field

Constructors

RecordPatSynField |

Fields

- recordPatSynField :: FieldOcc pass

  Field label visible in rest of the file

- recordPatSynPatVar :: LIdP pass

  Filled in by renamer, the name used internally by the pattern

#### Instances

Instances details

HiePass p => ToHie (PatSynFieldContext (RecordPatSynField (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: PatSynFieldContext (RecordPatSynField (GhcPass p)) -> HieM [HieAST Type]
ExactPrint (RecordPatSynField GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RecordPatSynField GhcPs -> Entry # setAnnotationAnchor :: RecordPatSynField GhcPs -> Anchor -> EpAnnComments -> RecordPatSynField GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RecordPatSynField GhcPs -> EP w m (RecordPatSynField GhcPs) #

type HsPatSynDetails pass = HsConDetails Void (LIdP pass) [RecordPatSynField pass] #

Haskell Pattern Synonym Details

type LFixitySig pass = XRec pass (FixitySig pass) #

Located Fixity Signature

data Sig pass #

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 `_ -> _a -> Bool`, the renamer will leave the unnamed wildcard `_` untouched, and the named wildcard `_a` is then replaced with fresh meta vars in the type. Their names are stored in the type signature that brought them into scope, in this third field to be more specific.

- `AnnKeywordId` : `AnnDcolon`, `AnnComma`

PatSynSig (XPatSynSig pass) [LIdP pass] (LHsSigType pass)

A pattern synonym type signature

    pattern Single :: () => (Show a) => a -> [a]

- `AnnKeywordId` : `AnnPattern`, `AnnDcolon`,`AnnForall` `AnnDot`,`AnnDarrow`

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

- `AnnKeywordId` : `AnnDefault`, `AnnDcolon`

FixSig (XFixSig pass) (FixitySig pass)

An ordinary fixity declaration

        infixl 8 ***

- `AnnKeywordId` : `AnnInfix`, `AnnVal`

InlineSig (XInlineSig pass) (LIdP pass) InlinePragma

An inline pragma

    {#- INLINE f #-}

- `AnnKeywordId` : `AnnOpen` `'{-# INLINE'` and `'['`, `AnnClose`,`AnnOpen`, `AnnVal`,`AnnTilde`, `AnnClose`

SpecSig (XSpecSig pass) (LIdP pass) [LHsSigType pass] InlinePragma

A specialisation pragma

    {-# SPECIALISE f :: Int -> Int #-}

- `AnnKeywordId` : `AnnOpen`, `AnnOpen` `'{-# SPECIALISE'` and `'['`, `AnnTilde`, `AnnVal`, `AnnClose` `']'` and `'#-}'`, `AnnDcolon`

SpecInstSig (XSpecInstSig pass) (LHsSigType pass)

A specialisation pragma for instance declarations only

    {-# SPECIALISE instance Eq [Int] #-}

(Class tys); should be a specialisation of the current instance declaration

- `AnnKeywordId` : `AnnOpen`, `AnnInstance`,`AnnClose`

MinimalSig (XMinimalSig pass) (LBooleanFormula (LIdP pass))

A minimal complete definition pragma

    {-# MINIMAL a | (b, c | (d | e)) #-}

- `AnnKeywordId` : `AnnOpen`, `AnnVbar`,`AnnComma`, `AnnClose`

SCCFunSig (XSCCFunSig pass) (LIdP pass) (Maybe (XRec pass StringLiteral))

A "set cost centre" pragma for declarations

    {-# SCC funName #-}

or

    {-# SCC funName "cost_centre_name" #-}

CompleteMatchSig (XCompleteMatchSig pass) (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) |

#### Instances

Instances details

HiePass p => ToHie (SigContext (LocatedA (Sig (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: SigContext (LocatedA (Sig (GhcPass p))) -> HieM [HieAST Type]
ExactPrint (Sig GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: Sig GhcPs -> Entry # setAnnotationAnchor :: Sig GhcPs -> Anchor -> EpAnnComments -> Sig GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Sig GhcPs -> EP w m (Sig GhcPs) #
type Anno (Sig (GhcPass p)) |
Instance details Defined in GHC.Hs.Binds type Anno (Sig (GhcPass p)) = SrcSpanAnnA

type LSig pass = XRec pass (Sig pass) #

Located Signature

data IPBind id #

Implicit parameter bindings.

- `AnnKeywordId` : `AnnEqual`

Constructors

IPBind (XCIPBind id) (XRec id HsIPName) (LHsExpr id) |
XIPBind !(XXIPBind id) |

#### Instances

Instances details

HiePass p => ToHie (RScoped (LocatedA (IPBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (IPBind (GhcPass p))) -> HieM [HieAST Type]
ExactPrint (IPBind GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: IPBind GhcPs -> Entry # setAnnotationAnchor :: IPBind GhcPs -> Anchor -> EpAnnComments -> IPBind GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => IPBind GhcPs -> EP w m (IPBind GhcPs) #
type Anno (IPBind (GhcPass p)) |
Instance details Defined in GHC.Hs.Binds type Anno (IPBind (GhcPass p)) = SrcSpanAnnA

type LIPBind id = XRec id (IPBind id) #

Located Implicit Parameter Binding

May have `AnnKeywordId` : `AnnSemi` when in a list

data HsLocalBindsLR idL idR #

Haskell Local Bindings with separate Left and Right identifier types

Bindings in a 'let' expression or a 'where' clause

Constructors

HsValBinds (XHsValBinds idL idR) (HsValBindsLR idL idR) | Haskell Value Bindings
HsIPBinds (XHsIPBinds idL idR) (HsIPBinds idR) | Haskell Implicit Parameter Bindings
EmptyLocalBinds (XEmptyLocalBinds idL idR) | Empty Local Bindings
XHsLocalBindsLR !(XXHsLocalBindsLR idL idR) |

#### Instances

Instances details

HiePass p => ToHie (RScoped (HsLocalBinds (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (HsLocalBinds (GhcPass p)) -> HieM [HieAST Type]
ExactPrint (HsLocalBinds GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsLocalBinds GhcPs -> Entry # setAnnotationAnchor :: HsLocalBinds GhcPs -> Anchor -> EpAnnComments -> HsLocalBinds GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsLocalBinds GhcPs -> EP w m (HsLocalBinds GhcPs) #

data HsBindLR idL idR #

Haskell Binding with separate Left and Right id's

Constructors

FunBind

Function-like Binding

FunBind is used for both functions `f x = e` and variables `f = x -> e` and strict variables `!x = x + 1`

Reason 1: Special case for type inference: see `tcMonoBinds`.

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 `f :: a->a = ...` parses as a pattern binding, just like `(f :: a -> a) = ...`

Strict bindings have their strictness recorded in the `SrcStrictness` of their `MatchContext`. See Note [FunBind vs PatBind] for details about the relationship between FunBind and PatBind.

`AnnKeywordId`s

- `AnnFunId`, attached to each element of fun_matches
- `AnnEqual`,`AnnWhere`, `AnnOpen`,`AnnClose`,

Fields

- fun_ext :: XFunBind idL idR
- fun_id :: LIdP idL
- fun_matches :: MatchGroup idR (LHsExpr idR)

  The payload

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

- pat_ext :: XPatBind idL idR
- pat_lhs :: LPat idL
- pat_rhs :: GRHSs idR (LHsExpr idR)

VarBind | Variable Binding Dictionary binding and suchlike. All VarBinds are introduced by the type checker

Fields

- var_ext :: XVarBind idL idR
- var_id :: IdP idL
- var_rhs :: LHsExpr idR

  Located only for consistency

PatSynBind | Patterns Synonym Binding

Fields

- (XPatSynBind idL idR)
- (PatSynBind idL idR)
  - `AnnKeywordId` : `AnnPattern`, `AnnLarrow`,`AnnEqual`, `AnnWhere` `AnnOpen` `'{'`,`AnnClose` `'}'`

XHsBindsLR !(XXHsBindsLR idL idR) |

#### Instances

Instances details

HiePass p => HasType (LocatedA (HsBind (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsBind (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: BindContext (LocatedA (HsBind (GhcPass p))) -> HieM [HieAST Type]
ExactPrint (HsBind GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsBind GhcPs -> Entry # setAnnotationAnchor :: HsBind GhcPs -> Anchor -> EpAnnComments -> HsBind GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsBind GhcPs -> EP w m (HsBind GhcPs) #
type Anno (HsBindLR (GhcPass idL) (GhcPass idR)) |
Instance details Defined in GHC.Hs.Binds type Anno (HsBindLR (GhcPass idL) (GhcPass idR)) = SrcSpanAnnA

type LHsBindLR idL idR = XRec idL (HsBindLR idL idR) #

Located Haskell Binding with separate Left and Right identifier types

type LHsBindsLR idL idR = Bag (LHsBindLR idL idR) #

Located Haskell Bindings with separate Left and Right identifier types

type HsBind id = HsBindLR id id #

Haskell Binding

type LHsBinds id = LHsBindsLR id id #

Located Haskell Bindings

type LHsBind id = LHsBindLR id id #

Located Haskell Binding

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

Instances details

HiePass p => ToHie (RScoped (HsValBindsLR (GhcPass p) (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (HsValBindsLR (GhcPass p) (GhcPass p)) -> HieM [HieAST Type]
ExactPrint (HsValBindsLR GhcPs GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsValBindsLR GhcPs GhcPs -> Entry # setAnnotationAnchor :: HsValBindsLR GhcPs GhcPs -> Anchor -> EpAnnComments -> HsValBindsLR GhcPs GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsValBindsLR GhcPs GhcPs -> EP w m (HsValBindsLR GhcPs GhcPs) #

type HsValBinds id = HsValBindsLR id id #

Haskell Value Bindings

type LHsLocalBindsLR idL idR = XRec idL (HsLocalBindsLR idL idR) #

type LHsLocalBinds id = XRec id (HsLocalBinds id) #

Located Haskell local bindings

type HsLocalBinds id = HsLocalBindsLR id id #

Haskell Local Bindings

isFixityLSig :: UnXRec p => LSig p -> Bool #

isTypeLSig :: UnXRec p => LSig p -> Bool #

isSpecLSig :: UnXRec p => LSig p -> Bool #

isSpecInstLSig :: UnXRec p => LSig p -> Bool #

isPragLSig :: UnXRec p => LSig p -> Bool #

isInlineLSig :: UnXRec p => LSig p -> Bool #

isMinimalLSig :: UnXRec p => LSig p -> Bool #

isSCCFunSig :: UnXRec p => LSig p -> Bool #

isCompleteMatchSig :: UnXRec p => LSig p -> Bool #

data RoleAnnotDecl pass #

Role Annotation Declaration

Constructors

RoleAnnotDecl (XCRoleAnnotDecl pass) (LIdP pass) [XRec pass (Maybe Role)]

- `AnnKeywordId` : `AnnType`, `AnnRole`

XRoleAnnotDecl !(XXRoleAnnotDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (RoleAnnotDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RoleAnnotDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (RoleAnnotDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RoleAnnotDecl GhcPs -> Entry # setAnnotationAnchor :: RoleAnnotDecl GhcPs -> Anchor -> EpAnnComments -> RoleAnnotDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RoleAnnotDecl GhcPs -> EP w m (RoleAnnotDecl GhcPs) #
type Anno (RoleAnnotDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RoleAnnotDecl (GhcPass p)) = SrcSpanAnnA

type LRoleAnnotDecl pass = XRec pass (RoleAnnotDecl pass) #

Located Role Annotation Declaration

data AnnProvenance pass #

Annotation Provenance

Constructors

ValueAnnProvenance (LIdP pass) |
TypeAnnProvenance (LIdP pass) |
ModuleAnnProvenance |

#### Instances

Instances details

ToHie (AnnProvenance GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: AnnProvenance GhcRn -> HieM [HieAST Type]

type LAnnDecl pass = XRec pass (AnnDecl pass) #

Located Annotation Declaration

data WarnDecl pass #

Warning pragma Declaration

Constructors

Warning (XWarning pass) [LIdP pass] (WarningTxt pass) |
XWarnDecl !(XXWarnDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (WarnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (WarnDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: WarnDecl GhcPs -> Entry # setAnnotationAnchor :: WarnDecl GhcPs -> Anchor -> EpAnnComments -> WarnDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => WarnDecl GhcPs -> EP w m (WarnDecl GhcPs) #
type Anno (WarnDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (WarnDecl (GhcPass p)) = SrcSpanAnnA

type LWarnDecl pass = XRec pass (WarnDecl pass) #

Located Warning pragma Declaration

type LWarnDecls pass = XRec pass (WarnDecls pass) #

Located Warning Declarations

data DocDecl pass #

Documentation comment Declaration

Constructors

DocCommentNext (LHsDoc pass) |
DocCommentPrev (LHsDoc pass) |
DocCommentNamed String (LHsDoc pass) |
DocGroup Int (LHsDoc pass) |

#### Instances

Instances details

(Data pass, Data (IdP pass)) => Data (DocDecl pass) |

Instance details

Defined in Language.Haskell.Syntax.Decls

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DocDecl pass -> c (DocDecl pass) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (DocDecl pass) #

toConstr :: DocDecl pass -> Constr #

dataTypeOf :: DocDecl pass -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (DocDecl pass)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (DocDecl pass)) #

gmapT :: (forall b. Data b => b -> b) -> DocDecl pass -> DocDecl pass #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl pass -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DocDecl pass -> r #

gmapQ :: (forall d. Data d => d -> u) -> DocDecl pass -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DocDecl pass -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DocDecl pass -> m (DocDecl pass) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl pass -> m (DocDecl pass) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DocDecl pass -> m (DocDecl pass) #

ToHie (LocatedA (DocDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DocDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (DocDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DocDecl GhcPs -> Entry # setAnnotationAnchor :: DocDecl GhcPs -> Anchor -> EpAnnComments -> DocDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DocDecl GhcPs -> EP w m (DocDecl GhcPs) #
type Anno (DocDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DocDecl (GhcPass p)) = SrcSpanAnnA

type LDocDecl pass = XRec pass (DocDecl pass) #

Located Documentation comment Declaration

type LRuleBndr pass = XRec pass (RuleBndr pass) #

Located Rule Binder

data RuleDecl pass #

Rule Declaration

Constructors

HsRule |

Fields

- rd_ext :: XHsRule pass

  After renamer, free-vars from the LHS and RHS

- rd_name :: XRec pass RuleName

  Note [Pragma source text] in GHC.Types.SourceText

- rd_act :: Activation
- rd_tyvs :: Maybe [LHsTyVarBndr () (NoGhcTc pass)]

  Forall'd type vars

- rd_tmvs :: [LRuleBndr pass]

  Forall'd term vars, before typechecking; after typechecking this includes all forall'd vars

- rd_lhs :: XRec pass (HsExpr pass)
- rd_rhs :: XRec pass (HsExpr pass)
  - `AnnKeywordId` : `AnnOpen`,`AnnTilde`, `AnnVal`, `AnnClose`, `AnnForall`,`AnnDot`, `AnnEqual`,

XRuleDecl !(XXRuleDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (RuleDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (RuleDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RuleDecl GhcPs -> Entry # setAnnotationAnchor :: RuleDecl GhcPs -> Anchor -> EpAnnComments -> RuleDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RuleDecl GhcPs -> EP w m (RuleDecl GhcPs) #
type Anno (RuleDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RuleDecl (GhcPass p)) = SrcSpanAnnA

type LRuleDecl pass = XRec pass (RuleDecl pass) #

Located Rule Declaration

data RuleDecls pass #

Rule Declarations

Constructors

HsRules |

Fields

- rds_ext :: XCRuleDecls pass
- rds_rules :: [LRuleDecl pass]

XRuleDecls !(XXRuleDecls pass) |

#### Instances

Instances details

ToHie (LocatedA (RuleDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecls GhcRn) -> HieM [HieAST Type]
ExactPrint (RuleDecls GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: RuleDecls GhcPs -> Entry # setAnnotationAnchor :: RuleDecls GhcPs -> Anchor -> EpAnnComments -> RuleDecls GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => RuleDecls GhcPs -> EP w m (RuleDecls GhcPs) #
type Anno (RuleDecls (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (RuleDecls (GhcPass p)) = SrcSpanAnnA

type LRuleDecls pass = XRec pass (RuleDecls pass) #

Located Rule Declarations

data ForeignDecl pass #

Foreign Declaration

Constructors

ForeignImport |

Fields

- fd_i_ext :: XForeignImport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fi :: ForeignImport pass

ForeignExport

- `AnnKeywordId` : `AnnForeign`, `AnnImport`,`AnnExport`, `AnnDcolon`

Fields

- fd_e_ext :: XForeignExport pass
- fd_name :: LIdP pass
- fd_sig_ty :: LHsSigType pass
- fd_fe :: ForeignExport pass

XForeignDecl !(XXForeignDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (ForeignDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ForeignDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (ForeignDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ForeignDecl GhcPs -> Entry # setAnnotationAnchor :: ForeignDecl GhcPs -> Anchor -> EpAnnComments -> ForeignDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ForeignDecl GhcPs -> EP w m (ForeignDecl GhcPs) #
type Anno (ForeignDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (ForeignDecl (GhcPass p)) = SrcSpanAnnA

type LForeignDecl pass = XRec pass (ForeignDecl pass) #

Located Foreign Declaration

data DefaultDecl pass #

Default Declaration

Constructors

DefaultDecl (XCDefaultDecl pass) [LHsType pass]

- `AnnKeywordId`s : `AnnDefault`, `AnnOpen`,`AnnClose`

XDefaultDecl !(XXDefaultDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (DefaultDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DefaultDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (DefaultDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DefaultDecl GhcPs -> Entry # setAnnotationAnchor :: DefaultDecl GhcPs -> Anchor -> EpAnnComments -> DefaultDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DefaultDecl GhcPs -> EP w m (DefaultDecl GhcPs) #
type Anno (DefaultDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DefaultDecl (GhcPass p)) = SrcSpanAnnA

type LDefaultDecl pass = XRec pass (DefaultDecl pass) #

Located Default Declaration

type LDerivStrategy pass = XRec pass (DerivStrategy pass) #

A `Located` `DerivStrategy`.

data DerivDecl pass #

Stand-alone 'deriving instance' declaration

Constructors

DerivDecl |

Fields

- deriv_ext :: XCDerivDecl pass
- deriv_type :: LHsSigWcType pass

  The instance type to derive.

  It uses an `LHsSigWcType` because the context is allowed to be a single wildcard:

      deriving instance _ => Eq (Foo a)

  Which signifies that the context should be inferred.

- deriv_strategy :: Maybe (LDerivStrategy pass)
- deriv_overlap_mode :: Maybe (XRec pass OverlapMode)
  - `AnnKeywordId` : `AnnDeriving`, `AnnInstance`, `AnnStock`, `AnnAnyClass`, `AnnNewtype`, `AnnOpen`,`AnnClose`

XDerivDecl !(XXDerivDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (DerivDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DerivDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (DerivDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DerivDecl GhcPs -> Entry # setAnnotationAnchor :: DerivDecl GhcPs -> Anchor -> EpAnnComments -> DerivDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DerivDecl GhcPs -> EP w m (DerivDecl GhcPs) #
type Anno (DerivDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DerivDecl (GhcPass p)) = SrcSpanAnnA

type LDerivDecl pass = XRec pass (DerivDecl pass) #

Located stand-alone 'deriving instance' declaration

data InstDecl pass #

Instance Declaration

Constructors

ClsInstD |

Fields

- cid_d_ext :: XClsInstD pass
- cid_inst :: ClsInstDecl pass

DataFamInstD |

Fields

- dfid_ext :: XDataFamInstD pass
- dfid_inst :: DataFamInstDecl pass

TyFamInstD |

Fields

- tfid_ext :: XTyFamInstD pass
- tfid_inst :: TyFamInstDecl pass

XInstDecl !(XXInstDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (InstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (InstDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (InstDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: InstDecl GhcPs -> Entry # setAnnotationAnchor :: InstDecl GhcPs -> Anchor -> EpAnnComments -> InstDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => InstDecl GhcPs -> EP w m (InstDecl GhcPs) #
type Anno (InstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (InstDecl (GhcPass p)) = SrcSpanAnnA

type LInstDecl pass = XRec pass (InstDecl pass) #

Located Instance Declaration

data ClsInstDecl pass #

Class Instance Declaration - `AnnKeywordId` : `AnnInstance`, `AnnWhere`, `AnnOpen`,`AnnClose`, For details on above see Note [exact print annotations] in GHC.Parser.Annotation

Constructors

ClsInstDecl |

Fields

- 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)
  - `AnnKeywordId` : `AnnOpen`, `AnnClose`,

XClsInstDecl !(XXClsInstDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (ClsInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ClsInstDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (ClsInstDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ClsInstDecl GhcPs -> Entry # setAnnotationAnchor :: ClsInstDecl GhcPs -> Anchor -> EpAnnComments -> ClsInstDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ClsInstDecl GhcPs -> EP w m (ClsInstDecl GhcPs) #
type Anno (ClsInstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (ClsInstDecl (GhcPass p)) = SrcSpanAnnA

type LClsInstDecl pass = XRec pass (ClsInstDecl pass) #

Located Class Instance Declaration

data FamEqn pass rhs #

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

- feqn_ext :: XCFamEqn pass rhs
- feqn_tycon :: LIdP pass
- feqn_bndrs :: HsOuterFamEqnTyVarBndrs pass

  Optional quantified type vars

- feqn_pats :: HsTyPats pass
- feqn_fixity :: LexicalFixity

  Fixity used in the declaration

- feqn_rhs :: rhs
  - `AnnKeywordId` : `AnnEqual`

XFamEqn !(XXFamEqn pass rhs) |

#### Instances

Instances details

ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (FamEqn GhcRn (HsDataDefn GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (HsDataDefn GhcRn)) -> HieM [HieAST Type]
(HasLoc a, HiePass p) => HasLoc (FamEqn (GhcPass p) a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: FamEqn (GhcPass p) a -> SrcSpan
(ToHie rhs, HasLoc rhs) => ToHie (FamEqn GhcRn rhs) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: FamEqn GhcRn rhs -> HieM [HieAST Type]
ExactPrint body => ExactPrint (FamEqn GhcPs body) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FamEqn GhcPs body -> Entry # setAnnotationAnchor :: FamEqn GhcPs body -> Anchor -> EpAnnComments -> FamEqn GhcPs body # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FamEqn GhcPs body -> EP w m (FamEqn GhcPs body) #
type Anno (FamEqn (GhcPass p) _1) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn (GhcPass p) _1) = SrcSpanAnnA
type Anno (FamEqn (GhcPass p) _1) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn (GhcPass p) _1) = SrcSpanAnnA
type Anno (FamEqn p (LocatedA (HsType p))) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn p (LocatedA (HsType p))) = SrcSpanAnnA

newtype DataFamInstDecl pass #

Data Family Instance Declaration

Constructors

DataFamInstDecl

- `AnnKeywordId` : `AnnData`, `AnnNewType`,`AnnInstance`, `AnnDcolon` `AnnWhere`,`AnnOpen`, `AnnClose`

Fields

- dfid_eqn :: FamEqn pass (HsDataDefn pass)

#### Instances

Instances details

ToHie (LocatedA (DataFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DataFamInstDecl GhcRn) -> HieM [HieAST Type]
type Anno (DataFamInstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (DataFamInstDecl (GhcPass p)) = SrcSpanAnnA

type LDataFamInstDecl pass = XRec pass (DataFamInstDecl pass) #

Located Data Family Instance Declaration

data TyFamInstDecl pass #

Type Family Instance Declaration

Constructors

TyFamInstDecl

- `AnnKeywordId` : `AnnType`, `AnnInstance`,

Fields

- tfid_xtn :: XCTyFamInstDecl pass
- tfid_eqn :: TyFamInstEqn pass

XTyFamInstDecl !(XXTyFamInstDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (TyFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyFamInstDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (TyFamInstDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: TyFamInstDecl GhcPs -> Entry # setAnnotationAnchor :: TyFamInstDecl GhcPs -> Anchor -> EpAnnComments -> TyFamInstDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => TyFamInstDecl GhcPs -> EP w m (TyFamInstDecl GhcPs) #
type Anno (TyFamInstDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (TyFamInstDecl (GhcPass p)) = SrcSpanAnnA

type LTyFamInstDecl pass = XRec pass (TyFamInstDecl pass) #

Located Type Family Instance Declaration

type LTyFamDefltDecl pass = XRec pass (TyFamDefltDecl pass) #

Located type family default declarations.

type TyFamDefltDecl = TyFamInstDecl #

Type family default declarations. A convenient synonym for `TyFamInstDecl`. See `Note [Type family instance declarations in HsSyn]`.

type TyFamInstEqn pass = FamEqn pass (LHsType pass) #

Type Family Instance Equation

type HsTyPats pass = [LHsTypeArg pass] #

Haskell Type Patterns

type LTyFamInstEqn pass #

Arguments

= XRec pass (TyFamInstEqn pass) | May have `AnnKeywordId` : `AnnSemi` when in a list

Located Type Family Instance Equation

data HsConDeclGADTDetails pass #

The arguments in a GADT constructor. Unlike Haskell98-style constructors, GADT constructors cannot be declared with infix syntax. As a result, we do not use `HsConDetails` here, as `InfixCon` would be an unrepresentable state. (There is a notion of infix GADT constructors for the purposes of derived Show instances—see Note [Infix GADT constructors] in GHC.Tc.TyCl—but that is an orthogonal concern.)

Constructors

PrefixConGADT [HsScaled pass (LBangType pass)] |
RecConGADT (XRec pass [LConDeclField pass]) (LHsUniToken "->" "\8594" pass) |

#### Instances

Instances details

ToHie (HsConDeclGADTDetails GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsConDeclGADTDetails GhcRn -> HieM [HieAST Type]

type HsConDeclH98Details pass = HsConDetails Void (HsScaled pass (LBangType pass)) (XRec pass [LConDeclField pass]) #

The arguments in a Haskell98-style data constructor.

data ConDecl pass #

    data T b = forall a. Eq a => MkT a b
      MkT :: forall b a. Eq a => MkT a b

    data T b where
         MkT1 :: Int -> T Int

    data T = Int MkT Int
           | MkT2

    data T a where
         Int MkT Int :: T Int

- `AnnKeywordId`s : `AnnOpen`, `AnnDotdot`,`AnnCLose`, `AnnEqual`,`AnnVbar`, `AnnDarrow`,`AnnDarrow`, `AnnForall`,`AnnDot`

data Constructor Declaration

Constructors

ConDeclGADT |

Fields

- con_g_ext :: XConDeclGADT pass
- con_names :: NonEmpty (LIdP pass)
- con_dcolon :: !(LHsUniToken "::" "\8759" pass)
- con_bndrs :: XRec pass (HsOuterSigTyVarBndrs pass)

  The outermost type variable binders, be they explicit or implicit. The `XRec` is used to anchor exact print annotations, AnnForall and AnnDot.

- con_mb_cxt :: Maybe (LHsContext pass)

  User-written context (if any)

- con_g_args :: HsConDeclGADTDetails pass

  Arguments; never infix

- con_res_ty :: LHsType pass

  Result type

- con_doc :: Maybe (LHsDoc pass)

  A possible Haddock comment.

ConDeclH98 |

Fields

- con_ext :: XConDeclH98 pass
- con_name :: LIdP pass
- con_forall :: Bool

  True = explicit user-written forall e.g. data T a = forall b. MkT b (b->a) con_ex_tvs = {b} False => con_ex_tvs is empty

- con_ex_tvs :: [LHsTyVarBndr Specificity pass]

  Existentials only

- con_mb_cxt :: Maybe (LHsContext pass)

  User-written context (if any)

- con_args :: HsConDeclH98Details pass

  Arguments; can be infix

- con_doc :: Maybe (LHsDoc pass)

  A possible Haddock comment.

XConDecl !(XXConDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (ConDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDecl GhcRn) -> HieM [HieAST Type]
HasHaddock (LocatedA (ConDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (ConDecl GhcPs) -> HdkA (LocatedA (ConDecl GhcPs))
ExactPrint (ConDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: ConDecl GhcPs -> Entry # setAnnotationAnchor :: ConDecl GhcPs -> Anchor -> EpAnnComments -> ConDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => ConDecl GhcPs -> EP w m (ConDecl GhcPs) #
type Anno (ConDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (ConDecl (GhcPass p)) = SrcSpanAnnA

type LConDecl pass #

Arguments

= XRec pass (ConDecl pass) | May have `AnnKeywordId` : `AnnSemi` when in a GADT constructor list

Located data Constructor Declaration

data DataDefnCons a #

Whether a data-type declaration is `data` or `newtype`, and its constructors.

Constructors

NewTypeCon a |
DataTypeCons Bool [a] |

#### Instances

Instances details

Foldable DataDefnCons |

Instance details

Defined in Language.Haskell.Syntax.Decls

Methods

fold :: Monoid m => DataDefnCons m -> m #

foldMap :: Monoid m => (a -> m) -> DataDefnCons a -> m #

foldMap' :: Monoid m => (a -> m) -> DataDefnCons a -> m #

foldr :: (a -> b -> b) -> b -> DataDefnCons a -> b #

foldr' :: (a -> b -> b) -> b -> DataDefnCons a -> b #

foldl :: (b -> a -> b) -> b -> DataDefnCons a -> b #

foldl' :: (b -> a -> b) -> b -> DataDefnCons a -> b #

foldr1 :: (a -> a -> a) -> DataDefnCons a -> a #

foldl1 :: (a -> a -> a) -> DataDefnCons a -> a #

toList :: DataDefnCons a -> [a] #

null :: DataDefnCons a -> Bool #

length :: DataDefnCons a -> Int #

elem :: Eq a => a -> DataDefnCons a -> Bool #

maximum :: Ord a => DataDefnCons a -> a #

minimum :: Ord a => DataDefnCons a -> a #

sum :: Num a => DataDefnCons a -> a #

product :: Num a => DataDefnCons a -> a #

Traversable DataDefnCons |
Instance details Defined in Language.Haskell.Syntax.Decls Methods traverse :: Applicative f => (a -> f b) -> DataDefnCons a -> f (DataDefnCons b) # sequenceA :: Applicative f => DataDefnCons (f a) -> f (DataDefnCons a) # mapM :: Monad m => (a -> m b) -> DataDefnCons a -> m (DataDefnCons b) # sequence :: Monad m => DataDefnCons (m a) -> m (DataDefnCons a) #
Functor DataDefnCons |
Instance details Defined in Language.Haskell.Syntax.Decls Methods fmap :: (a -> b) -> DataDefnCons a -> DataDefnCons b # (<$) :: a -> DataDefnCons b -> DataDefnCons a #
Data a => Data (DataDefnCons a) |

Instance details

Defined in Language.Haskell.Syntax.Decls

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataDefnCons a -> c (DataDefnCons a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (DataDefnCons a) #

toConstr :: DataDefnCons a -> Constr #

dataTypeOf :: DataDefnCons a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (DataDefnCons a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (DataDefnCons a)) #

gmapT :: (forall b. Data b => b -> b) -> DataDefnCons a -> DataDefnCons a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataDefnCons a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataDefnCons a -> r #

gmapQ :: (forall d. Data d => d -> u) -> DataDefnCons a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DataDefnCons a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataDefnCons a -> m (DataDefnCons a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDefnCons a -> m (DataDefnCons a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDefnCons a -> m (DataDefnCons a) #

HasLoc a => HasLoc (DataDefnCons a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: DataDefnCons a -> SrcSpan
ToHie a => ToHie (DataDefnCons a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: DataDefnCons a -> HieM [HieAST Type]
Eq a => Eq (DataDefnCons a) |
Instance details Defined in Language.Haskell.Syntax.Decls Methods (==) :: DataDefnCons a -> DataDefnCons a -> Bool # (/=) :: DataDefnCons a -> DataDefnCons a -> Bool #

type LStandaloneKindSig pass = XRec pass (StandaloneKindSig pass) #

Located Standalone Kind Signature

data DerivClauseTys pass #

The types mentioned in a single `deriving` clause. This can come in two forms, `DctSingle` or `DctMulti`, depending on whether the types are surrounded by enclosing parentheses or not. These parentheses are semantically different than `HsParTy`. For example, `deriving ()` means "derive zero classes" rather than "derive an instance of the 0-tuple".

`DerivClauseTys` use `LHsSigType` because `deriving` clauses can mention type variables that aren't bound by the datatype, e.g.

    data T b = ... deriving (C [a])

should produce a derived instance for `C [a] (T b)`.

Constructors

DctSingle (XDctSingle pass) (LHsSigType pass) | A `deriving` clause with a single type. Moreover, that type can only be a type constructor without any arguments. Example: `deriving Eq`
DctMulti (XDctMulti pass) [LHsSigType pass] | A `deriving` clause with a comma-separated list of types, surrounded by enclosing parentheses. Example: `deriving (Eq, C a)`
XDerivClauseTys !(XXDerivClauseTys pass) |

#### Instances

Instances details

ToHie (LocatedC (DerivClauseTys GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC (DerivClauseTys GhcRn) -> HieM [HieAST Type]
HasHaddock (LocatedC (DerivClauseTys GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedC (DerivClauseTys GhcPs) -> HdkA (LocatedC (DerivClauseTys GhcPs))
ExactPrint (DerivClauseTys GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DerivClauseTys GhcPs -> Entry # setAnnotationAnchor :: DerivClauseTys GhcPs -> Anchor -> EpAnnComments -> DerivClauseTys GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DerivClauseTys GhcPs -> EP w m (DerivClauseTys GhcPs) #
type Anno (DerivClauseTys (GhcPass _1)) |
Instance details Defined in GHC.Hs.Decls type Anno (DerivClauseTys (GhcPass _1)) = SrcSpanAnnC

type LDerivClauseTys pass = XRec pass (DerivClauseTys pass) #

data HsDerivingClause pass #

A single `deriving` clause of a data declaration.

- `AnnKeywordId` : `AnnDeriving`, `AnnStock`, `AnnAnyClass`, `AnnNewtype`, `AnnOpen`,`AnnClose`

Constructors

HsDerivingClause |

Fields

- deriv_clause_ext :: XCHsDerivingClause pass
- deriv_clause_strategy :: Maybe (LDerivStrategy pass)

  The user-specified strategy (if any) to use when deriving `deriv_clause_tys`.

- deriv_clause_tys :: LDerivClauseTys pass

  The types to derive.

XHsDerivingClause !(XXHsDerivingClause pass) |

#### Instances

Instances details

ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)] -> HieM [HieAST Type]
HasHaddock (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)] -> HdkA (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)])
ExactPrint (HsDerivingClause GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsDerivingClause GhcPs -> Entry # setAnnotationAnchor :: HsDerivingClause GhcPs -> Anchor -> EpAnnComments -> HsDerivingClause GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsDerivingClause GhcPs -> EP w m (HsDerivingClause GhcPs) #
ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsDerivingClause GhcRn) -> HieM [HieAST Type]
HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedAn NoEpAnns (HsDerivingClause GhcPs) -> HdkA (LocatedAn NoEpAnns (HsDerivingClause GhcPs))
type Anno (HsDerivingClause (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (HsDerivingClause (GhcPass p)) = SrcAnn NoEpAnns

type LHsDerivingClause pass = XRec pass (HsDerivingClause pass) #

type HsDeriving pass #

Arguments

= [LHsDerivingClause pass] | The optional `deriving` clauses of a data declaration. Clauses is plural because one can specify multiple deriving clauses using the `-XDerivingStrategies` language extension. The list of `LHsDerivingClause`s corresponds to exactly what the user requested to derive, in order. If no deriving clauses were specified, the list is empty.

Haskell Deriving clause

data HsDataDefn pass #

Haskell Data type Definition

Constructors

HsDataDefn | Declares a data type or newtype, giving its constructors `data/newtype T a = constrs data/newtype instance T [a] = constrs`

Fields

- dd_ext :: XCHsDataDefn pass
- dd_ctxt :: Maybe (LHsContext pass)

  Context

- dd_cType :: Maybe (XRec pass CType)
- dd_kindSig :: Maybe (LHsKind pass)

  Optional kind signature.

  `(Just k)` for a GADT-style `data`, or `data instance` decl, with explicit kind sig

  Always `Nothing` for H98-syntax decls

- dd_cons :: DataDefnCons (LConDecl pass)

  Data constructors

  For `data T a = T1 | T2 a` the `LConDecl`s all have `ConDeclH98`. For `data T a where { T1 :: T a }` the `LConDecls` all have `ConDeclGADT`.

- dd_derivs :: HsDeriving pass

  Optional 'deriving' clause

XHsDataDefn !(XXHsDataDefn pass) |

#### Instances

Instances details

HasLoc (HsDataDefn GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: HsDataDefn GhcRn -> SrcSpan
ToHie (TScoped (FamEqn GhcRn (HsDataDefn GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (HsDataDefn GhcRn)) -> HieM [HieAST Type]
ToHie (HsDataDefn GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsDataDefn GhcRn -> HieM [HieAST Type]
HasHaddock (HsDataDefn GhcPs) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsDataDefn GhcPs -> HdkA (HsDataDefn GhcPs)

data FamilyInfo pass #

Constructors

DataFamily |
OpenTypeFamily |
ClosedTypeFamily (Maybe [LTyFamInstEqn pass]) | `Nothing` if we're in an hs-boot file and the user said "type family Foo x where .."

#### Instances

Instances details

ToHie (FamilyInfo GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: FamilyInfo GhcRn -> HieM [HieAST Type]

type LInjectivityAnn pass = XRec pass (InjectivityAnn pass) #

Located Injectivity Annotation

data FamilyDecl pass #

type Family Declaration

Constructors

FamilyDecl |

Fields

- 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)

- `AnnKeywordId` : `AnnType`, `AnnData`, `AnnFamily`, `AnnWhere`, `AnnOpenP`, `AnnDcolon`, `AnnCloseP`, `AnnEqual`, `AnnRarrow`, `AnnVbar`

#### Instances

Instances details

ToHie (LocatedA (FamilyDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FamilyDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (FamilyDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FamilyDecl GhcPs -> Entry # setAnnotationAnchor :: FamilyDecl GhcPs -> Anchor -> EpAnnComments -> FamilyDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FamilyDecl GhcPs -> EP w m (FamilyDecl GhcPs) #
type Anno (FamilyDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (FamilyDecl (GhcPass p)) = SrcSpanAnnA

type LFamilyDecl pass = XRec pass (FamilyDecl pass) #

Located type Family Declaration

data FamilyResultSig pass #

type Family Result Signature

Constructors

NoSig (XNoSig pass)

- `AnnKeywordId` :

KindSig (XCKindSig pass) (LHsKind pass)

- `AnnKeywordId` : `AnnOpenP`,`AnnDcolon`, `AnnCloseP`

TyVarSig (XTyVarSig pass) (LHsTyVarBndr () pass)

- `AnnKeywordId` : `AnnOpenP`,`AnnDcolon`, `AnnCloseP`, `AnnEqual`

XFamilyResultSig !(XXFamilyResultSig pass) |

#### Instances

Instances details

ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn)) -> HieM [HieAST Type]
type Anno (FamilyResultSig (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (FamilyResultSig (GhcPass p)) = SrcAnn NoEpAnns

type LFamilyResultSig pass = XRec pass (FamilyResultSig pass) #

Located type Family Result Signature

data TyClGroup pass #

Type or Class Group

Constructors

TyClGroup |

Fields

- group_ext :: XCTyClGroup pass
- group_tyclds :: [LTyClDecl pass]
- group_roles :: [LRoleAnnotDecl pass]
- group_kisigs :: [LStandaloneKindSig pass]
- group_instds :: [LInstDecl pass]

XTyClGroup !(XXTyClGroup pass) |

#### Instances

Instances details

ToHie (TyClGroup GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TyClGroup GhcRn -> HieM [HieAST Type]

type LHsFunDep pass = XRec pass (FunDep pass) #

data TyClDecl pass #

A type or class declaration.

Constructors

FamDecl

    type/data family T :: *->*

- `AnnKeywordId` : `AnnType`, `AnnData`, `AnnFamily`,`AnnDcolon`, `AnnWhere`,`AnnOpenP`, `AnnDcolon`,`AnnCloseP`, `AnnEqual`,`AnnRarrow`, `AnnVbar`

Fields

- tcdFExt :: XFamDecl pass
- tcdFam :: FamilyDecl pass

SynDecl

`type` declaration

- `AnnKeywordId` : `AnnType`, `AnnEqual`,

Fields

- tcdSExt :: XSynDecl pass

  Post renamer, FVs

- tcdLName :: LIdP pass

  Type constructor

- tcdTyVars :: LHsQTyVars pass

  Type variables; for an associated type these include outer binders

- tcdFixity :: LexicalFixity

  Fixity used in the declaration

- tcdRhs :: LHsType pass

  RHS of type declaration

DataDecl

`data` declaration

- `AnnKeywordId` : `AnnData`, `AnnFamily`, `AnnNewType`, `AnnNewType`,`AnnDcolon` `AnnWhere`,

Fields

- tcdDExt :: XDataDecl pass

  Post renamer, CUSK flag, FVs

- tcdLName :: LIdP pass

  Type constructor

- tcdTyVars :: LHsQTyVars pass

  Type variables; for an associated type these include outer binders

- tcdFixity :: LexicalFixity

  Fixity used in the declaration

- tcdDataDefn :: HsDataDefn pass

ClassDecl

- `AnnKeywordId` : `AnnClass`, `AnnWhere`,`AnnOpen`, `AnnClose`
- The tcdFDs will have `AnnVbar`, `AnnComma` `AnnRarrow` For details on above see Note [exact print annotations] in GHC.Parser.Annotation

Fields

- tcdCExt :: XClassDecl pass

  Post renamer, FVs

- tcdLayout :: !(LayoutInfo pass)

  Explicit or virtual braces See Note [Class LayoutInfo]

- tcdCtxt :: Maybe (LHsContext pass)

  Context...

- tcdLName :: LIdP pass

  Type constructor

- tcdTyVars :: LHsQTyVars pass

  Type variables; for an associated type these include outer binders

- tcdFixity :: LexicalFixity

  Fixity used in the declaration

- tcdFDs :: [LHsFunDep pass]

  Functional deps

- tcdSigs :: [LSig pass]

  Methods' signatures

- tcdMeths :: LHsBinds pass

  Default methods

- tcdATs :: [LFamilyDecl pass]

  Associated types;

- tcdATDefs :: [LTyFamDefltDecl pass]

  Associated type defaults

- tcdDocs :: [LDocDecl pass]

  Haddock docs

XTyClDecl !(XXTyClDecl pass) |

#### Instances

Instances details

ToHie (LocatedA (TyClDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyClDecl GhcRn) -> HieM [HieAST Type]
ExactPrint (TyClDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: TyClDecl GhcPs -> Entry # setAnnotationAnchor :: TyClDecl GhcPs -> Anchor -> EpAnnComments -> TyClDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => TyClDecl GhcPs -> EP w m (TyClDecl GhcPs) #
type Anno (TyClDecl (GhcPass p)) |
Instance details Defined in GHC.Hs.Decls type Anno (TyClDecl (GhcPass p)) = SrcSpanAnnA

type LTyClDecl pass = XRec pass (TyClDecl pass) #

Located Declaration of a Type or Class

data SpliceDecoration #

A splice can appear with various decorations wrapped around it. This data type captures explicitly how it was originally written, for use in the pretty printer.

Constructors

DollarSplice | $splice
BareSplice | bare splice

#### Instances

Instances details

Data SpliceDecoration |

Instance details

Defined in Language.Haskell.Syntax.Decls

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SpliceDecoration -> c SpliceDecoration #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SpliceDecoration #

toConstr :: SpliceDecoration -> Constr #

dataTypeOf :: SpliceDecoration -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SpliceDecoration) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SpliceDecoration) #

gmapT :: (forall b. Data b => b -> b) -> SpliceDecoration -> SpliceDecoration #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SpliceDecoration -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SpliceDecoration -> r #

gmapQ :: (forall d. Data d => d -> u) -> SpliceDecoration -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SpliceDecoration -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SpliceDecoration -> m SpliceDecoration #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SpliceDecoration -> m SpliceDecoration #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SpliceDecoration -> m SpliceDecoration #

Show SpliceDecoration |
Instance details Defined in Language.Haskell.Syntax.Decls Methods showsPrec :: Int -> SpliceDecoration -> ShowS # show :: SpliceDecoration -> String # showList :: [SpliceDecoration] -> ShowS #
Eq SpliceDecoration |
Instance details Defined in Language.Haskell.Syntax.Decls Methods (==) :: SpliceDecoration -> SpliceDecoration -> Bool # (/=) :: SpliceDecoration -> SpliceDecoration -> Bool #

type LSpliceDecl pass = XRec pass (SpliceDecl pass) #

Located Splice Declaration

data HsGroup p #

Haskell Group

A `HsDecl` is categorised into a `HsGroup` before being fed to the renamer.

Constructors

HsGroup |

Fields

- 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) |

data HsDecl p #

A Haskell Declaration

Constructors

TyClD (XTyClD p) (TyClDecl p) | Type or Class Declaration
InstD (XInstD p) (InstDecl p) | Instance declaration
DerivD (XDerivD p) (DerivDecl p) | Deriving declaration
ValD (XValD p) (HsBind p) | Value declaration
SigD (XSigD p) (Sig p) | Signature declaration
KindSigD (XKindSigD p) (StandaloneKindSig p) | Standalone kind signature
DefD (XDefD p) (DefaultDecl p) | 'default' declaration
ForD (XForD p) (ForeignDecl p) | Foreign declaration
WarningD (XWarningD p) (WarnDecls p) | Warning declaration
AnnD (XAnnD p) (AnnDecl p) | Annotation declaration
RuleD (XRuleD p) (RuleDecls p) | Rule declaration
SpliceD (XSpliceD p) (SpliceDecl p) | Splice declaration (Includes quasi-quotes)
DocD (XDocD p) (DocDecl p) | Documentation comment declaration
RoleAnnotD (XRoleAnnotD p) (RoleAnnotDecl p) | Role annotation declaration
XHsDecl !(XXHsDecl p) |

#### Instances

Instances details

HasHaddock (LocatedA (HsDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsDecl GhcPs) -> HdkA (LocatedA (HsDecl GhcPs))
HasHaddock (HsDecl GhcPs) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: HsDecl GhcPs -> HdkA (HsDecl GhcPs)
ExactPrint (HsDecl GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsDecl GhcPs -> Entry # setAnnotationAnchor :: HsDecl GhcPs -> Anchor -> EpAnnComments -> HsDecl GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsDecl GhcPs -> EP w m (HsDecl GhcPs) #
type Anno (HsDecl (GhcPass _1)) |
Instance details Defined in GHC.Hs.Decls type Anno (HsDecl (GhcPass _1)) = SrcSpanAnnA

type LHsDecl p #

Arguments

= XRec p (HsDecl p)

When in a list this may have

- `AnnKeywordId` : `AnnSemi`

hsGroupInstDecls :: HsGroup id -> [LInstDecl id] #

isDataDecl :: TyClDecl pass -> Bool #

`True` = argument is a `data`/`newtype` declaration.

isSynDecl :: TyClDecl pass -> Bool #

type or type instance declaration

isClassDecl :: TyClDecl pass -> Bool #

type class

isFamilyDecl :: TyClDecl pass -> Bool #

type/data family declaration

isTypeFamilyDecl :: TyClDecl pass -> Bool #

type family declaration

isOpenTypeFamilyInfo :: FamilyInfo pass -> Bool #

open type family info

isClosedTypeFamilyInfo :: FamilyInfo pass -> Bool #

closed type family info

isDataFamilyDecl :: TyClDecl pass -> Bool #

data family declaration

tyClDeclTyVars :: TyClDecl pass -> LHsQTyVars pass #

tyClGroupTyClDecls :: [TyClGroup pass] -> [LTyClDecl pass] #

tyClGroupInstDecls :: [TyClGroup pass] -> [LInstDecl pass] #

tyClGroupRoleDecls :: [TyClGroup pass] -> [LRoleAnnotDecl pass] #

tyClGroupKindSigs :: [TyClGroup pass] -> [LStandaloneKindSig pass] #

familyInfoTyConFlavour #

Arguments

:: Maybe tc | Just cls = this is an associated family of class cls
-> FamilyInfo pass |
-> TyConFlavour tc |

dataDefnConsNewOrData :: DataDefnCons a -> NewOrData #

isTypeDataDefnCons :: DataDefnCons a -> Bool #

Are the constructors within a `type data` declaration? See Note [Type data declarations] in GHC.Rename.Module.

firstDataDefnCon :: DataDefnCons a -> Maybe a #

Retrieve the first data constructor in a `DataDefnCons` (if one exists).

collectRuleBndrSigTys :: [RuleBndr pass] -> [HsPatSigType pass] #

docDeclDoc :: DocDecl pass -> LHsDoc pass #

annProvenanceName_maybe :: UnXRec p => AnnProvenance p -> Maybe (IdP p) #

data HsDoFlavour #

Constructors

DoExpr (Maybe ModuleName)

ModuleName.
  do { ... }

MDoExpr (Maybe ModuleName)

ModuleName.
  mdo { ... } ie recursive do-expression

GhciStmtCtxt | A command-line Stmt in GHCi pat <- rhs
ListComp |
MonadComp |

data HsArrowMatchContext #

Haskell arrow match context.

Constructors

ProcExpr | A proc expression
ArrowCaseAlt | A case alternative inside arrow notation
ArrowLamCaseAlt LamCaseVariant | A case or cases alternative inside arrow notation
KappaExpr | An arrow kappa abstraction

data HsStmtContext p #

Haskell Statement Context.

Constructors

HsDoStmt HsDoFlavour | Context for HsDo (do-notation and comprehensions)
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
ArrowExpr | do-notation in an arrow-command context

#### Instances

Instances details

HiePass p => ToHie (HsStmtContext (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsStmtContext (GhcPass p) -> HieM [HieAST Type]

data HsMatchContext p #

Haskell Match Context

Context of a pattern match. This is more subtle than it would seem. See Note [FunBind vs PatBind].

Constructors

FunRhs | A pattern matching on an argument of a function binding

Fields

- mc_fun :: LIdP (NoGhcTc p)

  function binder of `f` See Note [mc_fun field of FunRhs] See #20415 for a long discussion about this field and why it uses NoGhcTc.

- mc_fixity :: LexicalFixity

  fixing of `f`

- mc_strictness :: SrcStrictness

  was `f` banged? See Note [FunBind vs PatBind]

LambdaExpr | Patterns of a lambda
CaseAlt | Patterns and guards in a case alternative
LamCaseAlt LamCaseVariant | Patterns and guards in `case` and `cases`
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

Instances details

HiePass p => ToHie (HsMatchContext (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsMatchContext (GhcPass p) -> HieM [HieAST Type]

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

Instances details

ToHie (LHsExpr a) => ToHie (ArithSeqInfo a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: ArithSeqInfo a -> HieM [HieAST Type]

data HsQuote p #

Haskell (Untyped) Quote = Expr + Pat + Type + Var

Constructors

ExpBr (XExpBr p) (LHsExpr p) |
PatBr (XPatBr p) (LPat p) |
DecBrL (XDecBrL p) [LHsDecl p] |
DecBrG (XDecBrG p) (HsGroup p) |
TypBr (XTypBr p) (LHsType p) |
VarBr (XVarBr p) Bool (LIdP p) |
XQuote !(XXQuote p) |

#### Instances

Instances details

ToHie (HsQuote GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsQuote GhcRn -> HieM [HieAST Type]

data ApplicativeArg idL #

Applicative Argument

Constructors

ApplicativeArgOne |

Fields

- xarg_app_arg_one :: XApplicativeArgOne idL

  The fail operator, after renaming

  The fail operator is needed if this is a BindStmt where the pattern can fail. E.g.: (Just a) <- stmt The fail operator will be invoked if the pattern match fails. It is also used for guards in MonadComprehensions. The fail operator is Nothing if the pattern match can't fail

- app_arg_pattern :: LPat idL
- arg_expr :: LHsExpr idL
- is_body_stmt :: Bool

  True = was a BodyStmt, False = was a BindStmt. See Note [Applicative BodyStmt]

ApplicativeArgMany |

Fields

- xarg_app_arg_many :: XApplicativeArgMany idL
- app_stmts :: [ExprLStmt idL]
- final_expr :: HsExpr idL
- bv_pattern :: LPat idL
- stmt_context :: HsDoFlavour

  context of the do expression, used in pprArg

XApplicativeArg !(XXApplicativeArg idL) |

#### Instances

Instances details

HiePass p => ToHie (RScoped (ApplicativeArg (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (ApplicativeArg (GhcPass p)) -> HieM [HieAST Type]

type FailOperator id = Maybe (SyntaxExpr id) #

The fail operator

This is used for `.. <-` "bind statements" in do notation, including non-monadic "binds" in applicative.

The fail operator is 'Just expr' if it potentially fail monadically. if the pattern match cannot fail, or shouldn't fail monadically (regular incomplete pattern exception), it is `Nothing`.

See Note [Monad fail : Rebindable syntax, overloaded strings] for the type of expression in the `Just` case, and why it is so.

See Note [Failing pattern matches in Stmts] for which contexts for '`BindStmt`'s should use the monadic fail and which shouldn't.

data TransForm #

Constructors

ThenForm |
GroupForm |

#### Instances

Instances details

Data TransForm |

Instance details

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 #

data StmtLR idL idR body #

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

- (XBindStmt idL idR body)

  Post renaming has optional fail and bind / (>>=) operator. Post typechecking, also has multiplicity of the argument and the result type of the function passed to bind; that is, (P, S) in (>>=) :: Q -> (R % P -> S) -> T See Note [The type of bind in Stmts]

- (LPat idL)
- body

ApplicativeStmt (XApplicativeStmt idL idR body) [(SyntaxExpr idR, ApplicativeArg idL)] (Maybe (SyntaxExpr idR))

`ApplicativeStmt` represents an applicative expression built with `<$>` and `<*>`. It is generated by the renamer, and is desugared into the appropriate applicative expression by the desugarer, but it is intended to be invisible in error messages.

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)

- `AnnKeywordId` : `AnnLet` `AnnOpen` `'{'`,`AnnClose` `'}'`,

ParStmt (XParStmt idL idR body) [ParStmtBlock idL idR] (HsExpr idR) (SyntaxExpr idR) |
TransStmt |

Fields

- trS_ext :: XTransStmt idL idR body
- trS_form :: TransForm
- trS_stmts :: [ExprLStmt idL]
- trS_bndrs :: [(IdP idR, IdP idR)]
- trS_using :: LHsExpr idR
- trS_by :: Maybe (LHsExpr idR)
- trS_ret :: SyntaxExpr idR
- trS_bind :: SyntaxExpr idR
- trS_fmap :: HsExpr idR

RecStmt

- `AnnKeywordId` : `AnnRec`

Fields

- 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) |

#### Instances

Instances details

(ToHie (LocatedA (body (GhcPass p))), AnnoBody p body, HiePass p) => ToHie (RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p)))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p))))) -> HieM [HieAST Type]
ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) #
(ExactPrint (LocatedA (body GhcPs)), Anno (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA, Anno [GenLocated SrcSpanAnnA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))] ~ SrcSpanAnnL, ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))])) => ExactPrint (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Entry #

setAnnotationAnchor :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Anchor -> EpAnnComments -> StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> EP w m (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) #

type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) = SrcSpanAnnA

type GhciStmt id = Stmt id (LHsExpr id) #

Ghci Statement

type GhciLStmt id = LStmt id (LHsExpr id) #

Ghci Located Statement

type GuardStmt id = Stmt id (LHsExpr id) #

Guard Statement

type GuardLStmt id = LStmt id (LHsExpr id) #

Guard Located Statement

type ExprStmt id = Stmt id (LHsExpr id) #

Expression Statement

type ExprLStmt id = LStmt id (LHsExpr id) #

Expression Located Statement

type CmdStmt id = Stmt id (LHsCmd id) #

Command Statement

type CmdLStmt id = LStmt id (LHsCmd id) #

Command Located Statement

type LStmtLR idL idR body = XRec idL (StmtLR idL idR body) #

Located Statement with separate Left and Right id's

type LStmt id body = XRec id (StmtLR id id body) #

Located `do` block Statement

data GRHS p body #

Guarded Right Hand Side.

Constructors

GRHS (XCGRHS p body) [GuardLStmt p] body |
XGRHS !(XXGRHS p body) |

#### Instances

Instances details

(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
ExactPrint (GRHS GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHS GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsExpr GhcPs))) #

type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = SrcAnn NoEpAnns

type LGRHS id body = XRec id (GRHS id body) #

Located Guarded Right-Hand Side

type LMatch id body = XRec id (Match id body) #

Located Match

May have `AnnKeywordId` : `AnnSemi` when in a list

type HsRecordBinds p = HsRecFields p (LHsExpr p) #

Haskell Record Bindings

type LHsCmdTop p = XRec p (HsCmdTop p) #

Top-level command, introducing a new arrow. This may occur inside a proc (where the stack is empty) or as an argument of a command-forming operator.

Located Haskell Top-level Command

data HsArrAppType #

Haskell arrow application type.

Constructors

HsHigherOrderApp | First order arrow application `-<`
HsFirstOrderApp | Higher order arrow application `-<<`

#### Instances

Instances details

Data HsArrAppType |

Instance details

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 #

data HsCmd id #

Haskell Command (e.g. a "statement" in an Arrow proc block)

Constructors

HsCmdArrApp (XCmdArrApp id) (LHsExpr id) (LHsExpr id) HsArrAppType Bool

- `AnnKeywordId` : `Annlarrowtail`, `Annrarrowtail`,`AnnLarrowtail`, `AnnRarrowtail`

HsCmdArrForm (XCmdArrForm id) (LHsExpr id) LexicalFixity (Maybe Fixity) [LHsCmdTop id]

- `AnnKeywordId` : `AnnOpenB` `'(|'`, `AnnCloseB` `'|)'`

HsCmdApp (XCmdApp id) (LHsCmd id) (LHsExpr id) |

HsCmdLam (XCmdLam id) (MatchGroup id (LHsCmd id))

- `AnnKeywordId` : `AnnLam`, `AnnRarrow`,

HsCmdPar (XCmdPar id) !(LHsToken "(" id) (LHsCmd id) !(LHsToken ")" id)

- `AnnKeywordId` : `AnnOpen` `'('`, `AnnClose` `')'`

HsCmdCase (XCmdCase id) (LHsExpr id) (MatchGroup id (LHsCmd id))

- `AnnKeywordId` : `AnnCase`, `AnnOf`,`AnnOpen` `'{'`, `AnnClose` `'}'`

HsCmdLamCase (XCmdLamCase id) LamCaseVariant (MatchGroup id (LHsCmd id))

Lambda-case

- `AnnKeywordId` : `AnnLam`, `AnnCase`,`AnnOpen` `'{'`, `AnnClose` `'}'`
- `AnnKeywordId` : `AnnLam`, `AnnCases`,`AnnOpen` `'{'`, `AnnClose` `'}'`

HsCmdIf (XCmdIf id) (SyntaxExpr id) (LHsExpr id) (LHsCmd id) (LHsCmd id)

- `AnnKeywordId` : `AnnIf`, `AnnSemi`, `AnnThen`,`AnnSemi`, `AnnElse`,

HsCmdLet (XCmdLet id) !(LHsToken "let" id) (HsLocalBinds id) !(LHsToken "in" id) (LHsCmd id)

- `AnnKeywordId` : `AnnLet`, `AnnOpen` `'{'`, `AnnClose` `'}'`,`AnnIn`

HsCmdDo (XCmdDo id) (XRec id [CmdLStmt id])

- `AnnKeywordId` : `AnnDo`, `AnnOpen`, `AnnSemi`, `AnnVbar`, `AnnClose`

XCmd !(XXCmd id) |

#### Instances

Instances details

HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsCmd (GhcPass p)) -> HieM [HieAST Type]
DisambECP (HsCmd GhcPs) |

Instance details

Defined in GHC.Parser.PostProcess

Associated Types

type Body (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsCmd GhcPs) = HsCmd
type InfixOp (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsCmd GhcPs) = HsExpr GhcPs
type FunArg (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsCmd GhcPs) = HsExpr GhcPs

Methods

ecpFromCmd' :: LHsCmd GhcPs -> PV (LocatedA (HsCmd GhcPs)) #

ecpFromExp' :: LHsExpr GhcPs -> PV (LocatedA (HsCmd GhcPs)) #

mkHsProjUpdatePV :: SrcSpan -> Located [LocatedAn NoEpAnns (DotFieldOcc GhcPs)] -> LocatedA (HsCmd GhcPs) -> Bool -> [AddEpAnn] -> PV (LHsRecProj GhcPs (LocatedA (HsCmd GhcPs))) #

mkHsLamPV :: SrcSpan -> (EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsLetPV :: SrcSpan -> LHsToken "let" GhcPs -> HsLocalBinds GhcPs -> LHsToken "in" GhcPs -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) #

superInfixOp :: (DisambInfixOp (InfixOp (HsCmd GhcPs)) => PV (LocatedA (HsCmd GhcPs))) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsOpAppPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> LocatedN (InfixOp (HsCmd GhcPs)) -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsCasePV :: SrcSpan -> LHsExpr GhcPs -> LocatedL [LMatch GhcPs (LocatedA (HsCmd GhcPs))] -> EpAnnHsCase -> PV (LocatedA (HsCmd GhcPs)) #

mkHsLamCasePV :: SrcSpan -> LamCaseVariant -> LocatedL [LMatch GhcPs (LocatedA (HsCmd GhcPs))] -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

superFunArg :: (DisambECP (FunArg (HsCmd GhcPs)) => PV (LocatedA (HsCmd GhcPs))) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsAppPV :: SrcSpanAnnA -> LocatedA (HsCmd GhcPs) -> LocatedA (FunArg (HsCmd GhcPs)) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsAppTypePV :: SrcSpanAnnA -> LocatedA (HsCmd GhcPs) -> LHsToken "@" GhcPs -> LHsType GhcPs -> PV (LocatedA (HsCmd GhcPs)) #

mkHsIfPV :: SrcSpan -> LHsExpr GhcPs -> Bool -> LocatedA (HsCmd GhcPs) -> Bool -> LocatedA (HsCmd GhcPs) -> AnnsIf -> PV (LocatedA (HsCmd GhcPs)) #

mkHsDoPV :: SrcSpan -> Maybe ModuleName -> LocatedL [LStmt GhcPs (LocatedA (HsCmd GhcPs))] -> AnnList -> PV (LocatedA (HsCmd GhcPs)) #

mkHsParPV :: SrcSpan -> LHsToken "(" GhcPs -> LocatedA (HsCmd GhcPs) -> LHsToken ")" GhcPs -> PV (LocatedA (HsCmd GhcPs)) #

mkHsVarPV :: LocatedN RdrName -> PV (LocatedA (HsCmd GhcPs)) #

mkHsLitPV :: Located (HsLit GhcPs) -> PV (Located (HsCmd GhcPs)) #

mkHsOverLitPV :: LocatedAn a (HsOverLit GhcPs) -> PV (LocatedAn a (HsCmd GhcPs)) #

mkHsWildCardPV :: SrcSpan -> PV (Located (HsCmd GhcPs)) #

mkHsTySigPV :: SrcSpanAnnA -> LocatedA (HsCmd GhcPs) -> LHsType GhcPs -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsExplicitListPV :: SrcSpan -> [LocatedA (HsCmd GhcPs)] -> AnnList -> PV (LocatedA (HsCmd GhcPs)) #

mkHsSplicePV :: Located (HsUntypedSplice GhcPs) -> PV (Located (HsCmd GhcPs)) #

mkHsRecordPV :: Bool -> SrcSpan -> SrcSpan -> LocatedA (HsCmd GhcPs) -> ([Fbind (HsCmd GhcPs)], Maybe SrcSpan) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsNegAppPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsSectionR_PV :: SrcSpan -> LocatedA (InfixOp (HsCmd GhcPs)) -> LocatedA (HsCmd GhcPs) -> PV (Located (HsCmd GhcPs)) #

mkHsViewPatPV :: SrcSpan -> LHsExpr GhcPs -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsAsPatPV :: SrcSpan -> LocatedN RdrName -> LHsToken "@" GhcPs -> LocatedA (HsCmd GhcPs) -> PV (LocatedA (HsCmd GhcPs)) #

mkHsLazyPatPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkHsBangPatPV :: SrcSpan -> LocatedA (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

mkSumOrTuplePV :: SrcSpanAnnA -> Boxity -> SumOrTuple (HsCmd GhcPs) -> [AddEpAnn] -> PV (LocatedA (HsCmd GhcPs)) #

rejectPragmaPV :: LocatedA (HsCmd GhcPs) -> PV () #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) #

ExactPrint (HsCmd GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsCmd GhcPs -> Entry # setAnnotationAnchor :: HsCmd GhcPs -> Anchor -> EpAnnComments -> HsCmd GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsCmd GhcPs -> EP w m (HsCmd GhcPs) #
ExactPrint (GRHS GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) #

type Body (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type Body (HsCmd GhcPs) = HsCmd
type FunArg (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type FunArg (HsCmd GhcPs) = HsExpr GhcPs
type InfixOp (HsCmd GhcPs) |
Instance details Defined in GHC.Parser.PostProcess type InfixOp (HsCmd GhcPs) = HsExpr GhcPs
type Anno (HsCmd (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (HsCmd (GhcPass p)) = SrcSpanAnnA
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA

type LHsCmd id = XRec id (HsCmd id) #

Located Haskell Command (for arrow syntax)

data LamCaseVariant #

Which kind of lambda case are we dealing with?

Constructors

LamCase | `case`
LamCases | `cases`

#### Instances

Instances details

Data LamCaseVariant |

Instance details

Defined in Language.Haskell.Syntax.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LamCaseVariant -> c LamCaseVariant #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LamCaseVariant #

toConstr :: LamCaseVariant -> Constr #

dataTypeOf :: LamCaseVariant -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LamCaseVariant) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LamCaseVariant) #

gmapT :: (forall b. Data b => b -> b) -> LamCaseVariant -> LamCaseVariant #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LamCaseVariant -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LamCaseVariant -> r #

gmapQ :: (forall d. Data d => d -> u) -> LamCaseVariant -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LamCaseVariant -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LamCaseVariant -> m LamCaseVariant #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LamCaseVariant -> m LamCaseVariant #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LamCaseVariant -> m LamCaseVariant #

Eq LamCaseVariant |
Instance details Defined in Language.Haskell.Syntax.Expr Methods (==) :: LamCaseVariant -> LamCaseVariant -> Bool # (/=) :: LamCaseVariant -> LamCaseVariant -> Bool #

data HsTupArg id #

- `AnnKeywordId` : `AnnComma`

Haskell Tuple Argument

Constructors

Present (XPresent id) (LHsExpr id) | The argument
Missing (XMissing id) | The argument is missing, but this is its type
XTupArg !(XXTupArg id) | Extension point; see Note [Trees That Grow] in Language.Haskell.Syntax.Extension

#### Instances

Instances details

HiePass p => ToHie (HsTupArg (GhcPass p)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: HsTupArg (GhcPass p) -> HieM [HieAST Type]
ExactPrint (HsTupArg GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsTupArg GhcPs -> Entry # setAnnotationAnchor :: HsTupArg GhcPs -> Anchor -> EpAnnComments -> HsTupArg GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsTupArg GhcPs -> EP w m (HsTupArg GhcPs) #

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))`

data HsPragE p #

A pragma, written as {-# ... #-}, that may appear within an expression.

Constructors

HsPragSCC (XSCC p) StringLiteral |

XHsPragE !(XXPragE p)

- `AnnKeywordId` : `AnnOpen`, `AnnOpen` `'{-# GENERATED'`, `AnnVal`,`AnnVal`, `AnnColon`,`AnnVal`, `AnnMinus`, `AnnVal`,`AnnColon`, `AnnVal`, `AnnClose` `'#-}'`

#### Instances

Instances details

ExactPrint (HsPragE GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsPragE GhcPs -> Entry # setAnnotationAnchor :: HsPragE GhcPs -> Anchor -> EpAnnComments -> HsPragE GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsPragE GhcPs -> EP w m (HsPragE GhcPs) #

data DotFieldOcc p #

Constructors

DotFieldOcc |

Fields

- dfoExt :: XCDotFieldOcc p
- dfoLabel :: XRec p FieldLabelString

XDotFieldOcc !(XXDotFieldOcc p) |

#### Instances

Instances details

ExactPrint (DotFieldOcc GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: DotFieldOcc GhcPs -> Entry # setAnnotationAnchor :: DotFieldOcc GhcPs -> Anchor -> EpAnnComments -> DotFieldOcc GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => DotFieldOcc GhcPs -> EP w m (DotFieldOcc GhcPs) #
type Anno (DotFieldOcc (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (DotFieldOcc (GhcPass p)) = SrcAnn NoEpAnns

data LHsRecUpdFields p where #

Haskell Record Update Fields.

Constructors

RegularRecUpdFields | A regular (non-overloaded) record update.

Fields

- :: forall p. { xRecUpdFields :: XLHsRecUpdLabels p
- , recUpdFields :: [LHsRecUpdField p p]
- } -> LHsRecUpdFields p

OverloadedRecUpdFields | An overloaded record update.

Fields

- :: forall p. { xOLRecUpdFields :: XLHsOLRecUpdLabels p
- , olRecUpdFields :: [LHsRecUpdProj p]
- } -> LHsRecUpdFields p

#### Instances

Instances details

ExactPrint (LHsRecUpdFields GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LHsRecUpdFields GhcPs -> Entry # setAnnotationAnchor :: LHsRecUpdFields GhcPs -> Anchor -> EpAnnComments -> LHsRecUpdFields GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LHsRecUpdFields GhcPs -> EP w m (LHsRecUpdFields GhcPs) #

type LHsRecUpdProj p = XRec p (RecUpdProj p) #

type RecUpdProj p = RecProj p (LHsExpr p) #

type LHsRecProj p arg = XRec p (RecProj p arg) #

type RecProj p arg = HsFieldBind (LFieldLabelStrings p) arg #

newtype FieldLabelStrings p #

Constructors

FieldLabelStrings [XRec p (DotFieldOcc p)] |

#### Instances

Instances details

ExactPrint (FieldLabelStrings GhcPs) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: FieldLabelStrings GhcPs -> Entry # setAnnotationAnchor :: FieldLabelStrings GhcPs -> Anchor -> EpAnnComments -> FieldLabelStrings GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => FieldLabelStrings GhcPs -> EP w m (FieldLabelStrings GhcPs) #
ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) #

type Anno (FieldLabelStrings (GhcPass p)) |
Instance details Defined in GHC.Hs.Expr type Anno (FieldLabelStrings (GhcPass p)) = SrcAnn NoEpAnns

type LFieldLabelStrings p = XRec p (FieldLabelStrings p) #

RecordDotSyntax field updates

isInfixMatch :: Match id body -> Bool #

isPatSynCtxt :: HsMatchContext p -> Bool #

qualifiedDoModuleName_maybe :: HsStmtContext p -> Maybe ModuleName #

isComprehensionContext :: HsStmtContext id -> Bool #

isDoComprehensionContext :: HsDoFlavour -> Bool #

isMonadStmtContext :: HsStmtContext id -> Bool #

Is this a monadic context?

isMonadDoStmtContext :: HsDoFlavour -> Bool #

isMonadCompContext :: HsStmtContext id -> Bool #

isMonadDoCompContext :: HsDoFlavour -> Bool #

data HsUntypedSpliceResult thing #

Constructors

HsUntypedSpliceTop |

Fields

- utsplice_result_finalizers :: ThModFinalizers

  TH finalizers produced by the splice.

- utsplice_result :: thing

  The result of splicing; See Note [Lifecycle of a splice]

HsUntypedSpliceNested SplicePointName |

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

Instances details

Data ThModFinalizers |

Instance details

Defined in GHC.Hs.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 #

type SplicePointName = Name #

pprFunBind :: forall (idR :: Pass). OutputableBndrId idR => MatchGroup (GhcPass idR) (LHsExpr (GhcPass idR)) -> SDoc #

pprPatBind :: forall (bndr :: Pass) (p :: Pass). (OutputableBndrId bndr, OutputableBndrId p) => LPat (GhcPass bndr) -> GRHSs (GhcPass p) (LHsExpr (GhcPass p)) -> SDoc #

pprUntypedSplice :: forall (p :: Pass). OutputableBndrId p => Bool -> Maybe SplicePointName -> HsUntypedSplice (GhcPass p) -> SDoc #

pprTypedSplice :: forall (p :: Pass). OutputableBndrId p => Maybe SplicePointName -> LHsExpr (GhcPass p) -> SDoc #

pprExpr :: forall (p :: Pass). OutputableBndrId p => HsExpr (GhcPass p) -> SDoc #

pprLExpr :: forall (p :: Pass). OutputableBndrId p => LHsExpr (GhcPass p) -> SDoc #

data HsModule p #

Haskell Module

All we actually declare here is the top-level structure for a module.

Constructors

HsModule

`AnnKeywordId`s

- `AnnModule`,`AnnWhere`
- `AnnOpen`,`AnnSemi`, `AnnClose` for explicit braces and semi around hsmodImports,hsmodDecls if this style is used.

Fields

- hsmodExt :: XCModule p

  HsModule extension point

- hsmodName :: Maybe (XRec p ModuleName)

  `Nothing`: "module X where" is omitted (in which case the next field is Nothing too)

- hsmodExports :: Maybe (XRec p [LIE p])

  Export list

  - `Nothing`: export list omitted, so export everything
  - `Just []`: export nothing
  - `Just [...]`: as you would expect...
  - `AnnKeywordId`s : `AnnOpen` ,`AnnClose`
- hsmodImports :: [LImportDecl p]
- hsmodDecls :: [LHsDecl p]

  Type, class, value, and interface signature decls

XModule !(XXModule p) |

#### Instances

Instances details

HasDecls ParsedSource |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => ParsedSource -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => ParsedSource -> [LHsDecl GhcPs] -> TransformT m ParsedSource #
HasHaddock (Located (HsModule GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located (HsModule GhcPs) -> HdkA (Located (HsModule GhcPs))
ExactPrint (HsModule GhcPs) | 'Located (HsModule GhcPs)' corresponds to `ParsedSource`
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: HsModule GhcPs -> Entry # setAnnotationAnchor :: HsModule GhcPs -> Anchor -> EpAnnComments -> HsModule GhcPs # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsModule GhcPs -> EP w m (HsModule GhcPs) #

pprParendExpr :: forall (p :: Pass). OutputableBndrId p => PprPrec -> HsExpr (GhcPass p) -> SDoc #

class OutputableBndrFlag flag (p :: Pass) #

Minimal complete definition

pprTyVarBndr

#### Instances

Instances details

OutputableBndrFlag Specificity p |
Instance details Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr Specificity (GhcPass p) -> SDoc
OutputableBndrFlag () p |
Instance details Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr () (GhcPass p) -> SDoc
OutputableBndrFlag (HsBndrVis p') p |
Instance details Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr (HsBndrVis p') (GhcPass p) -> SDoc

data OpName #

Name of an operator in an operator application or section

Constructors

NormalOp Name | A normal identifier
NegateOp | Prefix negation
UnboundOp RdrName | An unbound identifier
RecFldOp (FieldOcc GhcRn) | A record field occurrence

#### Instances

Instances details

Outputable OpName |
Instance details Defined in GHC.Hs.Type Methods ppr :: OpName -> SDoc #

type HsCoreTy = Type #

data HsPSRn #

The extension field for `HsPatSigType`, which is only used in the renamer onwards. See `Note [Pattern signature binders and scoping]`.

Constructors

HsPSRn |

Fields

- hsps_nwcs :: [Name]

  Wildcard names

- hsps_imp_tvs :: [Name]

  Implicitly bound variable names

#### Instances

Instances details

Data HsPSRn |

Instance details

Defined in GHC.Hs.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 #

type EpAnnForallTy #

Arguments

= EpAnn (AddEpAnn, AddEpAnn) | Location of `forall` and `->` for HsForAllVis Location of `forall` and `.` for HsForAllInvis

getBangType :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) #

getBangStrictness :: forall (p :: Pass). LHsType (GhcPass p) -> HsSrcBang #

fromMaybeContext :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> HsContext (GhcPass p) #

mkHsForAllVisTele :: forall (p :: Pass). EpAnnForallTy -> [LHsTyVarBndr () (GhcPass p)] -> HsForAllTelescope (GhcPass p) #

mkHsForAllInvisTele :: forall (p :: Pass). EpAnnForallTy -> [LHsTyVarBndr Specificity (GhcPass p)] -> HsForAllTelescope (GhcPass p) #

mkHsQTvs :: [LHsTyVarBndr (HsBndrVis GhcPs) GhcPs] -> LHsQTyVars GhcPs #

emptyLHsQTvs :: LHsQTyVars GhcRn #

hsSigWcType :: UnXRec p => LHsSigWcType p -> LHsType p #

dropWildCards :: LHsSigWcType pass -> LHsSigType pass #

hsOuterTyVarNames :: HsOuterTyVarBndrs flag GhcRn -> [Name] #

hsOuterExplicitBndrs :: forall flag (p :: Pass). HsOuterTyVarBndrs flag (GhcPass p) -> [LHsTyVarBndr flag (NoGhcTc (GhcPass p))] #

mkHsOuterImplicit :: HsOuterTyVarBndrs flag GhcPs #

mkHsOuterExplicit :: EpAnnForallTy -> [LHsTyVarBndr flag GhcPs] -> HsOuterTyVarBndrs flag GhcPs #

mkHsImplicitSigType :: LHsType GhcPs -> HsSigType GhcPs #

mkHsExplicitSigType :: EpAnnForallTy -> [LHsTyVarBndr Specificity GhcPs] -> LHsType GhcPs -> HsSigType GhcPs #

mkHsWildCardBndrs :: thing -> HsWildCardBndrs GhcPs thing #

mkHsPatSigType :: EpAnnCO -> LHsType GhcPs -> HsPatSigType GhcPs #

mkEmptyWildCardBndrs :: thing -> HsWildCardBndrs GhcRn thing #

hsTyVarBndrFlag :: forall flag (pass :: Pass). HsTyVarBndr flag (GhcPass pass) -> flag #

Return the attached flag

setHsTyVarBndrFlag :: forall flag flag' (pass :: Pass). flag -> HsTyVarBndr flag' (GhcPass pass) -> HsTyVarBndr flag (GhcPass pass) #

Set the attached flag

updateHsTyVarBndrFlag :: forall flag flag' (pass :: Pass). (flag -> flag') -> HsTyVarBndr flag (GhcPass pass) -> HsTyVarBndr flag' (GhcPass pass) #

Update the attached flag

hsTvbAllKinded :: forall (p :: Pass). LHsQTyVars (GhcPass p) -> Bool #

Do all type variables in this `LHsQTyVars` come with kind annotations?

hsLinear :: forall a (p :: Pass). a -> HsScaled (GhcPass p) a #

hsUnrestricted :: forall a (p :: Pass). a -> HsScaled (GhcPass p) a #

isUnrestricted :: HsArrow GhcRn -> Bool #

arrowToHsType :: HsArrow GhcRn -> LHsType GhcRn #

Convert an arrow into its corresponding multiplicity. In essence this erases the information of whether the programmer wrote an explicit multiplicity or a shorthand.

pprHsArrow :: forall (pass :: Pass). OutputableBndrId pass => HsArrow (GhcPass pass) -> SDoc #

hsWcScopedTvs :: LHsSigWcType GhcRn -> [Name] #

hsScopedTvs :: LHsSigType GhcRn -> [Name] #

hsScopedKvs :: LHsKind GhcRn -> [Name] #

hsTyVarName :: forall flag (p :: Pass). HsTyVarBndr flag (GhcPass p) -> IdP (GhcPass p) #

hsLTyVarName :: forall flag (p :: Pass). LHsTyVarBndr flag (GhcPass p) -> IdP (GhcPass p) #

hsLTyVarNames :: forall flag (p :: Pass). [LHsTyVarBndr flag (GhcPass p)] -> [IdP (GhcPass p)] #

hsExplicitLTyVarNames :: forall (p :: Pass). LHsQTyVars (GhcPass p) -> [IdP (GhcPass p)] #

hsAllLTyVarNames :: LHsQTyVars GhcRn -> [Name] #

hsLTyVarLocName :: forall (p :: Pass) flag. Anno (IdGhcP p) ~ SrcSpanAnnN => LHsTyVarBndr flag (GhcPass p) -> LocatedN (IdP (GhcPass p)) #

hsLTyVarLocNames :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsQTyVars (GhcPass p) -> [LocatedN (IdP (GhcPass p))] #

hsTyKindSig :: forall (p :: Pass). LHsType (GhcPass p) -> Maybe (LHsKind (GhcPass p)) #

Get the kind signature of a type, ignoring parentheses:

hsTyKindSig `Maybe ` = Nothing hsTyKindSig `Maybe :: Type -> Type ` = Just `Type -> Type` hsTyKindSig `Maybe :: ((Type -> Type))` = Just `Type -> Type`

This is used to extract the result kind of type synonyms with a CUSK:

type S = (F :: res_kind) ^^^^^^^^

ignoreParens :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) #

mkAnonWildCardTy :: HsType GhcPs #

mkHsOpTy :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => PromotionFlag -> LHsType (GhcPass p) -> LocatedN (IdP (GhcPass p)) -> LHsType (GhcPass p) -> HsType (GhcPass p) #

mkHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #

mkHsAppTys :: forall (p :: Pass). LHsType (GhcPass p) -> [LHsType (GhcPass p)] -> LHsType (GhcPass p) #

mkHsAppKindTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsToken "@" (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #

splitHsFunType :: forall (p :: Pass). LHsType (GhcPass p) -> ([AddEpAnn], EpAnnComments, [HsScaled (GhcPass p) (LHsType (GhcPass p))], LHsType (GhcPass p)) #

hsTyGetAppHead_maybe :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsType (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p))) #

Retrieve the name of the "head" of a nested type application. This is somewhat like `GHC.Tc.Gen.HsType.splitHsAppTys`, but a little more thorough. The purpose of this function is to examine instance heads, so it doesn't handle *all* cases (like lists, tuples, `(~)`, etc.).

lhsTypeArgSrcSpan :: forall (pass :: Pass). LHsTypeArg (GhcPass pass) -> SrcSpan #

Compute the `SrcSpan` associated with an `LHsTypeArg`.

numVisibleArgs :: [HsArg p tm ty] -> Arity #

pprHsArgsApp :: (OutputableBndr id, Outputable tm, Outputable ty) => id -> LexicalFixity -> [HsArg p tm ty] -> SDoc #

``pprHsArgsApp` id fixity args` pretty-prints an application of `id` to `args`, using the `fixity` to tell whether `id` should be printed prefix or infix. Examples:

    pprHsArgsApp T Prefix [HsTypeArg Bool, HsValArg Int]                        = T @Bool Int
    pprHsArgsApp T Prefix [HsTypeArg Bool, HsArgPar, HsValArg Int]              = (T @Bool) Int
    pprHsArgsApp (++) Infix [HsValArg Char, HsValArg Double]                    = Char ++ Double
    pprHsArgsApp (++) Infix [HsValArg Char, HsValArg Double, HsVarArg Ordering] = (Char ++ Double) Ordering

splitLHsPatSynTy :: forall (p :: Pass). LHsSigType (GhcPass p) -> ([LHsTyVarBndr Specificity (GhcPass (NoGhcTcPass p))], Maybe (LHsContext (GhcPass p)), [LHsTyVarBndr Specificity (GhcPass p)], Maybe (LHsContext (GhcPass p)), LHsType (GhcPass p)) #

Decompose a pattern synonym type signature into its constituent parts.

Note that this function looks through parentheses, so it will work on types such as `(forall a. ...)`. The downside to this is that it is not generally possible to take the returned types and reconstruct the original type (parentheses and all) from them.

splitLHsSigmaTyInvis :: forall (p :: Pass). LHsType (GhcPass p) -> ([LHsTyVarBndr Specificity (GhcPass p)], Maybe (LHsContext (GhcPass p)), LHsType (GhcPass p)) #

Decompose a sigma type (of the form `forall tvs. context => body`) into its constituent parts. Only splits type variable binders that were quantified invisibly (e.g., `forall a.`, with a dot).

This function is used to split apart certain types, such as instance declaration types, which disallow visible `forall`s. For instance, if GHC split apart the `forall` in `instance forall a -> Show (Blah a)`, then that declaration would mistakenly be accepted!

Note that this function looks through parentheses, so it will work on types such as `(forall a. ...)`. The downside to this is that it is not generally possible to take the returned types and reconstruct the original type (parentheses and all) from them.

splitLHsGadtTy :: LHsSigType GhcPs -> (HsOuterSigTyVarBndrs GhcPs, Maybe (LHsContext GhcPs), LHsType GhcPs) #

Decompose a GADT type into its constituent parts. Returns `(outer_bndrs, mb_ctxt, body)`, where:

- `outer_bndrs` are `HsOuterExplicit` if the type has explicit, outermost type variable binders. Otherwise, they are `HsOuterImplicit`.
- `mb_ctxt` is `Just` the context, if it is provided. Otherwise, it is `Nothing`.
- `body` is the body of the type after the optional `forall`s and context.

This function is careful not to look through parentheses. See `Note [GADT abstract syntax] (Wrinkle: No nested foralls or contexts)` GHC.Hs.Decls for why this is important.

splitLHsForAllTyInvis :: forall (pass :: Pass). LHsType (GhcPass pass) -> ((EpAnnForallTy, [LHsTyVarBndr Specificity (GhcPass pass)]), LHsType (GhcPass pass)) #

Decompose a type of the form `forall tvs. body` into its constituent parts. Only splits type variable binders that were quantified invisibly (e.g., `forall a.`, with a dot).

This function is used to split apart certain types, such as instance declaration types, which disallow visible `forall`s. For instance, if GHC split apart the `forall` in `instance forall a -> Show (Blah a)`, then that declaration would mistakenly be accepted!

Note that this function looks through parentheses, so it will work on types such as `(forall a. ...)`. The downside to this is that it is not generally possible to take the returned types and reconstruct the original type (parentheses and all) from them. Unlike `splitLHsSigmaTyInvis`, this function does not look through parentheses, hence the suffix `_KP` (short for "Keep Parentheses").

splitLHsForAllTyInvis_KP :: forall (pass :: Pass). LHsType (GhcPass pass) -> (Maybe (EpAnnForallTy, [LHsTyVarBndr Specificity (GhcPass pass)]), LHsType (GhcPass pass)) #

Decompose a type of the form `forall tvs. body` into its constituent parts. Only splits type variable binders that were quantified invisibly (e.g., `forall a.`, with a dot).

This function is used to split apart certain types, such as instance declaration types, which disallow visible `forall`s. For instance, if GHC split apart the `forall` in `instance forall a -> Show (Blah a)`, then that declaration would mistakenly be accepted!

Unlike `splitLHsForAllTyInvis`, this function does not look through parentheses, hence the suffix `_KP` (short for "Keep Parentheses").

splitLHsQualTy :: forall (pass :: Pass). LHsType (GhcPass pass) -> (Maybe (LHsContext (GhcPass pass)), LHsType (GhcPass pass)) #

Decompose a type of the form `context => body` into its constituent parts.

Note that this function looks through parentheses, so it will work on types such as `(context => ...)`. The downside to this is that it is not generally possible to take the returned types and reconstruct the original type (parentheses and all) from them.

splitLHsInstDeclTy :: LHsSigType GhcRn -> ([Name], Maybe (LHsContext GhcRn), LHsType GhcRn) #

Decompose a type class instance type (of the form `forall tvs. context => instance_head`) into its constituent parts. Note that the `[Name]`s returned correspond to either:

- The implicitly bound type variables (if the type lacks an outermost `forall`), or
- The explicitly bound type variables (if the type has an outermost `forall`).

This function is careful not to look through parentheses. See `Note [No nested foralls or contexts in instance types]` for why this is important.

getLHsInstDeclHead :: forall (p :: Pass). LHsSigType (GhcPass p) -> LHsType (GhcPass p) #

Decompose a type class instance type (of the form `forall tvs. context => instance_head`) into the `instance_head`.

getLHsInstDeclClass_maybe :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsSigType (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p))) #

Decompose a type class instance type (of the form `forall tvs. context => instance_head`) into the `instance_head` and retrieve the underlying class type constructor (if it exists).

mkFieldOcc :: LocatedN RdrName -> FieldOcc GhcPs #

mkAmbiguousFieldOcc :: LocatedN RdrName -> AmbiguousFieldOcc GhcPs #

ambiguousFieldOccRdrName :: forall (p :: Pass). AmbiguousFieldOcc (GhcPass p) -> RdrName #

ambiguousFieldOccLRdrName :: forall (p :: Pass). AmbiguousFieldOcc (GhcPass p) -> LocatedN RdrName #

selectorAmbiguousFieldOcc :: AmbiguousFieldOcc GhcTc -> Id #

unambiguousFieldOcc :: AmbiguousFieldOcc GhcTc -> FieldOcc GhcTc #

ambiguousFieldOcc :: FieldOcc GhcTc -> AmbiguousFieldOcc GhcTc #

pprAnonWildCard :: SDoc #

pprHsOuterFamEqnTyVarBndrs :: forall (p :: Pass). OutputableBndrId p => HsOuterFamEqnTyVarBndrs (GhcPass p) -> SDoc #

Prints the explicit `forall` in a type family equation if one is written. If there is no explicit `forall`, nothing is printed.

pprHsOuterSigTyVarBndrs :: forall (p :: Pass). OutputableBndrId p => HsOuterSigTyVarBndrs (GhcPass p) -> SDoc #

Prints the outermost `forall` in a type signature if one is written. If there is no outermost `forall`, nothing is printed.

pprHsForAll :: forall (p :: Pass). OutputableBndrId p => HsForAllTelescope (GhcPass p) -> Maybe (LHsContext (GhcPass p)) -> SDoc #

Prints a forall; When passed an empty list, prints `forall .`/`forall ->` only when `-dppr-debug` is enabled.

pprLHsContext :: forall (p :: Pass). OutputableBndrId p => Maybe (LHsContext (GhcPass p)) -> SDoc #

pprConDeclFields :: forall (p :: Pass). OutputableBndrId p => [LConDeclField (GhcPass p)] -> SDoc #

pprHsType :: forall (p :: Pass). OutputableBndrId p => HsType (GhcPass p) -> SDoc #

hsTypeNeedsParens :: forall (p :: Pass). PprPrec -> HsType (GhcPass p) -> Bool #

``hsTypeNeedsParens` p t` returns `True` if the type `t` needs parentheses under precedence `p`.

parenthesizeHsType :: forall (p :: Pass). PprPrec -> LHsType (GhcPass p) -> LHsType (GhcPass p) #

``parenthesizeHsType` p ty` checks if ``hsTypeNeedsParens` p ty` is true, and if so, surrounds `ty` with an `HsParTy`. Otherwise, it simply returns `ty`.

parenthesizeHsContext :: forall (p :: Pass). PprPrec -> LHsContext (GhcPass p) -> LHsContext (GhcPass p) #

``parenthesizeHsContext` p ctxt` checks if `ctxt` is a single constraint `c` such that ``hsTypeNeedsParens` p c` is true, and if so, surrounds `c` with an `HsParTy` to form a parenthesized `ctxt`. Otherwise, it simply returns `ctxt` unchanged.

data OverLitTc #

Constructors

OverLitTc |

Fields

- ol_rebindable :: Bool
- ol_witness :: HsExpr GhcTc
- ol_type :: Type

data OverLitRn #

Constructors

OverLitRn |

Fields

- ol_rebindable :: Bool
- ol_from_fun :: LIdP GhcRn

pprXOverLit :: forall (p :: Pass). GhcPass p -> XOverLit (GhcPass p) -> SDoc #

overLitType :: HsOverLit GhcTc -> Type #

hsOverLitNeedsParens :: PprPrec -> HsOverLit x -> Bool #

``hsOverLitNeedsParens` p ol` returns `True` if an overloaded literal `ol` needs to be parenthesized under precedence `p`.

hsLitNeedsParens :: PprPrec -> HsLit x -> Bool #

``hsLitNeedsParens` p l` returns `True` if a literal `l` needs to be parenthesized under precedence `p`.

See Note [Printing of literals in Core] in GHC.Types.Literal for the reasoning.

convertLit :: forall (p1 :: Pass) (p2 :: Pass). HsLit (GhcPass p1) -> HsLit (GhcPass p2) #

Convert a literal from one index type to another

pmPprHsLit :: forall (x :: Pass). HsLit (GhcPass x) -> SDoc #

pmPprHsLit pretty prints literals and is used when pretty printing pattern match warnings. All are printed the same (i.e., without hashes if they are primitive and not wrapped in constructors if they are boxed). This happens mainly for too reasons: * We do not want to expose their internal representation * The warnings become too messy

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

Instances details

Data TcSpecPrag |

Instance details

Defined in GHC.Hs.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 #

Outputable TcSpecPrag |
Instance details Defined in GHC.Hs.Binds Methods ppr :: TcSpecPrag -> SDoc #

type LTcSpecPrag = Located TcSpecPrag #

Located Type checker Specification Pragmas

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

Instances details

Data TcSpecPrags |

Instance details

Defined in GHC.Hs.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 AnnSig #

Constructors

AnnSig |

Fields

- asDcolon :: AddEpAnn
- asRest :: [AddEpAnn]

#### Instances

Instances details

Data AnnSig |

Instance details

Defined in GHC.Hs.Binds

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnSig -> c AnnSig #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnSig #

toConstr :: AnnSig -> Constr #

dataTypeOf :: AnnSig -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnSig) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnSig) #

gmapT :: (forall b. Data b => b -> b) -> AnnSig -> AnnSig #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnSig -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnSig -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnSig -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnSig -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnSig -> m AnnSig #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnSig -> m AnnSig #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnSig -> m AnnSig #

newtype IdSig #

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

Constructors

IdSig |

Fields

- unIdSig :: Id

#### Instances

Instances details

Data IdSig |

Instance details

Defined in GHC.Hs.Binds

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IdSig -> c IdSig #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IdSig #

toConstr :: IdSig -> Constr #

dataTypeOf :: IdSig -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IdSig) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IdSig) #

gmapT :: (forall b. Data b => b -> b) -> IdSig -> IdSig #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IdSig -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IdSig -> r #

gmapQ :: (forall d. Data d => d -> u) -> IdSig -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> IdSig -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> IdSig -> m IdSig #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IdSig -> m IdSig #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IdSig -> m IdSig #

data ABExport #

Abstraction Bindings Export

Constructors

ABE |

Fields

- abe_poly :: Id

  Any INLINE pragma is attached to this Id

- abe_mono :: Id
- abe_wrap :: HsWrapper

  See Note [ABExport wrapper] Shape: (forall abs_tvs. abs_ev_vars => abe_mono) ~ abe_poly

- abe_prags :: TcSpecPrags

  SPECIALISE pragmas

#### Instances

Instances details

Outputable ABExport |
Instance details Defined in GHC.Hs.Binds Methods ppr :: ABExport -> SDoc #

data AbsBinds #

Typechecked, generalised bindings, used in the output to the type checker. See Note [AbsBinds].

Constructors

AbsBinds |

Fields

- abs_tvs :: [TyVar]
- abs_ev_vars :: [EvVar]

  Includes equality constraints

- abs_exports :: [ABExport]

  AbsBinds only gets used when idL = idR after renaming, but these need to be idL's for the collect... code in HsUtil to have the right type

- abs_ev_binds :: [TcEvBinds]

  Evidence bindings Why a list? See GHC.Tc.TyCl.Instance Note [Typechecking plan for instance declarations]

- abs_binds :: LHsBinds GhcTc

  Typechecked user bindings

- abs_sig :: Bool

type family XVarBindGhc (pL :: Pass) (pR :: Pass) where ... #

Equations

XVarBindGhc 'Typechecked 'Typechecked = NoExtField |
XVarBindGhc _1 _2 = DataConCantHappen |

data NHsValBindsLR idL #

Constructors

NValBinds [(RecFlag, LHsBinds idL)] [LSig GhcRn] |

#### Instances

Instances details

HiePass p => ToHie (RScoped (NHsValBindsLR (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (NHsValBindsLR (GhcPass p)) -> HieM [HieAST Type]

pprLHsBinds :: forall (idL :: Pass) (idR :: Pass). (OutputableBndrId idL, OutputableBndrId idR) => LHsBindsLR (GhcPass idL) (GhcPass idR) -> SDoc #

pprLHsBindsForUser :: forall (idL :: Pass) (idR :: Pass) (id2 :: Pass). (OutputableBndrId idL, OutputableBndrId idR, OutputableBndrId id2) => LHsBindsLR (GhcPass idL) (GhcPass idR) -> [LSig (GhcPass id2)] -> [SDoc] #

pprDeclList :: [SDoc] -> SDoc #

emptyLocalBinds :: forall (a :: Pass) (b :: Pass). HsLocalBindsLR (GhcPass a) (GhcPass b) #

eqEmptyLocalBinds :: HsLocalBindsLR a b -> Bool #

isEmptyValBinds :: forall (a :: Pass) (b :: Pass). HsValBindsLR (GhcPass a) (GhcPass b) -> Bool #

emptyValBindsIn :: forall (a :: Pass) (b :: Pass). HsValBindsLR (GhcPass a) (GhcPass b) #

emptyValBindsOut :: forall (a :: Pass) (b :: Pass). HsValBindsLR (GhcPass a) (GhcPass b) #

emptyLHsBinds :: forall (idL :: Pass) idR. LHsBindsLR (GhcPass idL) idR #

isEmptyLHsBinds :: forall (idL :: Pass) idR. LHsBindsLR (GhcPass idL) idR -> Bool #

plusHsValBinds :: forall (a :: Pass). HsValBinds (GhcPass a) -> HsValBinds (GhcPass a) -> HsValBinds (GhcPass a) #

ppr_monobind :: forall (idL :: Pass) (idR :: Pass). (OutputableBndrId idL, OutputableBndrId idR) => HsBindLR (GhcPass idL) (GhcPass idR) -> SDoc #

pprTicks :: SDoc -> SDoc -> SDoc #

isEmptyIPBindsPR :: forall (p :: Pass). HsIPBinds (GhcPass p) -> Bool #

isEmptyIPBindsTc :: HsIPBinds GhcTc -> Bool #

noSpecPrags :: TcSpecPrags #

hasSpecPrags :: TcSpecPrags -> Bool #

isDefaultMethod :: TcSpecPrags -> Bool #

ppr_sig :: forall (p :: Pass). OutputableBndrId p => Sig (GhcPass p) -> SDoc #

hsSigDoc :: forall (p :: Pass). IsPass p => Sig (GhcPass p) -> SDoc #

extractSpecPragName :: SourceText -> String #

Extracts the name for a SPECIALIZE instance pragma. In `hsSigDoc`, the src field of `SpecInstSig` signature contains the SourceText for a SPECIALIZE instance pragma of the form: "SourceText {-# SPECIALIZE"

Extraction ensures that all variants of the pragma name (with a `Z` or an `S`) are output exactly as used in the pragma.

pragBrackets :: SDoc -> SDoc #

pragSrcBrackets :: SourceText -> String -> SDoc -> SDoc #

Using SourceText in case the pragma was spelled differently or used mixed case

pprVarSig :: OutputableBndr id => [id] -> SDoc -> SDoc #

pprSpec :: OutputableBndr id => id -> SDoc -> InlinePragma -> SDoc #

pprTcSpecPrags :: TcSpecPrags -> SDoc #

pprMinimalSig :: OutputableBndr name => LBooleanFormula (GenLocated l name) -> SDoc #

data ConPatTc #

This is the extension field for ConPat, added after typechecking It adds quite a few extra fields, to support elaboration of pattern matching.

Constructors

ConPatTc |

Fields

- cpt_arg_tys :: [Type]

  The universal arg types 1-1 with the universal tyvars of the constructor/pattern synonym Use (conLikeResTy pat_con cpt_arg_tys) to get the type of the pattern

- cpt_tvs :: [TyVar]

  Existentially bound type variables in correctly-scoped order e.g. [k:* x:k]

- cpt_dicts :: [EvVar]

  Ditto *coercion variables* and *dictionaries* One reason for putting coercion variable here I think is to ensure their kinds are zonked

- cpt_binds :: TcEvBinds

  Bindings involving those dictionaries

- cpt_wrap :: HsWrapper

  Extra wrapper to pass to the matcher Only relevant for pattern-synonyms; ignored for data cons

data HsPatExpansion a b #

Constructors

HsPatExpanded a b |

#### Instances

Instances details

(Data a, Data b) => Data (HsPatExpansion a b) |

Instance details

Defined in GHC.Hs.Pat

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> HsPatExpansion a b -> c (HsPatExpansion a b) #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsPatExpansion a b) #

toConstr :: HsPatExpansion a b -> Constr #

dataTypeOf :: HsPatExpansion a b -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsPatExpansion a b)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsPatExpansion a b)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> HsPatExpansion a b -> HsPatExpansion a b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPatExpansion a b -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPatExpansion a b -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsPatExpansion a b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsPatExpansion a b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsPatExpansion a b -> m (HsPatExpansion a b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPatExpansion a b -> m (HsPatExpansion a b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPatExpansion a b -> m (HsPatExpansion a b) #

(Outputable a, Outputable b) => Outputable (HsPatExpansion a b) |
Instance details Defined in GHC.Hs.Pat Methods ppr :: HsPatExpansion a b -> SDoc #

data XXPatGhcTc #

Extension constructor for Pat, added after typechecking.

Constructors

CoPat | Coercion Pattern (translation only) During desugaring a (CoPat co pat) turns into a cast with `co` on the scrutinee, followed by a match on `pat`.

Fields

- co_cpt_wrap :: HsWrapper

  Coercion Pattern If co :: t1 ~ t2, p :: t2, then (CoPat co p) :: t1

- co_pat_inner :: Pat GhcTc

  Why not LPat? Ans: existing locn will do

- co_pat_ty :: Type

  Type of whole pattern, t1

ExpansionPat (Pat GhcRn) (Pat GhcTc) | Pattern expansion: original pattern, and desugared pattern, for RebindableSyntax and other overloaded syntax such as OverloadedLists. See Note [Rebindable syntax and HsExpansion].

data EpAnnSumPat #

Constructors

EpAnnSumPat |

Fields

- sumPatParens :: [AddEpAnn]
- sumPatVbarsBefore :: [EpaLocation]
- sumPatVbarsAfter :: [EpaLocation]

#### Instances

Instances details

Data EpAnnSumPat |

Instance details

Defined in GHC.Hs.Pat

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpAnnSumPat -> c EpAnnSumPat #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpAnnSumPat #

toConstr :: EpAnnSumPat -> Constr #

dataTypeOf :: EpAnnSumPat -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpAnnSumPat) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpAnnSumPat) #

gmapT :: (forall b. Data b => b -> b) -> EpAnnSumPat -> EpAnnSumPat #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnSumPat -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnSumPat -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpAnnSumPat -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpAnnSumPat -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpAnnSumPat -> m EpAnnSumPat #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnSumPat -> m EpAnnSumPat #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnSumPat -> m EpAnnSumPat #

hsRecFieldId :: HsRecField GhcTc arg -> Id #

hsRecUpdFieldRdr :: forall (p :: Pass) q. HsRecUpdField (GhcPass p) q -> Located RdrName #

hsRecUpdFieldId :: HsFieldBind (LAmbiguousFieldOcc GhcTc) arg -> Located Id #

hsRecUpdFieldOcc :: HsFieldBind (LAmbiguousFieldOcc GhcTc) arg -> LFieldOcc GhcTc #

pprParendLPat :: forall (p :: Pass). OutputableBndrId p => PprPrec -> LPat (GhcPass p) -> SDoc #

pprConArgs :: forall (p :: Pass). (OutputableBndrId p, Outputable (Anno (IdGhcP p))) => HsConPatDetails (GhcPass p) -> SDoc #

mkPrefixConPat :: DataCon -> [LPat GhcTc] -> [Type] -> LPat GhcTc #

mkNilPat :: Type -> LPat GhcTc #

mkCharLitPat :: SourceText -> Char -> LPat GhcTc #

isBangedLPat :: forall (p :: Pass). LPat (GhcPass p) -> Bool #

looksLazyPatBind :: HsBind GhcTc -> Bool #

isIrrefutableHsPat #

Arguments

:: forall (p :: Pass). OutputableBndrId p |
=> Bool | Are we in a `-XStrict` context? See Note [-XStrict and irrefutability]
-> LPat (GhcPass p) |
-> Bool |

(isIrrefutableHsPat p) is true if matching against p cannot fail in the sense of falling through to the next pattern. (NB: this is not quite the same as the (silly) defn in 3.17.2 of the Haskell 98 report.)

WARNING: isIrrefutableHsPat returns False if it's in doubt. Specifically on a ConPatIn, which is what it sees for a (LPat Name) in the renamer, it doesn't know the size of the constructor family, so it returns False. Result: only tuple patterns are considered irrefutable at the renamer stage.

But if it returns True, the pattern is definitely irrefutable

isSimplePat :: forall (x :: Pass). LPat (GhcPass x) -> Maybe (IdP (GhcPass x)) #

Is the pattern any of combination of:

- (pat)
- pat :: Type
- ~pat
- !pat
- x (variable)

isBoringHsPat :: forall (p :: Pass). OutputableBndrId p => LPat (GhcPass p) -> Bool #

Is this pattern boring from the perspective of pattern-match checking, i.e. introduces no new pieces of long-dinstance information which could influence pattern-match checking?

See Note [Boring patterns].

patNeedsParens :: forall (p :: Pass). IsPass p => PprPrec -> Pat (GhcPass p) -> Bool #

``patNeedsParens` p pat` returns `True` if the pattern `pat` needs parentheses under precedence `p`.

gParPat :: forall (pass :: Pass). LPat (GhcPass pass) -> Pat (GhcPass pass) #

Parenthesize a pattern without token information

parenthesizePat :: forall (p :: Pass). IsPass p => PprPrec -> LPat (GhcPass p) -> LPat (GhcPass p) #

``parenthesizePat` p pat` checks if ``patNeedsParens` p pat` is true, and if so, surrounds `pat` with a `ParPat`. Otherwise, it simply returns `pat`.

collectEvVarsPats :: [Pat GhcTc] -> Bag EvVar #

collectEvVarsPat :: Pat GhcTc -> Bag EvVar #

data HsRuleAnn #

Constructors

HsRuleAnn |

Fields

- ra_tyanns :: Maybe (AddEpAnn, AddEpAnn)

  The locations of `forall` and `.` for forall'd type vars Using AddEpAnn to capture possible unicode variants

- ra_tmanns :: Maybe (AddEpAnn, AddEpAnn)

  The locations of `forall` and `.` for forall'd term vars Using AddEpAnn to capture possible unicode variants

- ra_rest :: [AddEpAnn]

#### Instances

Instances details

Data HsRuleAnn |

Instance details

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 |
Instance details Defined in GHC.Hs.Decls Methods (==) :: HsRuleAnn -> HsRuleAnn -> Bool # (/=) :: HsRuleAnn -> HsRuleAnn -> Bool #

data HsRuleRn #

Constructors

HsRuleRn NameSet NameSet |

#### Instances

Instances details

Data HsRuleRn |

Instance details

Defined in GHC.Hs.Decls

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsRuleRn -> c HsRuleRn #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsRuleRn #

toConstr :: HsRuleRn -> Constr #

dataTypeOf :: HsRuleRn -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsRuleRn) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsRuleRn) #

gmapT :: (forall b. Data b => b -> b) -> HsRuleRn -> HsRuleRn #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsRuleRn -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsRuleRn -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsRuleRn -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsRuleRn -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsRuleRn -> m HsRuleRn #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsRuleRn -> m HsRuleRn #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsRuleRn -> m HsRuleRn #

data XViaStrategyPs #

Constructors

XViaStrategyPs (EpAnn [AddEpAnn]) (LHsSigType GhcPs) |

#### Instances

Instances details

Outputable XViaStrategyPs |
Instance details Defined in GHC.Hs.Decls Methods ppr :: XViaStrategyPs -> SDoc #

data DataDeclRn #

Constructors

DataDeclRn |

Fields

- tcdDataCusk :: Bool

  does this have a CUSK? See Note [CUSKs: complete user-supplied kind signatures]

- tcdFVs :: NameSet

#### Instances

Instances details

Data DataDeclRn |

Instance details

Defined in GHC.Hs.Decls

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DataDeclRn -> c DataDeclRn #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DataDeclRn #

toConstr :: DataDeclRn -> Constr #

dataTypeOf :: DataDeclRn -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DataDeclRn) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DataDeclRn) #

gmapT :: (forall b. Data b => b -> b) -> DataDeclRn -> DataDeclRn #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DataDeclRn -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DataDeclRn -> r #

gmapQ :: (forall d. Data d => d -> u) -> DataDeclRn -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DataDeclRn -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DataDeclRn -> m DataDeclRn #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDeclRn -> m DataDeclRn #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DataDeclRn -> m DataDeclRn #

partitionBindsAndSigs :: [LHsDecl GhcPs] -> (LHsBinds GhcPs, [LSig GhcPs], [LFamilyDecl GhcPs], [LTyFamInstDecl GhcPs], [LDataFamInstDecl GhcPs], [LDocDecl GhcPs]) #

Partition a list of HsDecls into function/pattern bindings, signatures, type family declarations, type family instances, and documentation comments.

Panics when given a declaration that cannot be put into any of the output groups.

The primary use of this function is to implement `cvBindsAndSigs`.

emptyRdrGroup :: forall (p :: Pass). HsGroup (GhcPass p) #

emptyRnGroup :: forall (p :: Pass). HsGroup (GhcPass p) #

hsGroupTopLevelFixitySigs :: forall (p :: Pass). HsGroup (GhcPass p) -> [LFixitySig (GhcPass p)] #

The fixity signatures for each top-level declaration and class method in an `HsGroup`. See Note [Top-level fixity signatures in an HsGroup]

appendGroups :: forall (p :: Pass). HsGroup (GhcPass p) -> HsGroup (GhcPass p) -> HsGroup (GhcPass p) #

tyFamInstDeclName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyFamInstDecl (GhcPass p) -> IdP (GhcPass p) #

tyFamInstDeclLName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyFamInstDecl (GhcPass p) -> LocatedN (IdP (GhcPass p)) #

tyClDeclLName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyClDecl (GhcPass p) -> LocatedN (IdP (GhcPass p)) #

countTyClDecls :: [TyClDecl pass] -> (Int, Int, Int, Int, Int) #

tcdName :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => TyClDecl (GhcPass p) -> IdP (GhcPass p) #

hsDeclHasCusk :: TyClDecl GhcRn -> Bool #

Does this declaration have a complete, user-supplied kind signature? See Note [CUSKs: complete user-supplied kind signatures]

pp_vanilla_decl_head :: forall (p :: Pass). OutputableBndrId p => XRec (GhcPass p) (IdP (GhcPass p)) -> LHsQTyVars (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc #

pprTyClDeclFlavour :: forall (p :: Pass). TyClDecl (GhcPass p) -> SDoc #

familyDeclLName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> XRec (GhcPass p) (IdP (GhcPass p)) #

familyDeclName :: forall (p :: Pass). FamilyDecl (GhcPass p) -> IdP (GhcPass p) #

famResultKindSignature :: forall (p :: Pass). FamilyResultSig (GhcPass p) -> Maybe (LHsKind (GhcPass p)) #

resultVariableName :: forall (a :: Pass). FamilyResultSig (GhcPass a) -> Maybe (IdP (GhcPass a)) #

Maybe return name of the result type variable

derivStrategyName :: DerivStrategy a -> SDoc #

A short description of a `DerivStrategy'`.

standaloneKindSigName :: forall (p :: Pass). StandaloneKindSig (GhcPass p) -> IdP (GhcPass p) #

getConNames :: ConDecl GhcRn -> [LocatedN Name] #

getRecConArgs_maybe :: ConDecl GhcRn -> Maybe (LocatedL [LConDeclField GhcRn]) #

Return ``Just` fields` if a data constructor declaration uses record syntax (i.e., `RecCon`), where `fields` are the field selectors. Otherwise, return `Nothing`.

hsConDeclTheta :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> [LHsType (GhcPass p)] #

ppDataDefnHeader :: forall (p :: Pass). OutputableBndrId p => (Maybe (LHsContext (GhcPass p)) -> SDoc) -> HsDataDefn (GhcPass p) -> SDoc #

pprTyFamInstDecl :: forall (p :: Pass). OutputableBndrId p => TopLevelFlag -> TyFamInstDecl (GhcPass p) -> SDoc #

pprDataFamInstFlavour :: forall (p :: Pass). DataFamInstDecl (GhcPass p) -> SDoc #

pprHsFamInstLHS :: forall (p :: Pass). OutputableBndrId p => IdP (GhcPass p) -> HsOuterFamEqnTyVarBndrs (GhcPass p) -> HsTyPats (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc #

instDeclDataFamInsts :: forall (p :: Pass). [LInstDecl (GhcPass p)] -> [DataFamInstDecl (GhcPass p)] #

newOrDataToFlavour :: NewOrData -> TyConFlavour tc #

Convert a `NewOrData` to a `TyConFlavour`

anyLConIsGadt :: Foldable f => f (GenLocated l (ConDecl pass)) -> Bool #

foldDerivStrategy :: forall p (pass :: Pass) r. p ~ GhcPass pass => r -> (XViaStrategy p -> r) -> DerivStrategy p -> r #

Eliminate a `DerivStrategy`.

mapDerivStrategy :: forall p (pass :: Pass). p ~ GhcPass pass => (XViaStrategy p -> XViaStrategy p) -> DerivStrategy p -> DerivStrategy p #

Map over the `via` type if dealing with `ViaStrategy`. Otherwise, return the `DerivStrategy` unchanged.

flattenRuleDecls :: forall (p :: Pass). [LRuleDecls (GhcPass p)] -> [LRuleDecl (GhcPass p)] #

pprFullRuleName :: SourceText -> GenLocated a RuleName -> SDoc #

roleAnnotDeclName :: forall (p :: Pass). RoleAnnotDecl (GhcPass p) -> IdP (GhcPass p) #

data PendingTcSplice #

Pending Type-checker Splice

Constructors

PendingTcSplice SplicePointName (LHsExpr GhcTc) |

#### Instances

Instances details

ToHie PendingTcSplice |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: PendingTcSplice -> HieM [HieAST Type]
Outputable PendingTcSplice |
Instance details Defined in GHC.Hs.Expr Methods ppr :: PendingTcSplice -> SDoc #

data PendingRnSplice #

Pending Renamer Splice

Constructors

PendingRnSplice UntypedSpliceFlavour SplicePointName (LHsExpr GhcRn) |

#### Instances

Instances details

ToHie PendingRnSplice |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: PendingRnSplice -> HieM [HieAST Type]
Outputable PendingRnSplice |
Instance details Defined in GHC.Hs.Expr Methods ppr :: PendingRnSplice -> SDoc #

data UntypedSpliceFlavour #

Constructors

UntypedExpSplice |
UntypedPatSplice |
UntypedTypeSplice |
UntypedDeclSplice |

#### Instances

Instances details

Data UntypedSpliceFlavour |

Instance details

Defined in GHC.Hs.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 #

data DelayedSplice #

Constructors

DelayedSplice TcLclEnv (LHsExpr GhcRn) TcType (LHsExpr GhcTc) |

#### Instances

Instances details

Data DelayedSplice |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DelayedSplice -> c DelayedSplice #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DelayedSplice #

toConstr :: DelayedSplice -> Constr #

dataTypeOf :: DelayedSplice -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DelayedSplice) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DelayedSplice) #

gmapT :: (forall b. Data b => b -> b) -> DelayedSplice -> DelayedSplice #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DelayedSplice -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DelayedSplice -> r #

gmapQ :: (forall d. Data d => d -> u) -> DelayedSplice -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DelayedSplice -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DelayedSplice -> m DelayedSplice #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DelayedSplice -> m DelayedSplice #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DelayedSplice -> m DelayedSplice #

data XBindStmtTc #

Constructors

XBindStmtTc |

Fields

- xbstc_bindOp :: SyntaxExpr GhcTc
- xbstc_boundResultType :: Type
- xbstc_boundResultMult :: Mult
- xbstc_failOp :: FailOperator GhcTc

data XBindStmtRn #

Constructors

XBindStmtRn |

Fields

- xbsrn_bindOp :: SyntaxExpr GhcRn
- xbsrn_failOp :: FailOperator GhcRn

data RecStmtTc #

Constructors

RecStmtTc |

Fields

- recS_bind_ty :: Type
- recS_later_rets :: [PostTcExpr]
- recS_rec_rets :: [PostTcExpr]
- recS_ret_ty :: Type

data GrhsAnn #

Constructors

GrhsAnn |

Fields

- ga_vbar :: Maybe EpaLocation
- ga_sep :: AddEpAnn

  Match separator location

#### Instances

Instances details

Data GrhsAnn |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GrhsAnn -> c GrhsAnn #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c GrhsAnn #

toConstr :: GrhsAnn -> Constr #

dataTypeOf :: GrhsAnn -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c GrhsAnn) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GrhsAnn) #

gmapT :: (forall b. Data b => b -> b) -> GrhsAnn -> GrhsAnn #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GrhsAnn -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GrhsAnn -> r #

gmapQ :: (forall d. Data d => d -> u) -> GrhsAnn -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> GrhsAnn -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> GrhsAnn -> m GrhsAnn #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GrhsAnn -> m GrhsAnn #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GrhsAnn -> m GrhsAnn #

Outputable GrhsAnn |
Instance details Defined in GHC.Hs.Expr Methods ppr :: GrhsAnn -> SDoc #

data MatchGroupTc #

Constructors

MatchGroupTc |

Fields

- mg_arg_tys :: [Scaled Type]
- mg_res_ty :: Type
- mg_origin :: Origin

#### Instances

Instances details

Data MatchGroupTc |

Instance details

Defined in GHC.Hs.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 #

data CmdTopTc #

Constructors

CmdTopTc Type Type (CmdSyntaxTable GhcTc) |

type CmdSyntaxTable p = [(Name, HsExpr p)] #

Command Syntax Table (for Arrow syntax)

data HsExpansion orig expanded #

Constructors

HsExpanded orig expanded |

#### Instances

Instances details

(Data orig, Data expanded) => Data (HsExpansion orig expanded) |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsExpansion orig expanded -> c (HsExpansion orig expanded) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsExpansion orig expanded) #

toConstr :: HsExpansion orig expanded -> Constr #

dataTypeOf :: HsExpansion orig expanded -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsExpansion orig expanded)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsExpansion orig expanded)) #

gmapT :: (forall b. Data b => b -> b) -> HsExpansion orig expanded -> HsExpansion orig expanded #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsExpansion orig expanded -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsExpansion orig expanded -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsExpansion orig expanded -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsExpansion orig expanded -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsExpansion orig expanded -> m (HsExpansion orig expanded) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsExpansion orig expanded -> m (HsExpansion orig expanded) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsExpansion orig expanded -> m (HsExpansion orig expanded) #

(Outputable a, Outputable b) => Outputable (HsExpansion a b) | Just print the original expression (the `a`).
Instance details Defined in GHC.Hs.Expr Methods ppr :: HsExpansion a b -> SDoc #

data XXExprGhcTc #

Constructors

WrapExpr !(HsWrap HsExpr) |
ExpansionExpr !(HsExpansion (HsExpr GhcRn) (HsExpr GhcTc)) |
ConLikeTc ConLike [TcTyVar] [Scaled TcType] |
HsTick CoreTickish (LHsExpr GhcTc) |
HsBinTick Int Int (LHsExpr GhcTc) |

#### Instances

Instances details

Outputable XXExprGhcTc |
Instance details Defined in GHC.Hs.Expr Methods ppr :: XXExprGhcTc -> SDoc #

data AnnsIf #

Constructors

AnnsIf |

Fields

- aiIf :: EpaLocation
- aiThen :: EpaLocation
- aiElse :: EpaLocation
- aiThenSemi :: Maybe EpaLocation
- aiElseSemi :: Maybe EpaLocation

#### Instances

Instances details

Data AnnsIf |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnsIf -> c AnnsIf #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnsIf #

toConstr :: AnnsIf -> Constr #

dataTypeOf :: AnnsIf -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnsIf) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnsIf) #

gmapT :: (forall b. Data b => b -> b) -> AnnsIf -> AnnsIf #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnsIf -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnsIf -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnsIf -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnsIf -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnsIf -> m AnnsIf #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnsIf -> m AnnsIf #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnsIf -> m AnnsIf #

data AnnProjection #

Constructors

AnnProjection |

Fields

- apOpen :: EpaLocation

  '('

- apClose :: EpaLocation

  ')'

#### Instances

Instances details

Data AnnProjection |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnProjection -> c AnnProjection #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnProjection #

toConstr :: AnnProjection -> Constr #

dataTypeOf :: AnnProjection -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnProjection) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnProjection) #

gmapT :: (forall b. Data b => b -> b) -> AnnProjection -> AnnProjection #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnProjection -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnProjection -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnProjection -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnProjection -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnProjection -> m AnnProjection #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnProjection -> m AnnProjection #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnProjection -> m AnnProjection #

data AnnFieldLabel #

Constructors

AnnFieldLabel |

Fields

- afDot :: Maybe EpaLocation

#### Instances

Instances details

Data AnnFieldLabel |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnFieldLabel -> c AnnFieldLabel #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnFieldLabel #

toConstr :: AnnFieldLabel -> Constr #

dataTypeOf :: AnnFieldLabel -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnFieldLabel) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnFieldLabel) #

gmapT :: (forall b. Data b => b -> b) -> AnnFieldLabel -> AnnFieldLabel #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnFieldLabel -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnFieldLabel -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnFieldLabel -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnFieldLabel -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnFieldLabel -> m AnnFieldLabel #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnFieldLabel -> m AnnFieldLabel #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnFieldLabel -> m AnnFieldLabel #

data AnnExplicitSum #

Constructors

AnnExplicitSum |

Fields

- aesOpen :: EpaLocation
- aesBarsBefore :: [EpaLocation]
- aesBarsAfter :: [EpaLocation]
- aesClose :: EpaLocation

#### Instances

Instances details

Data AnnExplicitSum |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnExplicitSum -> c AnnExplicitSum #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnExplicitSum #

toConstr :: AnnExplicitSum -> Constr #

dataTypeOf :: AnnExplicitSum -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnExplicitSum) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnExplicitSum) #

gmapT :: (forall b. Data b => b -> b) -> AnnExplicitSum -> AnnExplicitSum #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnExplicitSum -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnExplicitSum -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnExplicitSum -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnExplicitSum -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnExplicitSum -> m AnnExplicitSum #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnExplicitSum -> m AnnExplicitSum #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnExplicitSum -> m AnnExplicitSum #

data family HsRecUpdParent x #

Information about the parent of a record update:

- the parent type constructor or pattern synonym,
- the relevant con-likes,
- the field labels.

#### Instances

Instances details

data HsRecUpdParent GhcPs |
Instance details Defined in GHC.Hs.Expr data HsRecUpdParent GhcPs
data HsRecUpdParent GhcRn |

Instance details

Defined in GHC.Hs.Expr

data HsRecUpdParent GhcRn = RnRecUpdParent {

- rnRecUpdLabels :: NonEmpty FieldGlobalRdrElt
- rnRecUpdCons :: UniqSet ConLikeName

}

data HsRecUpdParent GhcTc |

Instance details

Defined in GHC.Hs.Expr

data HsRecUpdParent GhcTc = TcRecUpdParent {

- tcRecUpdParent :: RecSelParent
- tcRecUpdLabels :: NonEmpty FieldGlobalRdrElt
- tcRecUpdCons :: UniqSet ConLike

}

data EpAnnUnboundVar #

Constructors

EpAnnUnboundVar |

Fields

- hsUnboundBackquotes :: (EpaLocation, EpaLocation)
- hsUnboundHole :: EpaLocation

#### Instances

Instances details

Data EpAnnUnboundVar |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpAnnUnboundVar -> c EpAnnUnboundVar #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpAnnUnboundVar #

toConstr :: EpAnnUnboundVar -> Constr #

dataTypeOf :: EpAnnUnboundVar -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpAnnUnboundVar) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpAnnUnboundVar) #

gmapT :: (forall b. Data b => b -> b) -> EpAnnUnboundVar -> EpAnnUnboundVar #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnUnboundVar -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnUnboundVar -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpAnnUnboundVar -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpAnnUnboundVar -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpAnnUnboundVar -> m EpAnnUnboundVar #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnUnboundVar -> m EpAnnUnboundVar #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnUnboundVar -> m EpAnnUnboundVar #

data EpAnnHsCase #

Constructors

EpAnnHsCase |

Fields

- hsCaseAnnCase :: EpaLocation
- hsCaseAnnOf :: EpaLocation
- hsCaseAnnsRest :: [AddEpAnn]

#### Instances

Instances details

Data EpAnnHsCase |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpAnnHsCase -> c EpAnnHsCase #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpAnnHsCase #

toConstr :: EpAnnHsCase -> Constr #

dataTypeOf :: EpAnnHsCase -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpAnnHsCase) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpAnnHsCase) #

gmapT :: (forall b. Data b => b -> b) -> EpAnnHsCase -> EpAnnHsCase #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnHsCase -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnHsCase -> r #

gmapQ :: (forall d. Data d => d -> u) -> EpAnnHsCase -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpAnnHsCase -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpAnnHsCase -> m EpAnnHsCase #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnHsCase -> m EpAnnHsCase #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnHsCase -> m EpAnnHsCase #

data HsBracketTc #

Constructors

HsBracketTc |

Fields

- hsb_quote :: HsQuote GhcRn
- hsb_ty :: Type
- hsb_wrap :: Maybe QuoteWrapper
- hsb_splices :: [PendingTcSplice]

data HsWrap (hs_syn :: Type -> Type) #

HsWrap appears only in typechecker output

Constructors

HsWrap HsWrapper (hs_syn GhcTc) |

#### Instances

Instances details

(Data (hs_syn GhcTc), Typeable hs_syn) => Data (HsWrap hs_syn) |

Instance details

Defined in GHC.Hs.Expr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsWrap hs_syn -> c (HsWrap hs_syn) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsWrap hs_syn) #

toConstr :: HsWrap hs_syn -> Constr #

dataTypeOf :: HsWrap hs_syn -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsWrap hs_syn)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsWrap hs_syn)) #

gmapT :: (forall b. Data b => b -> b) -> HsWrap hs_syn -> HsWrap hs_syn #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsWrap hs_syn -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsWrap hs_syn -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsWrap hs_syn -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsWrap hs_syn -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsWrap hs_syn -> m (HsWrap hs_syn) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWrap hs_syn -> m (HsWrap hs_syn) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWrap hs_syn -> m (HsWrap hs_syn) #

data SyntaxExprTc #

An expression with wrappers, used for rebindable syntax

This should desugar to

    syn_res_wrap $ syn_expr (syn_arg_wraps[0] arg0)
                            (syn_arg_wraps[1] arg1) ...

where the actual arguments come from elsewhere in the AST.

Constructors

SyntaxExprTc |

Fields

- syn_expr :: HsExpr GhcTc
- syn_arg_wraps :: [HsWrapper]
- syn_res_wrap :: HsWrapper

NoSyntaxExprTc |

#### Instances

Instances details

Outputable SyntaxExprTc |
Instance details Defined in GHC.Hs.Expr Methods ppr :: SyntaxExprTc -> SDoc #

data SyntaxExprRn #

The function to use in rebindable syntax. See Note [NoSyntaxExpr].

Constructors

SyntaxExprRn (HsExpr GhcRn) |
NoSyntaxExprRn |

#### Instances

Instances details

Outputable SyntaxExprRn |
Instance details Defined in GHC.Hs.Expr Methods ppr :: SyntaxExprRn -> SDoc #

type family SyntaxExprGhc (p :: Pass) = (r :: Type) | r -> p where ... #

Equations

SyntaxExprGhc 'Parsed = NoExtField |
SyntaxExprGhc 'Renamed = SyntaxExprRn |
SyntaxExprGhc 'Typechecked = SyntaxExprTc |

type PostTcTable = [(Name, PostTcExpr)] #

Post-Type checking Table

We use a PostTcTable where there are a bunch of pieces of evidence, more than is convenient to keep individually.

type PostTcExpr = HsExpr GhcTc #

Post-Type checking Expression

PostTcExpr is an evidence expression attached to the syntax tree by the type checker (c.f. postTcType).

noExpr :: forall (p :: Pass). HsExpr (GhcPass p) #

This is used for rebindable-syntax pieces that are too polymorphic for tcSyntaxOp (trS_fmap and the mzip in ParStmt)

noSyntaxExpr :: forall (p :: Pass). IsPass p => SyntaxExpr (GhcPass p) #

mkSyntaxExpr :: HsExpr GhcRn -> SyntaxExprRn #

Make a 'SyntaxExpr GhcRn' from an expression Used only in getMonadFailOp. See Note [Monad fail : Rebindable syntax, overloaded strings] in GHC.Rename.Expr

mkRnSyntaxExpr :: Name -> SyntaxExprRn #

Make a `SyntaxExpr` from a `Name` (the "rn" is because this is used in the renamer).

tupArgPresent :: forall (p :: Pass). HsTupArg (GhcPass p) -> Bool #

isQuietHsExpr :: HsExpr id -> Bool #

pprBinds :: forall (idL :: Pass) (idR :: Pass). (OutputableBndrId idL, OutputableBndrId idR) => HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> SDoc #

ppr_lexpr :: forall (p :: Pass). OutputableBndrId p => LHsExpr (GhcPass p) -> SDoc #

ppr_expr :: forall (p :: Pass). OutputableBndrId p => HsExpr (GhcPass p) -> SDoc #

ppr_infix_expr :: forall (p :: Pass). OutputableBndrId p => HsExpr (GhcPass p) -> Maybe SDoc #

ppr_infix_expr_rn :: HsExpansion (HsExpr GhcRn) (HsExpr GhcRn) -> Maybe SDoc #

ppr_infix_expr_tc :: XXExprGhcTc -> Maybe SDoc #

ppr_apps :: forall (p :: Pass). OutputableBndrId p => HsExpr (GhcPass p) -> [Either (LHsExpr (GhcPass p)) (LHsWcType (NoGhcTc (GhcPass p)))] -> SDoc #

pprDebugParendExpr :: forall (p :: Pass). OutputableBndrId p => PprPrec -> LHsExpr (GhcPass p) -> SDoc #

pprParendLExpr :: forall (p :: Pass). OutputableBndrId p => PprPrec -> LHsExpr (GhcPass p) -> SDoc #

hsExprNeedsParens :: forall (p :: Pass). IsPass p => PprPrec -> HsExpr (GhcPass p) -> Bool #

``hsExprNeedsParens` p e` returns `True` if the expression `e` needs parentheses under precedence `p`.

gHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -> HsExpr (GhcPass id) #

Parenthesize an expression without token information

parenthesizeHsExpr :: forall (p :: Pass). IsPass p => PprPrec -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p) #

``parenthesizeHsExpr` p e` checks if ``hsExprNeedsParens` p e` is true, and if so, surrounds `e` with an `HsPar`. Otherwise, it simply returns `e`.

stripParensLHsExpr :: forall (p :: Pass). LHsExpr (GhcPass p) -> LHsExpr (GhcPass p) #

stripParensHsExpr :: forall (p :: Pass). HsExpr (GhcPass p) -> HsExpr (GhcPass p) #

isAtomicHsExpr :: forall (p :: Pass). IsPass p => HsExpr (GhcPass p) -> Bool #

pprLCmd :: forall (p :: Pass). OutputableBndrId p => LHsCmd (GhcPass p) -> SDoc #

pprCmd :: forall (p :: Pass). OutputableBndrId p => HsCmd (GhcPass p) -> SDoc #

isQuietHsCmd :: HsCmd id -> Bool #

ppr_lcmd :: forall (p :: Pass). OutputableBndrId p => LHsCmd (GhcPass p) -> SDoc #

ppr_cmd :: forall (p :: Pass). OutputableBndrId p => HsCmd (GhcPass p) -> SDoc #

pprCmdArg :: forall (p :: Pass). OutputableBndrId p => HsCmdTop (GhcPass p) -> SDoc #

isEmptyMatchGroup :: forall (p :: Pass) body. MatchGroup (GhcPass p) body -> Bool #

isSingletonMatchGroup :: forall (p :: Pass) body. [LMatch (GhcPass p) body] -> Bool #

Is there only one RHS in this list of matches?

matchGroupArity :: forall (id :: Pass) body. MatchGroup (GhcPass id) body -> Arity #

hsLMatchPats :: forall (id :: Pass) body. LMatch (GhcPass id) body -> [LPat (GhcPass id)] #

pprMatches :: forall (idR :: Pass) body. (OutputableBndrId idR, Outputable body) => MatchGroup (GhcPass idR) body -> SDoc #

pprMatch :: forall (idR :: Pass) body. (OutputableBndrId idR, Outputable body) => Match (GhcPass idR) body -> SDoc #

pprGRHSs :: forall (idR :: Pass) body passL. (OutputableBndrId idR, Outputable body) => HsMatchContext passL -> GRHSs (GhcPass idR) body -> SDoc #

pprGRHS :: forall (idR :: Pass) body passL. (OutputableBndrId idR, Outputable body) => HsMatchContext passL -> GRHS (GhcPass idR) body -> SDoc #

pp_rhs :: Outputable body => HsMatchContext passL -> body -> SDoc #

pprStmt :: forall (idL :: Pass) (idR :: Pass) body. (OutputableBndrId idL, OutputableBndrId idR, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA, Outputable body) => StmtLR (GhcPass idL) (GhcPass idR) body -> SDoc #

pprBindStmt :: (Outputable pat, Outputable expr) => pat -> expr -> SDoc #

pprArg :: forall (idL :: Pass). OutputableBndrId idL => ApplicativeArg (GhcPass idL) -> SDoc #

pprTransformStmt :: forall (p :: Pass). OutputableBndrId p => [IdP (GhcPass p)] -> LHsExpr (GhcPass p) -> Maybe (LHsExpr (GhcPass p)) -> SDoc #

pprTransStmt :: Outputable body => Maybe body -> body -> TransForm -> SDoc #

pprBy :: Outputable body => Maybe body -> SDoc #

pprDo :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => HsDoFlavour -> [LStmt (GhcPass p) body] -> SDoc #

pprArrowExpr :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc #

ppr_module_name_prefix :: Maybe ModuleName -> SDoc #

ppr_do_stmts :: forall (idL :: Pass) (idR :: Pass) body. (OutputableBndrId idL, OutputableBndrId idR, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA, Outputable body) => [LStmtLR (GhcPass idL) (GhcPass idR) body] -> SDoc #

pprComp :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc #

pprQuals :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc #

pprPendingSplice :: forall (p :: Pass). OutputableBndrId p => SplicePointName -> LHsExpr (GhcPass p) -> SDoc #

ppr_quasi :: OutputableBndr p => p -> FastString -> SDoc #

ppr_splice :: forall (p :: Pass). OutputableBndrId p => SDoc -> Maybe SplicePointName -> LHsExpr (GhcPass p) -> SDoc #

thBrackets :: SDoc -> SDoc -> SDoc #

thTyBrackets :: SDoc -> SDoc #

ppr_with_pending_tc_splices :: SDoc -> [PendingTcSplice] -> SDoc #

pp_dotdot :: SDoc #

lamCaseKeyword :: LamCaseVariant -> SDoc #

pprExternalSrcLoc :: (StringLiteral, (Int, Int), (Int, Int)) -> SDoc #

pprHsArrType :: HsArrAppType -> SDoc #

matchContextErrString :: forall (p :: Pass). OutputableBndrId p => HsMatchContext (GhcPass p) -> SDoc #

matchArrowContextErrString :: HsArrowMatchContext -> SDoc #

matchDoContextErrString :: HsDoFlavour -> SDoc #

pprMatchInCtxt :: forall (idR :: Pass) body. (OutputableBndrId idR, Outputable body) => Match (GhcPass idR) body -> SDoc #

pprStmtInCtxt :: forall (idL :: Pass) (idR :: Pass) (ctx :: Pass) body. (OutputableBndrId idL, OutputableBndrId idR, OutputableBndrId ctx, Outputable body, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA) => HsStmtContext (GhcPass ctx) -> StmtLR (GhcPass idL) (GhcPass idR) body -> SDoc #

matchSeparator :: HsMatchContext p -> SDoc #

pprMatchContext :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsMatchContext p -> SDoc #

pprMatchContextNoun :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsMatchContext p -> SDoc #

pprMatchContextNouns :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsMatchContext p -> SDoc #

pprArrowMatchContextNoun :: HsArrowMatchContext -> SDoc #

pprArrowMatchContextNouns :: HsArrowMatchContext -> SDoc #

pprAStmtContext :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsStmtContext p -> SDoc #

pprStmtContext :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsStmtContext p -> SDoc #

pprStmtCat :: forall (p :: Pass) body. Stmt (GhcPass p) body -> SDoc #

pprAHsDoFlavour :: HsDoFlavour -> SDoc #

pprHsDoFlavour :: HsDoFlavour -> SDoc #

prependQualified :: Maybe ModuleName -> SDoc -> SDoc #

pprFieldLabelStrings :: (UnXRec p, Outputable (XRec p FieldLabelString)) => FieldLabelStrings p -> SDoc #

pprPrefixFastString :: FastString -> SDoc #

data LConsWithFields (p :: Pass) #

A mapping from constructors to all of their fields.

See Note [Collecting record fields in data declarations].

Constructors

LConsWithFields |

Fields

- consWithFieldIndices :: [(LocatedA (IdP (GhcPass p)), Maybe [Located Int])]
- consFields :: IntMap (LFieldOcc (GhcPass p))

data TyDeclBinders (p :: Pass) #

Constructors

TyDeclBinders |

Fields

- tyDeclMainBinder :: !(LocatedA (IdP (GhcPass p)), TyConFlavour ())
- tyDeclATs :: ![(LocatedA (IdP (GhcPass p)), TyConFlavour ())]
- tyDeclOpSigs :: ![LocatedA (IdP (GhcPass p))]
- tyDeclConsWithFields :: !(LConsWithFields p)

class UnXRec p => CollectPass p where #

This class specifies how to collect variable identifiers from extension patterns in the given pass. Consumers of the GHC API that define their own passes should feel free to implement instances in order to make use of functions which depend on it.

In particular, Haddock already makes use of this, with an instance for its `DocNameI` pass so that it can reuse the code in GHC for collecting binders.

Methods

collectXXPat :: CollectFlag p -> XXPat p -> [IdP p] -> [IdP p] #

collectXXHsBindsLR :: XXHsBindsLR p pR -> [IdP p] -> [IdP p] #

collectXSplicePat :: CollectFlag p -> XSplicePat p -> [IdP p] -> [IdP p] #

#### Instances

Instances details

IsPass p => CollectPass (GhcPass p) |
Instance details Defined in GHC.Hs.Utils Methods collectXXPat :: CollectFlag (GhcPass p) -> XXPat (GhcPass p) -> [IdP (GhcPass p)] -> [IdP (GhcPass p)] # collectXXHsBindsLR :: XXHsBindsLR (GhcPass p) pR -> [IdP (GhcPass p)] -> [IdP (GhcPass p)] # collectXSplicePat :: CollectFlag (GhcPass p) -> XSplicePat (GhcPass p) -> [IdP (GhcPass p)] -> [IdP (GhcPass p)] #

data CollectFlag p where #

Indicate if evidence binders 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

mkHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #

    e => (e)

mkSimpleMatch :: forall (p :: Pass) body. (Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA, Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcAnn NoEpAnns) => HsMatchContext (GhcPass p) -> [LPat (GhcPass p)] -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p))) #

unguardedGRHSs :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcAnn NoEpAnns => SrcSpan -> LocatedA (body (GhcPass p)) -> EpAnn GrhsAnn -> GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) #

unguardedRHS :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcAnn NoEpAnns => EpAnn GrhsAnn -> SrcSpan -> LocatedA (body (GhcPass p)) -> [LGRHS (GhcPass p) (LocatedA (body (GhcPass p)))] #

mkMatchGroup :: forall (p :: Pass) body. AnnoBody p body => Origin -> LocatedL [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] -> MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) #

mkLamCaseMatchGroup :: forall (p :: Pass) body. AnnoBody p body => Origin -> LamCaseVariant -> LocatedL [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] -> MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) #

mkLocatedList :: Semigroup a => [GenLocated (SrcAnn a) e2] -> LocatedAn an [GenLocated (SrcAnn a) e2] #

mkHsApp :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #

mkHsAppWith :: forall (id :: Pass). (LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> HsExpr (GhcPass id) -> LHsExpr (GhcPass id)) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #

mkHsApps :: forall (id :: Pass). LHsExpr (GhcPass id) -> [LHsExpr (GhcPass id)] -> LHsExpr (GhcPass id) #

mkHsAppsWith :: forall (id :: Pass). (LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> HsExpr (GhcPass id) -> LHsExpr (GhcPass id)) -> LHsExpr (GhcPass id) -> [LHsExpr (GhcPass id)] -> LHsExpr (GhcPass id) #

mkHsAppType :: LHsExpr GhcRn -> LHsWcType GhcRn -> LHsExpr GhcRn #

mkHsAppTypes :: LHsExpr GhcRn -> [LHsWcType GhcRn] -> LHsExpr GhcRn #

mkHsLam :: forall (p :: Pass). (IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ Origin) => [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p) #

mkHsLams :: [TyVar] -> [EvVar] -> LHsExpr GhcTc -> LHsExpr GhcTc #

mkHsCaseAlt :: forall (p :: Pass) body. (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcAnn NoEpAnns, Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA) => LPat (GhcPass p) -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p))) #

A simple case alternative with a single pattern, no binds, no guards; pre-typechecking

nlHsTyApp :: Id -> [Type] -> LHsExpr GhcTc #

nlHsTyApps :: Id -> [Type] -> [LHsExpr GhcTc] -> LHsExpr GhcTc #

mkLHsPar :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #

Wrap in parens if ``hsExprNeedsParens` appPrec` says it needs them So `f x` becomes `(f x)`, but `3` stays as `3`.

mkParPat :: forall (p :: Pass). IsPass p => LPat (GhcPass p) -> LPat (GhcPass p) #

nlParPat :: forall (name :: Pass). LPat (GhcPass name) -> LPat (GhcPass name) #

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 #

mkHsIntegral :: IntegralLit -> HsOverLit GhcPs #

mkHsFractional :: FractionalLit -> HsOverLit GhcPs #

mkHsIsString :: SourceText -> FastString -> HsOverLit GhcPs #

mkHsDo :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> HsExpr GhcPs #

mkHsDoAnns :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> EpAnn AnnList -> HsExpr GhcPs #

mkHsComp :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> HsExpr GhcPs #

mkHsCompAnns :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> EpAnn AnnList -> HsExpr GhcPs #

mkHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> EpAnn AnnsIf -> HsExpr GhcPs #

mkHsCmdIf :: LHsExpr GhcPs -> LHsCmd GhcPs -> LHsCmd GhcPs -> EpAnn AnnsIf -> HsCmd GhcPs #

mkNPat :: LocatedAn NoEpAnns (HsOverLit GhcPs) -> Maybe (SyntaxExpr GhcPs) -> EpAnn [AddEpAnn] -> Pat GhcPs #

mkNPlusKPat :: LocatedN RdrName -> LocatedAn NoEpAnns (HsOverLit GhcPs) -> EpAnn EpaLocation -> Pat GhcPs #

emptyTransStmt :: EpAnn [AddEpAnn] -> StmtLR GhcPs GhcPs (LHsExpr 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) #

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) #

mkLastStmt :: forall (idR :: Pass) bodyR (idL :: Pass). IsPass idR => LocatedA (bodyR (GhcPass idR)) -> StmtLR (GhcPass idL) (GhcPass idR) (LocatedA (bodyR (GhcPass idR))) #

mkBodyStmt :: forall bodyR (idL :: Pass). LocatedA (bodyR GhcPs) -> StmtLR (GhcPass idL) GhcPs (LocatedA (bodyR GhcPs)) #

mkPsBindStmt :: EpAnn [AddEpAnn] -> LPat GhcPs -> LocatedA (bodyR GhcPs) -> StmtLR GhcPs GhcPs (LocatedA (bodyR GhcPs)) #

mkRnBindStmt :: LPat GhcRn -> LocatedA (bodyR GhcRn) -> StmtLR GhcRn GhcRn (LocatedA (bodyR GhcRn)) #

mkTcBindStmt :: LPat GhcTc -> LocatedA (bodyR GhcTc) -> StmtLR GhcTc GhcTc (LocatedA (bodyR GhcTc)) #

unitRecStmtTc :: RecStmtTc #

emptyRecStmt :: forall (idL :: Pass) bodyR. Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL => StmtLR (GhcPass idL) GhcPs bodyR #

emptyRecStmtName :: Anno [GenLocated (Anno (StmtLR GhcRn GhcRn bodyR)) (StmtLR GhcRn GhcRn bodyR)] ~ SrcSpanAnnL => StmtLR GhcRn GhcRn bodyR #

emptyRecStmtId :: Stmt GhcTc (LocatedA (HsCmd GhcTc)) #

mkLetStmt :: EpAnn [AddEpAnn] -> HsLocalBinds GhcPs -> StmtLR GhcPs GhcPs (LocatedA b) #

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.

mkHsString :: forall (p :: Pass). String -> HsLit (GhcPass p) #

mkHsStringFS :: forall (p :: Pass). FastString -> HsLit (GhcPass p) #

mkHsStringPrimLit :: forall (p :: Pass). FastString -> HsLit (GhcPass p) #

mkHsCharPrimLit :: forall (p :: Pass). Char -> HsLit (GhcPass p) #

mkConLikeTc :: ConLike -> HsExpr GhcTc #

nlHsVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LHsExpr (GhcPass p) #

nl_HsVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> HsExpr (GhcPass p) #

nlHsDataCon :: DataCon -> LHsExpr GhcTc #

NB: Only for `LHsExpr` `Id`.

nlHsLit :: forall (p :: Pass). HsLit (GhcPass p) -> LHsExpr (GhcPass p) #

nlHsIntLit :: forall (p :: Pass). Integer -> LHsExpr (GhcPass p) #

nlVarPat :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LPat (GhcPass p) #

nlLitPat :: HsLit GhcPs -> LPat GhcPs #

nlHsApp :: forall (id :: Pass). IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #

nlHsSyntaxApps :: SyntaxExprTc -> [LHsExpr GhcTc] -> LHsExpr GhcTc #

nlHsApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [LHsExpr (GhcPass p)] -> LHsExpr (GhcPass p) #

nlHsVarApps :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> [IdP (GhcPass p)] -> LHsExpr (GhcPass p) #

nlConVarPat :: RdrName -> [RdrName] -> LPat GhcPs #

nlConVarPatName :: Name -> [Name] -> LPat GhcRn #

nlInfixConPat :: RdrName -> LPat GhcPs -> LPat GhcPs -> LPat GhcPs #

nlConPat :: RdrName -> [LPat GhcPs] -> LPat GhcPs #

nlConPatName :: Name -> [LPat GhcRn] -> LPat GhcRn #

nlNullaryConPat :: RdrName -> LPat GhcPs #

nlWildConPat :: DataCon -> LPat GhcPs #

nlWildPat :: LPat GhcPs #

Wildcard pattern - after parsing

nlWildPatName :: LPat GhcRn #

Wildcard pattern - after renaming

nlHsDo :: HsDoFlavour -> [LStmt GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs #

nlHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs #

nlHsLam :: LMatch GhcPs (LHsExpr GhcPs) -> LHsExpr GhcPs #

nlHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #

nlHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs #

nlHsCase :: LHsExpr GhcPs -> [LMatch GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs #

nlList :: [LHsExpr GhcPs] -> LHsExpr GhcPs #

nlHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #

nlHsTyVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> IdP (GhcPass p) -> LHsType (GhcPass p) #

nlHsFunTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #

nlHsParTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) #

nlHsTyConApp :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> LexicalFixity -> IdP (GhcPass p) -> [LHsTypeArg (GhcPass p)] -> LHsType (GhcPass p) #

nlHsAppKindTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsKind (GhcPass p) -> LHsType (GhcPass p) #

mkLHsTupleExpr :: forall (p :: Pass). [LHsExpr (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p) #

mkLHsVarTuple :: forall (p :: Pass) a. IsSrcSpanAnn p a => [IdP (GhcPass p)] -> XExplicitTuple (GhcPass p) -> LHsExpr (GhcPass p) #

nlTuplePat :: [LPat GhcPs] -> Boxity -> LPat GhcPs #

missingTupArg :: EpAnn EpaLocation -> HsTupArg 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) #

mkBigLHsVarPatTup :: [IdP GhcRn] -> LPat GhcRn #

The Big equivalents for the source tuple patterns

mkBigLHsPatTup :: [LPat GhcRn] -> LPat GhcRn #

hsTypeToHsSigType :: LHsType GhcPs -> LHsSigType GhcPs #

Convert an `LHsType` to an `LHsSigType`.

hsTypeToHsSigWcType :: LHsType GhcPs -> LHsSigWcType GhcPs #

Convert an `LHsType` to an `LHsSigWcType`.

mkHsSigEnv :: (LSig GhcRn -> Maybe ([LocatedN Name], a)) -> [LSig GhcRn] -> NameEnv a #

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

mkLHsWrap :: HsWrapper -> LHsExpr GhcTc -> LHsExpr GhcTc #

mkHsWrap :: HsWrapper -> HsExpr GhcTc -> HsExpr GhcTc #

mkHsWrapCo :: TcCoercionN -> HsExpr GhcTc -> HsExpr GhcTc #

mkHsWrapCoR :: TcCoercionR -> HsExpr GhcTc -> HsExpr GhcTc #

mkLHsWrapCo :: TcCoercionN -> LHsExpr GhcTc -> LHsExpr GhcTc #

mkHsCmdWrap :: HsWrapper -> HsCmd GhcTc -> HsCmd GhcTc #

mkLHsCmdWrap :: HsWrapper -> LHsCmd GhcTc -> LHsCmd GhcTc #

mkHsWrapPat :: HsWrapper -> Pat GhcTc -> Type -> Pat GhcTc #

mkHsWrapPatCo :: TcCoercionN -> Pat GhcTc -> Type -> Pat GhcTc #

mkHsDictLet :: TcEvBinds -> LHsExpr GhcTc -> LHsExpr GhcTc #

mkFunBind :: Origin -> LocatedN RdrName -> [LMatch GhcPs (LHsExpr GhcPs)] -> HsBind GhcPs #

Not infix, with place holders for coercion and free vars

mkTopFunBind :: Origin -> LocatedN Name -> [LMatch GhcRn (LHsExpr GhcRn)] -> HsBind GhcRn #

In Name-land, with empty bind_fvs

mkHsVarBind :: SrcSpan -> RdrName -> LHsExpr GhcPs -> LHsBind GhcPs #

mkVarBind :: IdP GhcTc -> LHsExpr GhcTc -> LHsBind GhcTc #

mkPatSynBind :: LocatedN RdrName -> HsPatSynDetails GhcPs -> LPat GhcPs -> HsPatSynDir GhcPs -> EpAnn [AddEpAnn] -> HsBind GhcPs #

isInfixFunBind :: forall id1 id2. UnXRec id2 => HsBindLR id1 id2 -> Bool #

If any of the matches in the `FunBind` are infix, the `FunBind` is considered infix.

spanHsLocaLBinds :: forall (p :: Pass). HsLocalBinds (GhcPass p) -> SrcSpan #

Return the `SrcSpan` encompassing the contents of any enclosed binds

mkSimpleGeneratedFunBind :: SrcSpan -> RdrName -> [LPat GhcPs] -> LHsExpr GhcPs -> LHsBind GhcPs #

Convenience function using `mkFunBind`. This is for generated bindings only, do not use for user-written code.

mkPrefixFunRhs :: LIdP (NoGhcTc p) -> HsMatchContext p #

Make a prefix, non-strict function `HsMatchContext`

mkMatch :: forall (p :: Pass). IsPass p => HsMatchContext (GhcPass p) -> [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> HsLocalBinds (GhcPass p) -> LMatch (GhcPass p) (LHsExpr (GhcPass p)) #

isUnliftedHsBind :: HsBind GhcTc -> Bool #

Should we treat this as an unlifted bind? This will be true for any bind that binds an unlifted variable, but we must be careful around AbsBinds. See Note [isUnliftedHsBind]. For usage information, see Note [Strict binds checks] is GHC.HsToCore.Binds.

isUnliftedHsBinds :: LHsBinds GhcTc -> Bool #

isBangedHsBind :: HsBind GhcTc -> Bool #

Is a binding a strict variable or pattern bind (e.g. `!x = ...`)?

collectLocalBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)] #

collectHsIdBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)] #

Collect `Id` binders only, or `Id`s + pattern synonyms, respectively

collectHsValBinders :: forall (idL :: Pass) idR. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) idR -> [IdP (GhcPass idL)] #

collectHsBindBinders :: CollectPass p => CollectFlag p -> HsBindLR p idR -> [IdP p] #

Collect both `Id`s and pattern-synonym binders

collectHsBindsBinders :: CollectPass p => CollectFlag p -> LHsBindsLR p idR -> [IdP p] #

collectHsBindListBinders :: CollectPass p => CollectFlag p -> [LHsBindLR p idR] -> [IdP p] #

Same as `collectHsBindsBinders`, but works over a list of bindings

collectMethodBinders :: UnXRec idL => LHsBindsLR idL idR -> [LIdP idL] #

Used exclusively for the bindings of an instance decl which are all `FunBinds`

collectLStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [LStmtLR (GhcPass idL) (GhcPass idR) body] -> [IdP (GhcPass idL)] #

collectStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> [StmtLR (GhcPass idL) (GhcPass idR) body] -> [IdP (GhcPass idL)] #

collectLStmtBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> LStmtLR (GhcPass idL) (GhcPass idR) body -> [IdP (GhcPass idL)] #

collectStmtBinders :: forall (idL :: Pass) (idR :: Pass) body. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> StmtLR (GhcPass idL) (GhcPass idR) body -> [IdP (GhcPass idL)] #

collectPatBinders :: CollectPass p => CollectFlag p -> LPat p -> [IdP p] #

collectPatsBinders :: CollectPass p => CollectFlag p -> [LPat p] -> [IdP p] #

hsGroupBinders :: HsGroup GhcRn -> [Name] #

hsTyClForeignBinders :: [TyClGroup GhcRn] -> [LForeignDecl GhcRn] -> [Name] #

hsLTyClDeclBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => LocatedA (TyClDecl (GhcPass p)) -> TyDeclBinders p #

Returns all the binding names of the decl. The first one is guaranteed to be the name of the decl. The first component represents all binding names except record fields; the second represents field occurrences. For record fields mentioned in multiple constructors, the SrcLoc will be from the first occurrence.

Each returned (Located name) has a SrcSpan for the whole declaration. See Note [SrcSpan for binders]

hsForeignDeclsBinders :: forall (p :: Pass) a. (UnXRec (GhcPass p), IsSrcSpanAnn p a) => [LForeignDecl (GhcPass p)] -> [LIdP (GhcPass p)] #

See Note [SrcSpan for binders]

hsPatSynSelectors :: forall (p :: Pass). IsPass p => HsValBinds (GhcPass p) -> [FieldOcc (GhcPass p)] #

Collects record pattern-synonym selectors only; the pattern synonym names are collected by `collectHsValBinders`.

getPatSynBinds :: UnXRec id => [(RecFlag, LHsBinds id)] -> [PatSynBind id id] #

hsDataFamInstBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => DataFamInstDecl (GhcPass p) -> LConsWithFields p #

the `SrcLoc` returned are for the whole declarations, not just the names

lStmtsImplicits :: forall (idR :: Pass) (body :: Type -> Type). [LStmtLR GhcRn (GhcPass idR) (LocatedA (body (GhcPass idR)))] -> [(SrcSpan, [Name])] #

hsValBindsImplicits :: forall (idR :: Pass). HsValBindsLR GhcRn (GhcPass idR) -> [(SrcSpan, [Name])] #

lPatImplicits :: LPat GhcRn -> [(SrcSpan, [Name])] #

data HsParsedModule #

Constructors

HsParsedModule |

Fields

- hpm_module :: Located (HsModule GhcPs)
- hpm_src_files :: [FilePath]

  extra source files (e.g. from #includes). The lexer collects these from '# file line' pragmas, which the C preprocessor leaves behind. These files and their timestamps are stored in the .hi file, so that we can force recompilation if any of them change (#3589)

data AnnsModule #

Constructors

AnnsModule |

Fields

- am_main :: [AddEpAnn]
- am_decls :: [TrailingAnn]
- am_eof :: Maybe (RealSrcSpan, RealSrcSpan)

#### Instances

Instances details

Data AnnsModule |

Instance details

Defined in GHC.Hs

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnsModule -> c AnnsModule #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnsModule #

toConstr :: AnnsModule -> Constr #

dataTypeOf :: AnnsModule -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnsModule) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnsModule) #

gmapT :: (forall b. Data b => b -> b) -> AnnsModule -> AnnsModule #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnsModule -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnsModule -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnsModule -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnsModule -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnsModule -> m AnnsModule #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnsModule -> m AnnsModule #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnsModule -> m AnnsModule #

Eq AnnsModule |
Instance details Defined in GHC.Hs Methods (==) :: AnnsModule -> AnnsModule -> Bool # (/=) :: AnnsModule -> AnnsModule -> Bool #

data XModulePs #

Haskell Module extension point: GHC specific

Constructors

XModulePs |

Fields

- hsmodAnn :: EpAnn AnnsModule
- hsmodLayout :: LayoutInfo GhcPs

  Layout info for the module. For incomplete modules (e.g. the output of parseHeader), it is NoLayoutInfo.

- hsmodDeprecMessage :: Maybe (LocatedP (WarningTxt GhcPs))

  reason/explanation for warning/deprecation of this module

  - `AnnKeywordId`s : `AnnOpen` ,`AnnClose`
- hsmodHaddockModHeader :: Maybe (LHsDoc GhcPs)

  Haddock module info and description, unparsed

  - `AnnKeywordId`s : `AnnOpen` ,`AnnClose`

#### Instances

Instances details

Data XModulePs |

Instance details

Defined in GHC.Hs

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> XModulePs -> c XModulePs #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c XModulePs #

toConstr :: XModulePs -> Constr #

dataTypeOf :: XModulePs -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c XModulePs) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c XModulePs) #

gmapT :: (forall b. Data b => b -> b) -> XModulePs -> XModulePs #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> XModulePs -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> XModulePs -> r #

gmapQ :: (forall d. Data d => d -> u) -> XModulePs -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> XModulePs -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> XModulePs -> m XModulePs #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> XModulePs -> m XModulePs #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> XModulePs -> m XModulePs #

# Name OccName GHC.Types.Name

nameOccName :: Name -> OccName #

occName :: HasOccName name => name -> OccName #

occNameString :: OccName -> String #

ppr :: Outputable a => a -> SDoc #

# Outputable / GHC.Utils.Outputable

showSDocUnsafe :: SDoc -> String #

# Panic / GHC.Utils.Panic

handleGhcException :: ExceptionMonad m => (GhcException -> m a) -> m a -> m a #

# RdrName / GHC.Types.Name.Reader

data RdrName #

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. `x`, `y` or `Foo`. Create such a `RdrName` with `mkRdrUnqual`
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 `Bar.x`, `Bar.y` or `Bar.Foo`. Create such a `RdrName` with `mkRdrQual`
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 `mkOrig`

Exact Name

Exact name

We know exactly the `Name`. This is used:

1. When the parser parses built-in syntax like `[]` and `(,)`, but wants a `RdrName` from it
2. By Template Haskell, when TH has generated a unique name

Such a `RdrName` can be created by using `getRdrName` on a `Name`

#### Instances

Instances details

Data RdrName |

Instance details

Defined in GHC.Types.Name.Reader

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RdrName -> c RdrName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RdrName #

toConstr :: RdrName -> Constr #

dataTypeOf :: RdrName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RdrName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RdrName) #

gmapT :: (forall b. Data b => b -> b) -> RdrName -> RdrName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RdrName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RdrName -> r #

gmapQ :: (forall d. Data d => d -> u) -> RdrName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RdrName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RdrName -> m RdrName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RdrName -> m RdrName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RdrName -> m RdrName #

DisambInfixOp RdrName |
Instance details Defined in GHC.Parser.PostProcess Methods mkHsVarOpPV :: LocatedN RdrName -> PV (LocatedN RdrName) # mkHsConOpPV :: LocatedN RdrName -> PV (LocatedN RdrName) # mkHsInfixHolePV :: SrcSpan -> (EpAnnComments -> EpAnn EpAnnUnboundVar) -> PV (Located RdrName) #
HasOccName RdrName |
Instance details Defined in GHC.Types.Name.Reader Methods occName :: RdrName -> OccName #
Outputable RdrName |
Instance details Defined in GHC.Types.Name.Reader Methods ppr :: RdrName -> SDoc #
OutputableBndr RdrName |
Instance details Defined in GHC.Types.Name.Reader Methods pprBndr :: BindingSite -> RdrName -> SDoc # pprPrefixOcc :: RdrName -> SDoc # pprInfixOcc :: RdrName -> SDoc # bndrIsJoin_maybe :: RdrName -> Maybe Int #
Eq RdrName |
Instance details Defined in GHC.Types.Name.Reader Methods (==) :: RdrName -> RdrName -> Bool # (/=) :: RdrName -> RdrName -> Bool #
Ord RdrName |
Instance details Defined in GHC.Types.Name.Reader Methods compare :: RdrName -> RdrName -> Ordering # (<) :: RdrName -> RdrName -> Bool # (<=) :: RdrName -> RdrName -> Bool # (>) :: RdrName -> RdrName -> Bool # (>=) :: RdrName -> RdrName -> Bool # max :: RdrName -> RdrName -> RdrName # min :: RdrName -> RdrName -> RdrName #
ExactPrint (BooleanFormula (LocatedN RdrName)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: BooleanFormula (LocatedN RdrName) -> Entry #

setAnnotationAnchor :: BooleanFormula (LocatedN RdrName) -> Anchor -> EpAnnComments -> BooleanFormula (LocatedN RdrName) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => BooleanFormula (LocatedN RdrName) -> EP w m (BooleanFormula (LocatedN RdrName)) #

ExactPrint (LocatedL (BooleanFormula (LocatedN RdrName))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Entry #

setAnnotationAnchor :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Anchor -> EpAnnComments -> LocatedL (BooleanFormula (LocatedN RdrName)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL (BooleanFormula (LocatedN RdrName)) -> EP w m (LocatedL (BooleanFormula (LocatedN RdrName))) #

ExactPrint (LocatedN RdrName) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedN RdrName -> Entry # setAnnotationAnchor :: LocatedN RdrName -> Anchor -> EpAnnComments -> LocatedN RdrName # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedN RdrName -> EP w m (LocatedN RdrName) #
type Anno RdrName |
Instance details Defined in GHC.Hs.Extension type Anno RdrName = SrcSpanAnnN
type Anno (LocatedN RdrName) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN RdrName) = SrcSpan
type Anno [LocatedN RdrName] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN RdrName] = SrcSpan

rdrNameOcc :: RdrName -> OccName #

# SrcLoc / GHC.Types.SrcLoc

data GenLocated l e #

We attach SrcSpans to lots of things, so let's have a datatype for it.

Constructors

L l e |

#### Instances

Instances details

HasDecls ParsedSource |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => ParsedSource -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => ParsedSource -> [LHsDecl GhcPs] -> TransformT m ParsedSource #
Foldable (GenLocated l) |

Instance details

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) |
Instance details 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) |
Instance details Defined in GHC.Types.SrcLoc Methods fmap :: (a -> b) -> GenLocated l a -> GenLocated l b # (<$) :: a -> GenLocated l b -> GenLocated l a #
HasLoc (LocatedA a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: LocatedA a -> SrcSpan
HasLoc (LocatedN a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: LocatedN a -> SrcSpan
HasLoc (Located a) |
Instance details Defined in GHC.Iface.Ext.Ast Methods loc :: Located a -> SrcSpan
HiePass p => HasType (LocatedA (HsBind (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsBind (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (HsExpr (GhcPass p))) | This instance tries to construct `HieAST` nodes which include the type of the expression. It is not yet possible to do this efficiently for all expression forms, so we skip filling in the type for those inputs. See Note [Computing the type of every node in the tree]
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => HasType (LocatedA (Pat (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods getTypeNode :: LocatedA (Pat (GhcPass p)) -> HieM [HieAST Type]
ToHie (LBooleanFormula (LocatedN Name)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LBooleanFormula (LocatedN Name) -> HieM [HieAST Type]
ToHie (LHsDoc GhcRn) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LHsDoc GhcRn -> HieM [HieAST Type]
HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: BindContext (LocatedA (HsBind (GhcPass p))) -> HieM [HieAST Type]
ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (LocatedA a) -> HieM [HieAST Type]
ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (LocatedN a) -> HieM [HieAST Type]
ToHie (Context (Located Name)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (Located Name) -> HieM [HieAST Type]
ToHie (Context (Located Var)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (Located Var) -> HieM [HieAST Type]
ToHie (Context (Located NoExtField)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Context (Located NoExtField) -> HieM [HieAST Type]
ToHie (EvBindContext (LocatedA TcEvBinds)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: EvBindContext (LocatedA TcEvBinds) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IE GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IE GhcRn)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA (IEWrappedName GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA (IEWrappedName GhcRn)) -> HieM [HieAST Type]
ToHie (IEContext (LocatedA ModuleName)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (LocatedA ModuleName) -> HieM [HieAST Type]
ToHie (IEContext (Located RecFieldInfo)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: IEContext (Located RecFieldInfo) -> HieM [HieAST Type]
HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: PScoped (LocatedA (Pat (GhcPass p))) -> HieM [HieAST Type]
(ToHie (RFContext label), ToHie arg, HasLoc arg, Data arg, Data label) => ToHie (RContext (LocatedA (HsFieldBind label arg))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RContext (LocatedA (HsFieldBind label arg)) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p))) -> HieM [HieAST Type]
HiePass p => ToHie (RScoped (LocatedA (IPBind (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (IPBind (GhcPass p))) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), AnnoBody p body, HiePass p) => ToHie (RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p)))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedA (Stmt (GhcPass p) (LocatedA (body (GhcPass p))))) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn)) -> HieM [HieAST Type]
ToHie (RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn)) -> HieM [HieAST Type]
HiePass p => ToHie (SigContext (LocatedA (Sig (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: SigContext (LocatedA (Sig (GhcPass p))) -> HieM [HieAST Type]
ToHie (TScoped (LocatedA (HsSigType GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (LocatedA (HsSigType GhcRn)) -> HieM [HieAST Type]
ToHie (TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (FamEqn GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsSigType GhcRn))) -> HieM [HieAST Type]
ToHie (TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TScoped (HsWildCardBndrs GhcRn (LocatedA (HsType GhcRn))) -> HieM [HieAST Type]
Data flag => ToHie (TVScoped (LocatedA (HsTyVarBndr flag GhcRn))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: TVScoped (LocatedA (HsTyVarBndr flag GhcRn)) -> HieM [HieAST Type]
ToHie (LocatedA HsWrapper) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA HsWrapper -> HieM [HieAST Type]
ToHie (LocatedA (FixitySig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FixitySig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (AnnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (AnnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ClsInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ClsInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DataFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DataFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DefaultDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DefaultDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DerivDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DerivDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (DocDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (DocDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FamilyDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FamilyDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ForeignDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ForeignDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (FunDep GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (FunDep GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (InstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (InstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RoleAnnotDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RoleAnnotDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (RuleDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (RuleDecls GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (SpliceDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (SpliceDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (StandaloneKindSig GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (StandaloneKindSig GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyClDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyClDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (TyFamInstDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (TyFamInstDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (WarnDecls GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (WarnDecls GhcRn) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsCmd (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsExpr (GhcPass p)) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsUntypedSplice (GhcPass p)) -> HieM [HieAST Type]
(HiePass p, Data (body (GhcPass p)), AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
ToHie (LocatedA (ImportDecl GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ImportDecl GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (ConDeclField GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (ConDeclField GhcRn) -> HieM [HieAST Type]
ToHie (LocatedA (HsType GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedA (HsType GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC (DerivClauseTys GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC (DerivClauseTys GhcRn) -> HieM [HieAST Type]
ToHie (LocatedC [LocatedA (HsType GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedC [LocatedA (HsType GhcRn)] -> HieM [HieAST Type]
ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedL [LocatedA (ConDeclField GhcRn)] -> HieM [HieAST Type]
ToHie (LocatedP OverlapMode) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedP OverlapMode -> HieM [HieAST Type]
HiePass p => ToHie (Located (PatSynBind (GhcPass p) (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Located (PatSynBind (GhcPass p) (GhcPass p)) -> HieM [HieAST Type]
ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)] -> HieM [HieAST Type]
HasHaddock (LocatedA (ConDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (ConDecl GhcPs) -> HdkA (LocatedA (ConDecl GhcPs))
HasHaddock (LocatedA (HsDecl GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsDecl GhcPs) -> HdkA (LocatedA (HsDecl GhcPs))
HasHaddock (LocatedA (IE GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (IE GhcPs) -> HdkA (LocatedA (IE GhcPs))
HasHaddock (LocatedA (HsSigType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsSigType GhcPs) -> HdkA (LocatedA (HsSigType GhcPs))
HasHaddock (LocatedA (HsType GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedA (HsType GhcPs) -> HdkA (LocatedA (HsType GhcPs))
HasHaddock (LocatedC (DerivClauseTys GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedC (DerivClauseTys GhcPs) -> HdkA (LocatedC (DerivClauseTys GhcPs))
HasHaddock (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedL [LocatedA (IE GhcPs)] -> HdkA (LocatedL [LocatedA (IE GhcPs)])
HasHaddock (Located (HsModule GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located (HsModule GhcPs) -> HdkA (Located (HsModule GhcPs))
HasHaddock (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)] -> HdkA (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)])
NamedThing e => NamedThing (Located e) |
Instance details Defined in GHC.Types.Name Methods getOccName :: Located e -> OccName # getName :: Located e -> Name #
Outputable e => Outputable (Located e) |
Instance details Defined in GHC.Types.SrcLoc Methods ppr :: Located e -> SDoc #
ExactPrint (BooleanFormula (LocatedN RdrName)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: BooleanFormula (LocatedN RdrName) -> Entry #

setAnnotationAnchor :: BooleanFormula (LocatedN RdrName) -> Anchor -> EpAnnComments -> BooleanFormula (LocatedN RdrName) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => BooleanFormula (LocatedN RdrName) -> EP w m (BooleanFormula (LocatedN RdrName)) #

ExactPrint a => ExactPrint (LocatedA a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedA a -> Entry # setAnnotationAnchor :: LocatedA a -> Anchor -> EpAnnComments -> LocatedA a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedA a -> EP w m (LocatedA a) #
ExactPrint a => ExactPrint (LocatedC a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedC a -> Entry # setAnnotationAnchor :: LocatedC a -> Anchor -> EpAnnComments -> LocatedC a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedC a -> EP w m (LocatedC a) #
ExactPrint (LocatedL (BooleanFormula (LocatedN RdrName))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Entry #

setAnnotationAnchor :: LocatedL (BooleanFormula (LocatedN RdrName)) -> Anchor -> EpAnnComments -> LocatedL (BooleanFormula (LocatedN RdrName)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL (BooleanFormula (LocatedN RdrName)) -> EP w m (LocatedL (BooleanFormula (LocatedN RdrName))) #

ExactPrint (Match GhcPs (LocatedA body)) => ExactPrint (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (Match GhcPs (LocatedA body))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (Match GhcPs (LocatedA body))] -> EP w m (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))] -> EP w m (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) #

ExactPrint (LocatedL [LocatedA (IE GhcPs)]) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedL [LocatedA (IE GhcPs)] -> Entry # setAnnotationAnchor :: LocatedL [LocatedA (IE GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (IE GhcPs)] # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (IE GhcPs)] -> EP w m (LocatedL [LocatedA (IE GhcPs)]) #
ExactPrint (LocatedL [LocatedA (ConDeclField GhcPs)]) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Entry #

setAnnotationAnchor :: LocatedL [LocatedA (ConDeclField GhcPs)] -> Anchor -> EpAnnComments -> LocatedL [LocatedA (ConDeclField GhcPs)] #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedL [LocatedA (ConDeclField GhcPs)] -> EP w m (LocatedL [LocatedA (ConDeclField GhcPs)]) #

ExactPrint (LocatedN RdrName) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedN RdrName -> Entry # setAnnotationAnchor :: LocatedN RdrName -> Anchor -> EpAnnComments -> LocatedN RdrName # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedN RdrName -> EP w m (LocatedN RdrName) #
ExactPrint (LocatedP OverlapMode) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP OverlapMode -> Entry # setAnnotationAnchor :: LocatedP OverlapMode -> Anchor -> EpAnnComments -> LocatedP OverlapMode # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP OverlapMode -> EP w m (LocatedP OverlapMode) #
ExactPrint (LocatedP CType) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP CType -> Entry # setAnnotationAnchor :: LocatedP CType -> Anchor -> EpAnnComments -> LocatedP CType # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP CType -> EP w m (LocatedP CType) #
ExactPrint (LocatedP (WarningTxt GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedP (WarningTxt GhcPs) -> Entry # setAnnotationAnchor :: LocatedP (WarningTxt GhcPs) -> Anchor -> EpAnnComments -> LocatedP (WarningTxt GhcPs) # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedP (WarningTxt GhcPs) -> EP w m (LocatedP (WarningTxt GhcPs)) #
ExactPrint a => ExactPrint (Located a) | Bare Located elements are simply stripped off without further processing.
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: Located a -> Entry # setAnnotationAnchor :: Located a -> Anchor -> EpAnnComments -> Located a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Located a -> EP w m (Located a) #
HasDecls (LocatedA (HsExpr GhcPs)) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (HsExpr GhcPs) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (HsExpr GhcPs)) #
HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] #

replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) #

HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.Transform Methods hsDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> TransformT m [LHsDecl GhcPs] # replaceDecls :: forall (m :: Type -> Type). Monad m => LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs))) -> [LHsDecl GhcPs] -> TransformT m (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) #
(Data l, Data e) => Data (GenLocated l e) |

Instance details

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) #

(Show l, Show e) => Show (GenLocated l e) |
Instance details Defined in GHC.Types.SrcLoc Methods showsPrec :: Int -> GenLocated l e -> ShowS # show :: GenLocated l e -> String # showList :: [GenLocated l e] -> ShowS #
(NFData l, NFData e) => NFData (GenLocated l e) |
Instance details Defined in GHC.Types.SrcLoc Methods rnf :: GenLocated l e -> () #
ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsDerivingClause GhcRn) -> HieM [HieAST Type]
ToHie (LocatedAn NoEpAnns (InjectivityAnn GhcRn)) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (InjectivityAnn GhcRn) -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) -> HieM [HieAST Type]
HiePass p => ToHie (LocatedAn NoEpAnns (HsCmdTop (GhcPass p))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns (HsCmdTop (GhcPass p)) -> HieM [HieAST Type]
ToHie (LocatedAn NoEpAnns HsIPName) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: LocatedAn NoEpAnns HsIPName -> HieM [HieAST Type]
(ToHie (LocatedA (body (GhcPass p))), HiePass p, AnnoBody p body) => ToHie (GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
(HiePass p, AnnoBody p body, ToHie (LocatedA (body (GhcPass p)))) => ToHie (MatchGroup (GhcPass p) (LocatedA (body (GhcPass p)))) |
Instance details Defined in GHC.Iface.Ext.Ast Methods toHie :: MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) -> HieM [HieAST Type]
HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) |
Instance details Defined in GHC.Parser.PostProcess.Haddock Methods addHaddock :: LocatedAn NoEpAnns (HsDerivingClause GhcPs) -> HdkA (LocatedAn NoEpAnns (HsDerivingClause GhcPs))
NamedThing (Located a) => NamedThing (LocatedAn an a) |
Instance details Defined in GHC.Parser.Annotation Methods getOccName :: LocatedAn an a -> OccName # getName :: LocatedAn an a -> Name #
Outputable (GenLocated Anchor EpaComment) |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: GenLocated Anchor EpaComment -> SDoc #
(Outputable a, Outputable e) => Outputable (GenLocated (SrcSpanAnn' a) e) |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: GenLocated (SrcSpanAnn' a) e -> SDoc #
Outputable a => Outputable (GenLocated TokenLocation a) |
Instance details Defined in GHC.Parser.Annotation Methods ppr :: GenLocated TokenLocation a -> SDoc #
Outputable e => Outputable (GenLocated RealSrcSpan e) |
Instance details Defined in GHC.Types.SrcLoc Methods ppr :: GenLocated RealSrcSpan e -> SDoc #
(Outputable a, OutputableBndr e) => OutputableBndr (GenLocated (SrcSpanAnn' a) e) |
Instance details Defined in GHC.Parser.Annotation Methods pprBndr :: BindingSite -> GenLocated (SrcSpanAnn' a) e -> SDoc # pprPrefixOcc :: GenLocated (SrcSpanAnn' a) e -> SDoc # pprInfixOcc :: GenLocated (SrcSpanAnn' a) e -> SDoc # bndrIsJoin_maybe :: GenLocated (SrcSpanAnn' a) e -> Maybe Int #
ExactPrint a => ExactPrint (LocatedAn NoEpAnns a) |
Instance details Defined in Language.Haskell.GHC.ExactPrint.ExactPrint Methods getAnnotationEntry :: LocatedAn NoEpAnns a -> Entry # setAnnotationAnchor :: LocatedAn NoEpAnns a -> Anchor -> EpAnnComments -> LocatedAn NoEpAnns a # exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => LocatedAn NoEpAnns a -> EP w m (LocatedAn NoEpAnns a) #
ExactPrint (GRHS GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHS GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHS GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHS GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHS GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> GRHSs GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => GRHSs GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (GRHSs GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: Match GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> Match GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => Match GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (Match GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsCmd GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) #

ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Entry #

setAnnotationAnchor :: MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> Anchor -> EpAnnComments -> MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => MatchGroup GhcPs (LocatedA (HsExpr GhcPs)) -> EP w m (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) #

ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) #

ExactPrint (LocatedA body) => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body) -> EP w m (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) #

ExactPrint body => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Entry #

setAnnotationAnchor :: HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> Anchor -> EpAnnComments -> HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body -> EP w m (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) #

(Eq l, Eq e) => Eq (GenLocated l e) |
Instance details 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) |

Instance details

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 #

(ExactPrint (LocatedA (body GhcPs)), Anno (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA, Anno [GenLocated SrcSpanAnnA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))] ~ SrcSpanAnnL, ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))])) => ExactPrint (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) |

Instance details

Defined in Language.Haskell.GHC.ExactPrint.ExactPrint

Methods

getAnnotationEntry :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Entry #

setAnnotationAnchor :: StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> Anchor -> EpAnnComments -> StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) #

exact :: forall (m :: Type -> Type) w. (Monad m, Monoid w) => StmtLR GhcPs GhcPs (LocatedA (body GhcPs)) -> EP w m (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) #

type Anno (LocatedA (IE (GhcPass p))) |
Instance details Defined in GHC.Hs.ImpExp type Anno (LocatedA (IE (GhcPass p))) = SrcSpanAnnA
type Anno (LocatedN Name) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Name) = SrcSpan
type Anno (LocatedN RdrName) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN RdrName) = SrcSpan
type Anno (LocatedN Id) |
Instance details Defined in GHC.Hs.Binds type Anno (LocatedN Id) = SrcSpan
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL
type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsExpr (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] |
Instance details Defined in GHC.Hs.Expr type Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL
type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] |
Instance details Defined in GHC.Parser.Types type Anno [LocatedA (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL
type Anno [LocatedA (IE (GhcPass p))] |
Instance details Defined in GHC.Hs.ImpExp type Anno [LocatedA (IE (GhcPass p))] = SrcSpanAnnL
type Anno [LocatedA (ConDeclField (GhcPass _1))] |
Instance details Defined in GHC.Hs.Decls type Anno [LocatedA (ConDeclField (GhcPass _1))] = SrcSpanAnnL
type Anno [LocatedA (HsType (GhcPass p))] |
Instance details Defined in GHC.Hs.Type type Anno [LocatedA (HsType (GhcPass p))] = SrcSpanAnnC
type Anno [LocatedN Name] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Name] = SrcSpan
type Anno [LocatedN RdrName] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN RdrName] = SrcSpan
type Anno [LocatedN Id] |
Instance details Defined in GHC.Hs.Binds type Anno [LocatedN Id] = SrcSpan
type Anno (FamEqn p (LocatedA (HsType p))) |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn p (LocatedA (HsType p))) = SrcSpanAnnA
type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcAnn NoEpAnns
type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = SrcAnn NoEpAnns
type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA
type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) |
Instance details Defined in GHC.Hs.Expr type Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA
type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA
type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) |
Instance details Defined in GHC.Parser.Types type Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA
type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) |
Instance details Defined in GHC.Hs.Expr type Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) = SrcSpanAnnA

pattern RealSrcLoc' :: RealSrcLoc -> SrcLoc #

pattern RealSrcSpan' :: RealSrcSpan -> SrcSpan #

data RealSrcSpan #

A `RealSrcSpan` delimits a portion of a text file. It could be represented by a pair of (line,column) coordinates, but in fact we optimise slightly by using more compact representations for single-line and zero-length spans, both of which are quite common.

The end position is defined to be the column after the end of the span. That is, a span of (1,1)-(1,2) is one character long, and a span of (1,1)-(1,1) is zero characters long.

Real Source Span

#### Instances

Instances details

Data RealSrcSpan |

Instance details

Defined in GHC.Types.SrcLoc

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RealSrcSpan -> c RealSrcSpan #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RealSrcSpan #

toConstr :: RealSrcSpan -> Constr #

dataTypeOf :: RealSrcSpan -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RealSrcSpan) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RealSrcSpan) #

gmapT :: (forall b. Data b => b -> b) -> RealSrcSpan -> RealSrcSpan #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RealSrcSpan -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RealSrcSpan -> r #

gmapQ :: (forall d. Data d => d -> u) -> RealSrcSpan -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RealSrcSpan -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RealSrcSpan -> m RealSrcSpan #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RealSrcSpan -> m RealSrcSpan #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RealSrcSpan -> m RealSrcSpan #

Show RealSrcSpan |
Instance details Defined in GHC.Types.SrcLoc Methods showsPrec :: Int -> RealSrcSpan -> ShowS # show :: RealSrcSpan -> String # showList :: [RealSrcSpan] -> ShowS #
ToJson RealSrcSpan |
Instance details Defined in GHC.Types.SrcLoc Methods json :: RealSrcSpan -> JsonDoc #
Outputable RealSrcSpan |
Instance details Defined in GHC.Types.SrcLoc Methods ppr :: RealSrcSpan -> SDoc #
Eq RealSrcSpan |
Instance details Defined in GHC.Types.SrcLoc Methods (==) :: RealSrcSpan -> RealSrcSpan -> Bool # (/=) :: RealSrcSpan -> RealSrcSpan -> Bool #
Ord RealSrcSpan |
Instance details Defined in GHC.Types.SrcLoc Methods compare :: RealSrcSpan -> RealSrcSpan -> Ordering # (<) :: RealSrcSpan -> RealSrcSpan -> Bool # (<=) :: RealSrcSpan -> RealSrcSpan -> Bool # (>) :: RealSrcSpan -> RealSrcSpan -> Bool # (>=) :: RealSrcSpan -> RealSrcSpan -> Bool # max :: RealSrcSpan -> RealSrcSpan -> RealSrcSpan # min :: RealSrcSpan -> RealSrcSpan -> RealSrcSpan #
Outputable e => Outputable (GenLocated RealSrcSpan e) |
Instance details Defined in GHC.Types.SrcLoc Methods ppr :: GenLocated RealSrcSpan e -> SDoc #

type SrcSpanLess (a :: k) = a #

combineSrcSpans :: SrcSpan -> SrcSpan -> SrcSpan #

Combines two `SrcSpan` into one that spans at least all the characters within both spans. Returns UnhelpfulSpan if the files differ.

composeSrcSpan :: a -> a #

decomposeSrcSpan :: a -> a #

# StringBuffer

stringToStringBuffer :: String -> StringBuffer #

Encode a `String` into a `StringBuffer` as UTF-8. The resulting buffer is automatically managed by the garbage collector.

# Misc

impliedXFlags :: [(Extension, TurnOnFlag, Extension)] #

# Non-GHC stuff

type FunBind = HsMatchContext GhcPs #

type DoGenReplacement an ast a = (Data ast, Data a) => a -> (LocatedAn an ast -> Bool) -> LocatedAn an ast -> LocatedAn an ast -> StateT Bool IO (LocatedAn an ast) #

type Module = Located (HsModule GhcPs) #

type MonadFail' = MonadFail #

type ReplaceWorker a mod = (Data a, Data mod) => mod -> Parser (LocatedA a) -> Int -> Refactoring SrcSpan -> IO mod #

annSpanToSrcSpan :: AnnSpan -> SrcSpan #

badAnnSpan :: AnnSpan #

mkErr :: DynFlags -> SrcSpan -> String -> Errors #

parseModuleName :: SrcSpan -> Parser (LocatedA ModuleName) #

setAnnSpanFile :: FastString -> AnnSpan -> AnnSpan #

setRealSrcSpanFile :: FastString -> RealSrcSpan -> RealSrcSpan #

setSrcSpanFile :: FastString -> SrcSpan -> SrcSpan #

srcSpanToAnnSpan :: SrcSpan -> AnnSpan #

type AnnSpan = RealSrcSpan #

# GHC 9.4 stuff

initParserOpts :: DynFlags -> ParserOpts #

Extracts the flags needed for parsing