packages feed

apply-refact 0.14.0.0 → 0.15.0.0

raw patch · 10 files changed

+465/−190 lines, 10 filesdep +data-defaultdep +data-default-classdep ~basedep ~ghcdep ~ghc-exactprintPVP ok

version bump matches the API change (PVP)

Dependencies added: data-default, data-default-class

Dependency ranges changed: base, ghc, ghc-exactprint

API changes (from Hackage documentation)

- Refact.Compat: AddLollyAnnU :: EpaLocation -> TrailingAnn
- Refact.Compat: AddRarrowAnn :: EpaLocation -> TrailingAnn
- Refact.Compat: AddRarrowAnnU :: EpaLocation -> TrailingAnn
- Refact.Compat: AnnAt :: AnnKeywordId
- Refact.Compat: AnnsLet :: EpaLocation -> EpaLocation -> AnnsLet
- Refact.Compat: ArgDocMap :: Map Name (IntMap HsDocString) -> ArgDocMap
- Refact.Compat: DeclDocMap :: Map Name HsDocString -> DeclDocMap
- Refact.Compat: EpaDocCommentNamed :: String -> EpaCommentTok
- Refact.Compat: EpaDocCommentNext :: String -> EpaCommentTok
- Refact.Compat: EpaDocCommentPrev :: String -> EpaCommentTok
- Refact.Compat: EpaDocSection :: Int -> String -> EpaCommentTok
- Refact.Compat: ExplicitSplice :: SpliceExplicitFlag
- Refact.Compat: HsBracket :: XBracket p -> HsBracket p -> HsExpr p
- Refact.Compat: HsConLikeOut :: XConLikeOut p -> ConLike -> HsExpr p
- Refact.Compat: HsFieldLabel :: XCHsFieldLabel p -> Located FieldLabelString -> HsFieldLabel p
- Refact.Compat: HsRecField :: XHsRecField id -> Located id -> arg -> Bool -> HsRecField' id arg
- Refact.Compat: HsRecFld :: XRecFld p -> AmbiguousFieldOcc p -> HsExpr p
- Refact.Compat: HsRnBracketOut :: XRnBracketOut p -> HsBracket (HsBracketRn p) -> [PendingRnSplice' p] -> HsExpr p
- Refact.Compat: HsSpliceE :: XSpliceE p -> HsSplice p -> HsExpr p
- Refact.Compat: HsSpliced :: XSpliced id -> ThModFinalizers -> HsSplicedThing id -> HsSplice id
- Refact.Compat: HsSplicedExpr :: HsExpr id -> HsSplicedThing id
- Refact.Compat: HsSplicedPat :: Pat id -> HsSplicedThing id
- Refact.Compat: HsSplicedT :: DelayedSplice -> HsSplicedT
- Refact.Compat: HsSplicedTy :: HsType id -> HsSplicedThing id
- Refact.Compat: HsTcBracketOut :: XTcBracketOut p -> Maybe QuoteWrapper -> HsBracket (HsBracketRn p) -> [PendingTcSplice' p] -> HsExpr p
- Refact.Compat: ImplicitSplice :: SpliceExplicitFlag
- Refact.Compat: ListPatTc :: Type -> Maybe (Type, SyntaxExpr GhcTc) -> ListPatTc
- Refact.Compat: Opt_CatchBottoms :: GeneralFlag
- Refact.Compat: Opt_D_faststring_stats :: GeneralFlag
- Refact.Compat: RecordUpdTc :: [ConLike] -> [Type] -> [Type] -> HsWrapper -> RecordUpdTc
- Refact.Compat: TExpBr :: XTExpBr p -> LHsExpr p -> HsBracket p
- Refact.Compat: XABExport :: !XXABExport p -> ABExport p
- Refact.Compat: XBracket :: !XXBracket p -> HsBracket p
- Refact.Compat: XHsFieldLabel :: !XXHsFieldLabel p -> HsFieldLabel p
- Refact.Compat: XSplice :: !XXSplice id -> HsSplice id
- Refact.Compat: [abe_ext] :: ABExport p -> XABE p
- Refact.Compat: [abs_ext] :: HsBindLR idL idR -> XAbsBinds idL idR
- Refact.Compat: [alIn] :: AnnsLet -> EpaLocation
- Refact.Compat: [alLet] :: AnnsLet -> EpaLocation
- Refact.Compat: [ann] :: SrcSpanAnn' a -> !a
- Refact.Compat: [dd_ND] :: HsDataDefn pass -> NewOrData
- Refact.Compat: [extFieldOcc] :: FieldOcc pass -> XCFieldOcc pass
- Refact.Compat: [fun_tick] :: HsBindLR idL idR -> [CoreTickish]
- Refact.Compat: [hflExt] :: HsFieldLabel p -> XCHsFieldLabel p
- Refact.Compat: [hflLabel] :: HsFieldLabel p -> Located FieldLabelString
- Refact.Compat: [hsRecFieldAnn] :: HsRecField' id arg -> XHsRecField id
- Refact.Compat: [hsRecFieldArg] :: HsRecField' id arg -> arg
- Refact.Compat: [hsRecFieldLbl] :: HsRecField' id arg -> Located id
- Refact.Compat: [hsRecPun] :: HsRecField' id arg -> Bool
- Refact.Compat: [ideclHiding] :: ImportDecl pass -> Maybe (Bool, XRec pass [LIE pass])
- Refact.Compat: [ideclSourceSrc] :: ImportDecl pass -> SourceText
- Refact.Compat: [locA] :: SrcSpanAnn' a -> !SrcSpan
- Refact.Compat: [pat_ticks] :: HsBindLR idL idR -> ([CoreTickish], [[CoreTickish]])
- Refact.Compat: [rdrNameFieldOcc] :: FieldOcc pass -> LocatedN RdrName
- Refact.Compat: [rds_src] :: RuleDecls pass -> SourceText
- Refact.Compat: [rupd_cons] :: RecordUpdTc -> [ConLike]
- Refact.Compat: [rupd_in_tys] :: RecordUpdTc -> [Type]
- Refact.Compat: [rupd_out_tys] :: RecordUpdTc -> [Type]
- Refact.Compat: [rupd_wrap] :: RecordUpdTc -> HsWrapper
- Refact.Compat: [wd_src] :: WarnDecls pass -> SourceText
- Refact.Compat: appendDocs :: HsDocString -> HsDocString -> HsDocString
- Refact.Compat: chunkify :: [a] -> [[a]]
- Refact.Compat: concatDocs :: [HsDocString] -> Maybe HsDocString
- Refact.Compat: data AnnsLet
- Refact.Compat: data CoPat
- Refact.Compat: data HsBracket p
- Refact.Compat: data HsFieldLabel p
- Refact.Compat: data HsRecField' id arg
- Refact.Compat: data HsSplice id
- Refact.Compat: data HsSplicedThing id
- Refact.Compat: data ListPatTc
- Refact.Compat: data NoExtCon
- Refact.Compat: data RecordUpdTc
- Refact.Compat: data SpliceExplicitFlag
- Refact.Compat: emptyArgDocMap :: ArgDocMap
- Refact.Compat: emptyDeclDocMap :: DeclDocMap
- Refact.Compat: hsDocStringToByteString :: HsDocString -> ByteString
- Refact.Compat: isTypedBracket :: HsBracket id -> Bool
- Refact.Compat: isTypedSplice :: HsSplice id -> Bool
- Refact.Compat: la2r :: SrcSpanAnn' a -> RealSrcSpan
- Refact.Compat: mkChunkified :: ([a] -> a) -> [a] -> a
- Refact.Compat: mkHsDocString :: String -> HsDocString
- Refact.Compat: mkHsDocStringUtf8ByteString :: ByteString -> HsDocString
- Refact.Compat: mkHsQuasiQuote :: RdrName -> SrcSpan -> FastString -> HsSplice GhcPs
- Refact.Compat: mkTypedSplice :: EpAnn [AddEpAnn] -> SpliceDecoration -> LHsExpr GhcPs -> HsSplice GhcPs
- Refact.Compat: mkUntypedSplice :: EpAnn [AddEpAnn] -> SpliceDecoration -> LHsExpr GhcPs -> HsSplice GhcPs
- Refact.Compat: newtype ArgDocMap
- Refact.Compat: newtype DeclDocMap
- Refact.Compat: newtype HsSplicedT
- Refact.Compat: noExtCon :: NoExtCon -> a
- Refact.Compat: pp_st_suffix :: SourceText -> SDoc -> SDoc -> SDoc
- Refact.Compat: pprFlavour :: FamilyInfo pass -> SDoc
- Refact.Compat: pprHsBracket :: forall (p :: Pass). OutputableBndrId p => HsBracket (GhcPass p) -> SDoc
- Refact.Compat: pprSplice :: forall (p :: Pass). OutputableBndrId p => HsSplice (GhcPass p) -> SDoc
- Refact.Compat: pprSpliceDecl :: forall (p :: Pass). OutputableBndrId p => HsSplice (GhcPass p) -> SpliceExplicitFlag -> SDoc
- Refact.Compat: ppr_mbDoc :: Maybe LHsDocString -> SDoc
- Refact.Compat: ppr_splice_decl :: forall (p :: Pass). OutputableBndrId p => HsSplice (GhcPass p) -> SDoc
- Refact.Compat: rdrNameAmbiguousFieldOcc :: forall (p :: Pass). AmbiguousFieldOcc (GhcPass p) -> RdrName
- Refact.Compat: type LHsRecField' p id arg = XRec p HsRecField' id arg
- Refact.Compat: unpackHDS :: HsDocString -> String
+ Refact.Compat: AnnCases :: AnnKeywordId
+ Refact.Compat: ArrowLamCaseAlt :: LamCaseVariant -> HsArrowMatchContext
+ Refact.Compat: ConLikeTc :: ConLike -> [TcTyVar] -> [Scaled TcType] -> XXExprGhcTc
+ Refact.Compat: DataTypeCons :: Bool -> [a] -> DataDefnCons a
+ Refact.Compat: Docs :: Maybe (HsDoc GhcRn) -> UniqMap Name [HsDoc GhcRn] -> UniqMap Name (IntMap (HsDoc GhcRn)) -> DocStructure -> Map String (HsDoc GhcRn) -> Maybe String -> Maybe Language -> EnumSet Extension -> Docs
+ Refact.Compat: DotFieldOcc :: XCDotFieldOcc p -> XRec p FieldLabelString -> DotFieldOcc p
+ Refact.Compat: DsiDocChunk :: !HsDoc GhcRn -> DocStructureItem
+ Refact.Compat: DsiExports :: !Avails -> DocStructureItem
+ Refact.Compat: DsiModExport :: !NonEmpty ModuleName -> !Avails -> DocStructureItem
+ Refact.Compat: DsiNamedChunkRef :: !String -> DocStructureItem
+ Refact.Compat: DsiSectionHeading :: !Int -> !HsDoc GhcRn -> DocStructureItem
+ Refact.Compat: EpaDocComment :: HsDocString -> EpaCommentTok
+ Refact.Compat: EverythingBut :: ImportListInterpretation
+ Refact.Compat: Exactly :: ImportListInterpretation
+ Refact.Compat: ExpansionPat :: Pat GhcRn -> Pat GhcTc -> XXPatGhcTc
+ Refact.Compat: ExplicitBraces :: !LHsToken "{" pass -> !LHsToken "}" pass -> LayoutInfo pass
+ Refact.Compat: GeneratedDocString :: HsDocStringChunk -> HsDocString
+ Refact.Compat: HsBndrInvisible :: LHsToken "@" pass -> HsBndrVis pass
+ Refact.Compat: HsBndrRequired :: HsBndrVis pass
+ Refact.Compat: HsBracketTc :: HsQuote GhcRn -> Type -> Maybe QuoteWrapper -> [PendingTcSplice] -> HsBracketTc
+ Refact.Compat: HsConPatTyArg :: !LHsToken "@" p -> HsPatSigType p -> HsConPatTyArg p
+ Refact.Compat: HsDoStmt :: HsDoFlavour -> HsStmtContext p
+ Refact.Compat: HsDocStringChunk :: ByteString -> HsDocStringChunk
+ Refact.Compat: HsDocStringGroup :: !Int -> HsDocStringDecorator
+ Refact.Compat: HsDocStringNamed :: !String -> HsDocStringDecorator
+ Refact.Compat: HsDocStringNext :: HsDocStringDecorator
+ Refact.Compat: HsDocStringPrevious :: HsDocStringDecorator
+ Refact.Compat: HsFieldBind :: XHsFieldBind lhs -> lhs -> rhs -> Bool -> HsFieldBind lhs rhs
+ Refact.Compat: HsInt16Prim :: XHsInt16Prim x -> Integer -> HsLit x
+ Refact.Compat: HsInt32Prim :: XHsInt32Prim x -> Integer -> HsLit x
+ Refact.Compat: HsInt8Prim :: XHsInt8Prim x -> Integer -> HsLit x
+ Refact.Compat: HsLolly :: !LHsToken "\8888" pass -> HsLinearArrowTokens pass
+ Refact.Compat: HsNormalTok :: HsUniToken (tok :: Symbol) (utok :: Symbol)
+ Refact.Compat: HsPatExpanded :: a -> b -> HsPatExpansion a b
+ Refact.Compat: HsPct1 :: !LHsToken "%1" pass -> !LHsUniToken "->" "\8594" pass -> HsLinearArrowTokens pass
+ Refact.Compat: HsRecSel :: XRecSel p -> FieldOcc p -> HsExpr p
+ Refact.Compat: HsTok :: HsToken (tok :: Symbol)
+ Refact.Compat: HsTypedBracket :: XTypedBracket p -> LHsExpr p -> HsExpr p
+ Refact.Compat: HsUnicodeTok :: HsUniToken (tok :: Symbol) (utok :: Symbol)
+ Refact.Compat: HsUntypedBracket :: XUntypedBracket p -> HsQuote p -> HsExpr p
+ Refact.Compat: HsUntypedSpliceExpr :: XUntypedSpliceExpr id -> LHsExpr id -> HsUntypedSplice id
+ Refact.Compat: HsUntypedSpliceNested :: SplicePointName -> HsUntypedSpliceResult thing
+ Refact.Compat: HsUntypedSpliceTop :: ThModFinalizers -> thing -> HsUntypedSpliceResult thing
+ Refact.Compat: HsWord16Prim :: XHsWord16Prim x -> Integer -> HsLit x
+ Refact.Compat: HsWord32Prim :: XHsWord32Prim x -> Integer -> HsLit x
+ Refact.Compat: HsWord8Prim :: XHsWord8Prim x -> Integer -> HsLit x
+ Refact.Compat: IsBoot :: IsBootInterface
+ Refact.Compat: IsPromoted :: PromotionFlag
+ Refact.Compat: LConsWithFields :: [(LocatedA (IdP (GhcPass p)), Maybe [Located Int])] -> IntMap (LFieldOcc (GhcPass p)) -> LConsWithFields (p :: Pass)
+ Refact.Compat: LamCase :: LamCaseVariant
+ Refact.Compat: LamCaseAlt :: LamCaseVariant -> HsMatchContext p
+ Refact.Compat: LamCases :: LamCaseVariant
+ Refact.Compat: ModuleName :: FastString -> ModuleName
+ Refact.Compat: MultiLineDocString :: !HsDocStringDecorator -> !NonEmpty LHsDocStringChunk -> HsDocString
+ Refact.Compat: NameAnnBars :: NameAdornment -> EpaLocation -> [EpaLocation] -> EpaLocation -> [TrailingAnn] -> NameAnn
+ Refact.Compat: NegateOp :: OpName
+ Refact.Compat: NestedDocString :: !HsDocStringDecorator -> LHsDocStringChunk -> HsDocString
+ Refact.Compat: NewTypeCon :: a -> DataDefnCons a
+ Refact.Compat: NoLayoutInfo :: LayoutInfo pass
+ Refact.Compat: NoTokenLoc :: TokenLocation
+ Refact.Compat: NormalOp :: Name -> OpName
+ Refact.Compat: NotBoot :: IsBootInterface
+ Refact.Compat: NotPromoted :: PromotionFlag
+ Refact.Compat: Opt_ByteCodeAndObjectCode :: GeneralFlag
+ Refact.Compat: Opt_CatchNonexhaustiveCases :: GeneralFlag
+ Refact.Compat: Opt_CmmControlFlow :: GeneralFlag
+ Refact.Compat: Opt_CmmThreadSanitizer :: GeneralFlag
+ Refact.Compat: Opt_CoreConstantFolding :: GeneralFlag
+ Refact.Compat: Opt_DisableJsMinifier :: GeneralFlag
+ Refact.Compat: Opt_DoTagInferenceChecks :: GeneralFlag
+ Refact.Compat: Opt_DumpWithWays :: GeneralFlag
+ Refact.Compat: Opt_FastPAPCalls :: GeneralFlag
+ Refact.Compat: Opt_InfoTableMapWithFallback :: GeneralFlag
+ Refact.Compat: Opt_InfoTableMapWithStack :: GeneralFlag
+ Refact.Compat: Opt_InsertBreakpoints :: GeneralFlag
+ Refact.Compat: Opt_LocalFloatOut :: GeneralFlag
+ Refact.Compat: Opt_LocalFloatOutTopLevel :: GeneralFlag
+ Refact.Compat: Opt_PolymorphicSpecialisation :: GeneralFlag
+ Refact.Compat: Opt_PrintRedundantPromotionTicks :: GeneralFlag
+ Refact.Compat: Opt_ProfLateCcs :: GeneralFlag
+ Refact.Compat: Opt_ProfLateInlineCcs :: GeneralFlag
+ Refact.Compat: Opt_ProfManualCcs :: GeneralFlag
+ Refact.Compat: Opt_ShowErrorContext :: GeneralFlag
+ Refact.Compat: Opt_SpecialiseIncoherents :: GeneralFlag
+ Refact.Compat: Opt_SuppressCoercionTypes :: GeneralFlag
+ Refact.Compat: Opt_SuppressCoreSizes :: GeneralFlag
+ Refact.Compat: Opt_SuppressStgReps :: GeneralFlag
+ Refact.Compat: Opt_Ticky_AP :: GeneralFlag
+ Refact.Compat: Opt_Ticky_Tag :: GeneralFlag
+ Refact.Compat: Opt_UnoptimizedCoreForInterpreter :: GeneralFlag
+ Refact.Compat: Opt_UseBytecodeRatherThanObjects :: GeneralFlag
+ Refact.Compat: Opt_WorkerWrapperUnlift :: GeneralFlag
+ Refact.Compat: Opt_WriteIfSimplifiedCore :: GeneralFlag
+ Refact.Compat: OverLitRn :: Bool -> LIdP GhcRn -> OverLitRn
+ Refact.Compat: RecFieldsDotDot :: Int -> RecFieldsDotDot
+ Refact.Compat: RecFldOp :: FieldOcc GhcRn -> OpName
+ Refact.Compat: TokenLoc :: !EpaLocation -> TokenLocation
+ Refact.Compat: TyDeclBinders :: !(LocatedA (IdP (GhcPass p)), TyConFlavour ()) -> ![(LocatedA (IdP (GhcPass p)), TyConFlavour ())] -> ![LocatedA (IdP (GhcPass p))] -> !LConsWithFields p -> TyDeclBinders (p :: Pass)
+ Refact.Compat: UnboundOp :: RdrName -> OpName
+ Refact.Compat: VirtualBraces :: !Int -> LayoutInfo pass
+ Refact.Compat: WithHsDocIdentifiers :: !a -> ![Located (IdP pass)] -> WithHsDocIdentifiers a pass
+ Refact.Compat: XDotFieldOcc :: !XXDotFieldOcc p -> DotFieldOcc p
+ Refact.Compat: XForeignExport :: !XXForeignExport pass -> ForeignExport pass
+ Refact.Compat: XForeignImport :: !XXForeignImport pass -> ForeignImport pass
+ Refact.Compat: XIEWrappedName :: !XXIEWrappedName p -> IEWrappedName p
+ Refact.Compat: XImportDeclPass :: EpAnn EpAnnImportDecl -> SourceText -> Bool -> XImportDeclPass
+ Refact.Compat: XModule :: !XXModule p -> HsModule p
+ Refact.Compat: XModulePs :: EpAnn AnnsModule -> LayoutInfo GhcPs -> Maybe (LocatedP (WarningTxt GhcPs)) -> Maybe (LHsDoc GhcPs) -> XModulePs
+ Refact.Compat: XQuote :: !XXQuote p -> HsQuote p
+ Refact.Compat: XTyLit :: !XXTyLit pass -> HsTyLit pass
+ Refact.Compat: XUntypedSplice :: !XXUntypedSplice id -> HsUntypedSplice id
+ Refact.Compat: [OverloadedRecUpdFields] :: forall p. XLHsOLRecUpdLabels p -> [LHsRecUpdProj p] -> LHsRecUpdFields p
+ Refact.Compat: [RegularRecUpdFields] :: forall p. XLHsRecUpdLabels p -> [LHsRecUpdField p p] -> LHsRecUpdFields p
+ Refact.Compat: [am_eof] :: AnnsModule -> Maybe (RealSrcSpan, RealSrcSpan)
+ Refact.Compat: [con_dcolon] :: ConDecl pass -> !LHsUniToken "::" "\8759" pass
+ Refact.Compat: [consFields] :: LConsWithFields (p :: Pass) -> IntMap (LFieldOcc (GhcPass p))
+ Refact.Compat: [consWithFieldIndices] :: LConsWithFields (p :: Pass) -> [(LocatedA (IdP (GhcPass p)), Maybe [Located Int])]
+ Refact.Compat: [dfoExt] :: DotFieldOcc p -> XCDotFieldOcc p
+ Refact.Compat: [dfoLabel] :: DotFieldOcc p -> XRec p FieldLabelString
+ Refact.Compat: [docs_args] :: Docs -> UniqMap Name (IntMap (HsDoc GhcRn))
+ Refact.Compat: [docs_decls] :: Docs -> UniqMap Name [HsDoc GhcRn]
+ Refact.Compat: [docs_extensions] :: Docs -> EnumSet Extension
+ Refact.Compat: [docs_haddock_opts] :: Docs -> Maybe String
+ Refact.Compat: [docs_language] :: Docs -> Maybe Language
+ Refact.Compat: [docs_mod_hdr] :: Docs -> Maybe (HsDoc GhcRn)
+ Refact.Compat: [docs_named_chunks] :: Docs -> Map String (HsDoc GhcRn)
+ Refact.Compat: [docs_structure] :: Docs -> DocStructure
+ Refact.Compat: [foExt] :: FieldOcc pass -> XCFieldOcc pass
+ Refact.Compat: [foLabel] :: FieldOcc pass -> XRec pass RdrName
+ Refact.Compat: [hfbAnn] :: HsFieldBind lhs rhs -> XHsFieldBind lhs
+ Refact.Compat: [hfbLHS] :: HsFieldBind lhs rhs -> lhs
+ Refact.Compat: [hfbPun] :: HsFieldBind lhs rhs -> Bool
+ Refact.Compat: [hfbRHS] :: HsFieldBind lhs rhs -> rhs
+ Refact.Compat: [hsDocIdentifiers] :: WithHsDocIdentifiers a pass -> ![Located (IdP pass)]
+ Refact.Compat: [hsDocString] :: WithHsDocIdentifiers a pass -> !a
+ Refact.Compat: [hsb_quote] :: HsBracketTc -> HsQuote GhcRn
+ Refact.Compat: [hsb_splices] :: HsBracketTc -> [PendingTcSplice]
+ Refact.Compat: [hsb_ty] :: HsBracketTc -> Type
+ Refact.Compat: [hsb_wrap] :: HsBracketTc -> Maybe QuoteWrapper
+ Refact.Compat: [hsmodExt] :: HsModule p -> XCModule p
+ Refact.Compat: [ideclAnn] :: XImportDeclPass -> EpAnn EpAnnImportDecl
+ Refact.Compat: [ideclImportList] :: ImportDecl pass -> Maybe (ImportListInterpretation, XRec pass [LIE pass])
+ Refact.Compat: [ideclSourceText] :: XImportDeclPass -> SourceText
+ Refact.Compat: [nann_bars] :: NameAnn -> [EpaLocation]
+ Refact.Compat: [nann_mclose] :: NameAnn -> Maybe EpaLocation
+ Refact.Compat: [nann_mopen] :: NameAnn -> Maybe EpaLocation
+ Refact.Compat: [nann_unicode] :: NameAnn -> Bool
+ Refact.Compat: [ol_from_fun] :: OverLitRn -> LIdP GhcRn
+ Refact.Compat: [tcdLayout] :: TyClDecl pass -> !LayoutInfo pass
+ Refact.Compat: [tyDeclATs] :: TyDeclBinders (p :: Pass) -> ![(LocatedA (IdP (GhcPass p)), TyConFlavour ())]
+ Refact.Compat: [tyDeclConsWithFields] :: TyDeclBinders (p :: Pass) -> !LConsWithFields p
+ Refact.Compat: [tyDeclMainBinder] :: TyDeclBinders (p :: Pass) -> !(LocatedA (IdP (GhcPass p)), TyConFlavour ())
+ Refact.Compat: [tyDeclOpSigs] :: TyDeclBinders (p :: Pass) -> ![LocatedA (IdP (GhcPass p))]
+ Refact.Compat: [unIdSig] :: IdSig -> Id
+ Refact.Compat: [unRecFieldsDotDot] :: RecFieldsDotDot -> Int
+ Refact.Compat: [utsplice_result] :: HsUntypedSpliceResult thing -> thing
+ Refact.Compat: [utsplice_result_finalizers] :: HsUntypedSpliceResult thing -> ThModFinalizers
+ Refact.Compat: ambiguousFieldOccLRdrName :: forall (p :: Pass). AmbiguousFieldOcc (GhcPass p) -> LocatedN RdrName
+ Refact.Compat: ambiguousFieldOccRdrName :: forall (p :: Pass). AmbiguousFieldOcc (GhcPass p) -> RdrName
+ Refact.Compat: ann :: SrcSpanAnn' a -> a
+ Refact.Compat: anyLConIsGadt :: Foldable f => f (GenLocated l (ConDecl pass)) -> Bool
+ Refact.Compat: collectXSplicePat :: CollectPass p => CollectFlag p -> XSplicePat p -> [IdP p] -> [IdP p]
+ Refact.Compat: collectXXHsBindsLR :: CollectPass p => XXHsBindsLR p pR -> [IdP p] -> [IdP p]
+ Refact.Compat: commentSrcSpan :: LEpaComment -> SrcSpan
+ Refact.Compat: conDetailsArity :: (rec -> Arity) -> HsConDetails tyarg arg rec -> Arity
+ Refact.Compat: data AbsBinds
+ Refact.Compat: data DataConCantHappen
+ Refact.Compat: data DataDefnCons a
+ Refact.Compat: data DocStructureItem
+ Refact.Compat: data Docs
+ Refact.Compat: data DotFieldOcc p
+ Refact.Compat: data HsBndrVis pass
+ Refact.Compat: data HsBracketTc
+ Refact.Compat: data HsConPatTyArg p
+ Refact.Compat: data HsDoFlavour
+ Refact.Compat: data HsDocStringDecorator
+ Refact.Compat: data HsFieldBind lhs rhs
+ Refact.Compat: data HsLinearArrowTokens pass
+ Refact.Compat: data HsPatExpansion a b
+ Refact.Compat: data HsQuote p
+ Refact.Compat: data HsToken (tok :: Symbol)
+ Refact.Compat: data HsUniToken (tok :: Symbol) (utok :: Symbol)
+ Refact.Compat: data HsUntypedSplice id
+ Refact.Compat: data HsUntypedSpliceResult thing
+ Refact.Compat: data ImportListInterpretation
+ Refact.Compat: data IsBootInterface
+ Refact.Compat: data LConsWithFields (p :: Pass)
+ Refact.Compat: data LHsRecUpdFields p
+ Refact.Compat: data LamCaseVariant
+ Refact.Compat: data LayoutInfo pass
+ Refact.Compat: data OpName
+ Refact.Compat: data OverLitRn
+ Refact.Compat: data PromotionFlag
+ Refact.Compat: data TokenLocation
+ Refact.Compat: data TyDeclBinders (p :: Pass)
+ Refact.Compat: data WithHsDocIdentifiers a pass
+ Refact.Compat: data XImportDeclPass
+ Refact.Compat: data XModulePs
+ Refact.Compat: data XXPatGhcTc
+ Refact.Compat: data family HsRecUpdParent x
+ Refact.Compat: dataConCantHappen :: DataConCantHappen -> a
+ Refact.Compat: dataDefnConsNewOrData :: DataDefnCons a -> NewOrData
+ Refact.Compat: docStringChunks :: HsDocString -> [LHsDocStringChunk]
+ Refact.Compat: emptyDocs :: Docs
+ Refact.Compat: exactPrintHsDocString :: HsDocString -> String
+ Refact.Compat: extractSpecPragName :: SourceText -> String
+ Refact.Compat: familyInfoTyConFlavour :: Maybe tc -> FamilyInfo pass -> TyConFlavour tc
+ Refact.Compat: firstDataDefnCon :: DataDefnCons a -> Maybe a
+ Refact.Compat: gHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -> HsExpr (GhcPass id)
+ Refact.Compat: gParPat :: forall (pass :: Pass). LPat (GhcPass pass) -> Pat (GhcPass pass)
+ Refact.Compat: getTokenSrcSpan :: TokenLocation -> SrcSpan
+ Refact.Compat: hsDocIds :: WithHsDocIdentifiers a GhcRn -> NameSet
+ Refact.Compat: hsScopedKvs :: LHsKind GhcRn -> [Name]
+ Refact.Compat: ieDeprecation :: forall (p :: Pass). IsPass p => IE (GhcPass p) -> Maybe (WarningTxt (GhcPass p))
+ Refact.Compat: initParserOpts :: DynFlags -> ParserOpts
+ Refact.Compat: isBoringHsPat :: forall (p :: Pass). OutputableBndrId p => LPat (GhcPass p) -> Bool
+ Refact.Compat: isDoComprehensionContext :: HsDoFlavour -> Bool
+ Refact.Compat: isHsBndrInvisible :: HsBndrVis pass -> Bool
+ Refact.Compat: isMonadDoCompContext :: HsDoFlavour -> Bool
+ Refact.Compat: isMonadDoStmtContext :: HsDoFlavour -> Bool
+ Refact.Compat: isPromoted :: PromotionFlag -> Bool
+ Refact.Compat: isTypeDataDefnCons :: DataDefnCons a -> Bool
+ Refact.Compat: isUnliftedHsBinds :: LHsBinds GhcTc -> Bool
+ Refact.Compat: la2e :: SrcSpanAnn' a -> EpaLocation
+ Refact.Compat: lamCaseKeyword :: LamCaseVariant -> SDoc
+ Refact.Compat: matchDoContextErrString :: HsDoFlavour -> SDoc
+ Refact.Compat: mkConLikeTc :: ConLike -> HsExpr GhcTc
+ Refact.Compat: mkGeneratedHsDocString :: String -> HsDocString
+ Refact.Compat: mkHsDocStringChunk :: String -> HsDocStringChunk
+ Refact.Compat: mkHsDocStringChunkUtf8ByteString :: ByteString -> HsDocStringChunk
+ Refact.Compat: mkHsStringFS :: forall (p :: Pass). FastString -> HsLit (GhcPass p)
+ Refact.Compat: 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)))
+ Refact.Compat: mkModuleName :: String -> ModuleName
+ Refact.Compat: mkModuleNameFS :: FastString -> ModuleName
+ Refact.Compat: moduleNameColons :: ModuleName -> String
+ Refact.Compat: moduleNameFS :: ModuleName -> FastString
+ Refact.Compat: moduleNameSlashes :: ModuleName -> String
+ Refact.Compat: moduleNameString :: ModuleName -> String
+ Refact.Compat: newtype HsDocStringChunk
+ Refact.Compat: newtype IdSig
+ Refact.Compat: newtype ModuleName
+ Refact.Compat: newtype RecFieldsDotDot
+ Refact.Compat: noHsTok :: forall (tok :: Symbol). GenLocated TokenLocation (HsToken tok)
+ Refact.Compat: noHsUniTok :: forall (tok :: Symbol) (utok :: Symbol). GenLocated TokenLocation (HsUniToken tok utok)
+ Refact.Compat: ppDataDefnHeader :: forall (p :: Pass). OutputableBndrId p => (Maybe (LHsContext (GhcPass p)) -> SDoc) -> HsDataDefn (GhcPass p) -> SDoc
+ Refact.Compat: pp_vanilla_decl_head :: forall (p :: Pass). OutputableBndrId p => XRec (GhcPass p) (IdP (GhcPass p)) -> LHsQTyVars (GhcPass p) -> LexicalFixity -> Maybe (LHsContext (GhcPass p)) -> SDoc
+ Refact.Compat: pprAHsDoFlavour :: HsDoFlavour -> SDoc
+ Refact.Compat: pprArrowExpr :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc
+ Refact.Compat: pprArrowMatchContextNouns :: HsArrowMatchContext -> SDoc
+ Refact.Compat: pprHsArgsApp :: (OutputableBndr id, Outputable tm, Outputable ty) => id -> LexicalFixity -> [HsArg p tm ty] -> SDoc
+ Refact.Compat: pprHsArrType :: HsArrAppType -> SDoc
+ Refact.Compat: pprHsArrow :: forall (pass :: Pass). OutputableBndrId pass => HsArrow (GhcPass pass) -> SDoc
+ Refact.Compat: pprHsDoFlavour :: HsDoFlavour -> SDoc
+ Refact.Compat: pprHsDocDebug :: Outputable (IdP name) => HsDoc name -> SDoc
+ Refact.Compat: pprHsDocString :: HsDocString -> SDoc
+ Refact.Compat: pprHsDocStrings :: [HsDocString] -> SDoc
+ Refact.Compat: pprMatchContextNouns :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsMatchContext p -> SDoc
+ Refact.Compat: pprMaybeWithDoc :: Maybe (LHsDoc name) -> SDoc -> SDoc
+ Refact.Compat: pprPrefixFastString :: FastString -> SDoc
+ Refact.Compat: pprStmtCat :: forall (p :: Pass) body. Stmt (GhcPass p) body -> SDoc
+ Refact.Compat: pprTypedSplice :: forall (p :: Pass). OutputableBndrId p => Maybe SplicePointName -> LHsExpr (GhcPass p) -> SDoc
+ Refact.Compat: pprUntypedSplice :: forall (p :: Pass). OutputableBndrId p => Bool -> Maybe SplicePointName -> HsUntypedSplice (GhcPass p) -> SDoc
+ Refact.Compat: pprWithDoc :: LHsDoc name -> SDoc -> SDoc
+ Refact.Compat: pprWithDocString :: HsDocString -> SDoc -> SDoc
+ Refact.Compat: pprXOverLit :: forall (p :: Pass). GhcPass p -> XOverLit (GhcPass p) -> SDoc
+ Refact.Compat: ppr_infix_expr_rn :: HsExpansion (HsExpr GhcRn) (HsExpr GhcRn) -> Maybe SDoc
+ Refact.Compat: ppr_infix_expr_tc :: XXExprGhcTc -> Maybe SDoc
+ Refact.Compat: ppr_with_pending_tc_splices :: SDoc -> [PendingTcSplice] -> SDoc
+ Refact.Compat: renderHsDocString :: HsDocString -> String
+ Refact.Compat: renderHsDocStrings :: [HsDocString] -> String
+ Refact.Compat: showAst :: Data a => a -> String
+ Refact.Compat: srcSpan2e :: SrcSpan -> EpaLocation
+ Refact.Compat: stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering
+ Refact.Compat: trailingAnnToAddEpAnn :: TrailingAnn -> AddEpAnn
+ Refact.Compat: transferEntryDP :: forall (m :: Type -> Type) t2 t1 a b. (Monad m, Monoid t2, Typeable t1, Typeable t2) => LocatedAn t1 a -> LocatedAn t2 b -> TransformT m (LocatedAn t2 b)
+ Refact.Compat: transferEntryDP' :: forall (m :: Type -> Type). Monad m => LHsDecl GhcPs -> LHsDecl GhcPs -> TransformT m (LHsDecl GhcPs)
+ Refact.Compat: type AnnConstraint an = Monoid an
+ Refact.Compat: type DocStructure = [DocStructureItem]
+ Refact.Compat: type HsDoc = WithHsDocIdentifiers HsDocString
+ Refact.Compat: type LAmbiguousFieldOcc pass = XRec pass AmbiguousFieldOcc pass
+ Refact.Compat: type LFieldLabelStrings p = XRec p FieldLabelStrings p
+ Refact.Compat: type LHsDoc pass = Located HsDoc pass
+ Refact.Compat: type LHsDocStringChunk = Located HsDocStringChunk
+ Refact.Compat: type LHsFieldBind p id arg = XRec p HsFieldBind id arg
+ Refact.Compat: type LHsToken (tok :: Symbol) p = XRec p HsToken tok
+ Refact.Compat: type LHsUniToken (tok :: Symbol) (utok :: Symbol) p = XRec p HsUniToken tok utok
+ Refact.Compat: unpackHDSC :: HsDocStringChunk -> String
+ Refact.Compat: updateHsTyVarBndrFlag :: forall flag flag' (pass :: Pass). (flag -> flag') -> HsTyVarBndr flag (GhcPass pass) -> HsTyVarBndr flag' (GhcPass pass)
- Refact.Compat: ABE :: XABE p -> IdP p -> IdP p -> HsWrapper -> TcSpecPrags -> ABExport p
+ Refact.Compat: ABE :: Id -> Id -> HsWrapper -> TcSpecPrags -> ABExport
- Refact.Compat: AbsBinds :: XAbsBinds idL idR -> [TyVar] -> [EvVar] -> [ABExport idL] -> [TcEvBinds] -> LHsBinds idL -> Bool -> HsBindLR idL idR
+ Refact.Compat: AbsBinds :: [TyVar] -> [EvVar] -> [ABExport] -> [TcEvBinds] -> LHsBinds GhcTc -> Bool -> AbsBinds
- Refact.Compat: Ambiguous :: XAmbiguous pass -> LocatedN RdrName -> AmbiguousFieldOcc pass
+ Refact.Compat: Ambiguous :: XAmbiguous pass -> XRec pass RdrName -> AmbiguousFieldOcc pass
- Refact.Compat: AnnsModule :: [AddEpAnn] -> AnnList -> AnnsModule
+ Refact.Compat: AnnsModule :: [AddEpAnn] -> [TrailingAnn] -> Maybe (RealSrcSpan, RealSrcSpan) -> AnnsModule
- Refact.Compat: ApplicativeArgMany :: XApplicativeArgMany idL -> [ExprLStmt idL] -> HsExpr idL -> LPat idL -> HsStmtContext (ApplicativeArgStmCtxPass idL) -> ApplicativeArg idL
+ Refact.Compat: ApplicativeArgMany :: XApplicativeArgMany idL -> [ExprLStmt idL] -> HsExpr idL -> LPat idL -> HsDoFlavour -> ApplicativeArg idL
- Refact.Compat: CExport :: Located CExportSpec -> Located SourceText -> ForeignExport
+ Refact.Compat: CExport :: XCExport pass -> XRec pass CExportSpec -> ForeignExport pass
- Refact.Compat: CImport :: Located CCallConv -> Located Safety -> Maybe Header -> CImportSpec -> Located SourceText -> ForeignImport
+ Refact.Compat: CImport :: XCImport pass -> XRec pass CCallConv -> XRec pass Safety -> Maybe Header -> CImportSpec -> ForeignImport pass
- Refact.Compat: ClassDecl :: XClassDecl pass -> Maybe (LHsContext pass) -> LIdP pass -> LHsQTyVars pass -> LexicalFixity -> [LHsFunDep pass] -> [LSig pass] -> LHsBinds pass -> [LFamilyDecl pass] -> [LTyFamDefltDecl pass] -> [LDocDecl pass] -> TyClDecl pass
+ Refact.Compat: ClassDecl :: XClassDecl pass -> !LayoutInfo pass -> Maybe (LHsContext pass) -> LIdP pass -> LHsQTyVars pass -> LexicalFixity -> [LHsFunDep pass] -> [LSig pass] -> LHsBinds pass -> [LFamilyDecl pass] -> [LTyFamDefltDecl pass] -> [LDocDecl pass] -> TyClDecl pass
- Refact.Compat: CoPat :: HsWrapper -> Pat GhcTc -> Type -> CoPat
+ Refact.Compat: CoPat :: HsWrapper -> Pat GhcTc -> Type -> XXPatGhcTc
- Refact.Compat: CompleteMatchSig :: XCompleteMatchSig pass -> SourceText -> XRec pass [LIdP pass] -> Maybe (LIdP pass) -> Sig pass
+ Refact.Compat: CompleteMatchSig :: XCompleteMatchSig pass -> XRec pass [LIdP pass] -> Maybe (LIdP pass) -> Sig pass
- Refact.Compat: ConDeclField :: XConDeclField pass -> [LFieldOcc pass] -> LBangType pass -> Maybe LHsDocString -> ConDeclField pass
+ Refact.Compat: ConDeclField :: XConDeclField pass -> [LFieldOcc pass] -> LBangType pass -> Maybe (LHsDoc pass) -> ConDeclField pass
- Refact.Compat: ConDeclGADT :: XConDeclGADT pass -> [LIdP pass] -> XRec pass (HsOuterSigTyVarBndrs pass) -> Maybe (LHsContext pass) -> HsConDeclGADTDetails pass -> LHsType pass -> Maybe LHsDocString -> ConDecl pass
+ Refact.Compat: ConDeclGADT :: XConDeclGADT pass -> NonEmpty (LIdP pass) -> !LHsUniToken "::" "\8759" pass -> XRec pass (HsOuterSigTyVarBndrs pass) -> Maybe (LHsContext pass) -> HsConDeclGADTDetails pass -> LHsType pass -> Maybe (LHsDoc pass) -> ConDecl pass
- Refact.Compat: ConDeclH98 :: XConDeclH98 pass -> LIdP pass -> Bool -> [LHsTyVarBndr Specificity pass] -> Maybe (LHsContext pass) -> HsConDeclH98Details pass -> Maybe LHsDocString -> ConDecl pass
+ Refact.Compat: ConDeclH98 :: XConDeclH98 pass -> LIdP pass -> Bool -> [LHsTyVarBndr Specificity pass] -> Maybe (LHsContext pass) -> HsConDeclH98Details pass -> Maybe (LHsDoc pass) -> ConDecl pass
- Refact.Compat: DecBrG :: XDecBrG p -> HsGroup p -> HsBracket p
+ Refact.Compat: DecBrG :: XDecBrG p -> HsGroup p -> HsQuote p
- Refact.Compat: DecBrL :: XDecBrL p -> [LHsDecl p] -> HsBracket p
+ Refact.Compat: DecBrL :: XDecBrL p -> [LHsDecl p] -> HsQuote p
- Refact.Compat: DoExpr :: Maybe ModuleName -> HsStmtContext p
+ Refact.Compat: DoExpr :: Maybe ModuleName -> HsDoFlavour
- Refact.Compat: DocCommentNamed :: String -> HsDocString -> DocDecl
+ Refact.Compat: DocCommentNamed :: String -> LHsDoc pass -> DocDecl pass
- Refact.Compat: DocCommentNext :: HsDocString -> DocDecl
+ Refact.Compat: DocCommentNext :: LHsDoc pass -> DocDecl pass
- Refact.Compat: DocCommentPrev :: HsDocString -> DocDecl
+ Refact.Compat: DocCommentPrev :: LHsDoc pass -> DocDecl pass
- Refact.Compat: DocD :: XDocD p -> DocDecl -> HsDecl p
+ Refact.Compat: DocD :: XDocD p -> DocDecl p -> HsDecl p
- Refact.Compat: DocGroup :: Int -> HsDocString -> DocDecl
+ Refact.Compat: DocGroup :: Int -> LHsDoc pass -> DocDecl pass
- Refact.Compat: EpaSpan :: !RealSrcSpan -> EpaLocation
+ Refact.Compat: EpaSpan :: !RealSrcSpan -> !Maybe BufSpan -> EpaLocation
- Refact.Compat: ExpBr :: XExpBr p -> LHsExpr p -> HsBracket p
+ Refact.Compat: ExpBr :: XExpBr p -> LHsExpr p -> HsQuote p
- Refact.Compat: ExplicitSum :: XExplicitSum p -> ConTag -> Arity -> LHsExpr p -> HsExpr p
+ Refact.Compat: ExplicitSum :: XExplicitSum p -> ConTag -> SumWidth -> LHsExpr p -> HsExpr p
- Refact.Compat: ExtractedTHDocs :: Maybe HsDocString -> DeclDocMap -> ArgDocMap -> DeclDocMap -> ExtractedTHDocs
+ Refact.Compat: ExtractedTHDocs :: Maybe (HsDoc GhcRn) -> UniqMap Name (HsDoc GhcRn) -> UniqMap Name (IntMap (HsDoc GhcRn)) -> UniqMap Name (HsDoc GhcRn) -> ExtractedTHDocs
- Refact.Compat: FieldLabelStrings :: [Located (HsFieldLabel p)] -> FieldLabelStrings p
+ Refact.Compat: FieldLabelStrings :: [XRec p (DotFieldOcc p)] -> FieldLabelStrings p
- Refact.Compat: FieldOcc :: XCFieldOcc pass -> LocatedN RdrName -> FieldOcc pass
+ Refact.Compat: FieldOcc :: XCFieldOcc pass -> XRec pass RdrName -> FieldOcc pass
- Refact.Compat: ForeignExport :: XForeignExport pass -> LIdP pass -> LHsSigType pass -> ForeignExport -> ForeignDecl pass
+ Refact.Compat: ForeignExport :: XForeignExport pass -> LIdP pass -> LHsSigType pass -> ForeignExport pass -> ForeignDecl pass
- Refact.Compat: ForeignImport :: XForeignImport pass -> LIdP pass -> LHsSigType pass -> ForeignImport -> ForeignDecl pass
+ Refact.Compat: ForeignImport :: XForeignImport pass -> LIdP pass -> LHsSigType pass -> ForeignImport pass -> ForeignDecl pass
- Refact.Compat: FunBind :: XFunBind idL idR -> LIdP idL -> MatchGroup idR (LHsExpr idR) -> [CoreTickish] -> HsBindLR idL idR
+ Refact.Compat: FunBind :: XFunBind idL idR -> LIdP idL -> MatchGroup idR (LHsExpr idR) -> HsBindLR idL idR
- Refact.Compat: FunRhs :: LIdP p -> LexicalFixity -> SrcStrictness -> HsMatchContext p
+ Refact.Compat: FunRhs :: LIdP (NoGhcTc p) -> LexicalFixity -> SrcStrictness -> HsMatchContext p
- Refact.Compat: GhciStmtCtxt :: HsStmtContext p
+ Refact.Compat: GhciStmtCtxt :: HsDoFlavour
- Refact.Compat: HsAnnotation :: XHsAnnotation pass -> SourceText -> AnnProvenance pass -> XRec pass (HsExpr pass) -> AnnDecl pass
+ Refact.Compat: HsAnnotation :: XHsAnnotation pass -> AnnProvenance pass -> XRec pass (HsExpr pass) -> AnnDecl pass
- Refact.Compat: HsAppKindTy :: XAppKindTy pass -> LHsType pass -> LHsKind pass -> HsType pass
+ Refact.Compat: HsAppKindTy :: XAppKindTy pass -> LHsType pass -> !LHsToken "@" pass -> LHsKind pass -> HsType pass
- Refact.Compat: HsAppType :: XAppTypeE p -> LHsExpr p -> LHsWcType (NoGhcTc p) -> HsExpr p
+ Refact.Compat: HsAppType :: XAppTypeE p -> LHsExpr p -> !LHsToken "@" p -> LHsWcType (NoGhcTc p) -> HsExpr p
- Refact.Compat: HsArgPar :: SrcSpan -> HsArg tm ty
+ Refact.Compat: HsArgPar :: SrcSpan -> HsArg p tm ty
- Refact.Compat: HsBinTick :: XBinTick p -> Int -> Int -> LHsExpr p -> HsExpr p
+ Refact.Compat: HsBinTick :: Int -> Int -> LHsExpr GhcTc -> XXExprGhcTc
- Refact.Compat: HsCharTy :: SourceText -> Char -> HsTyLit
+ Refact.Compat: HsCharTy :: XCharTy pass -> Char -> HsTyLit pass
- Refact.Compat: HsCmdLamCase :: XCmdLamCase id -> MatchGroup id (LHsCmd id) -> HsCmd id
+ Refact.Compat: HsCmdLamCase :: XCmdLamCase id -> LamCaseVariant -> MatchGroup id (LHsCmd id) -> HsCmd id
- Refact.Compat: HsCmdLet :: XCmdLet id -> HsLocalBinds id -> LHsCmd id -> HsCmd id
+ Refact.Compat: HsCmdLet :: XCmdLet id -> !LHsToken "let" id -> HsLocalBinds id -> !LHsToken "in" id -> LHsCmd id -> HsCmd id
- Refact.Compat: HsCmdPar :: XCmdPar id -> LHsCmd id -> HsCmd id
+ Refact.Compat: HsCmdPar :: XCmdPar id -> !LHsToken "(" id -> LHsCmd id -> !LHsToken ")" id -> HsCmd id
- Refact.Compat: HsDataDefn :: XCHsDataDefn pass -> NewOrData -> Maybe (LHsContext pass) -> Maybe (XRec pass CType) -> Maybe (LHsKind pass) -> [LConDecl pass] -> HsDeriving pass -> HsDataDefn pass
+ Refact.Compat: HsDataDefn :: XCHsDataDefn pass -> Maybe (LHsContext pass) -> Maybe (XRec pass CType) -> Maybe (LHsKind pass) -> DataDefnCons (LConDecl pass) -> HsDeriving pass -> HsDataDefn pass
- Refact.Compat: HsDo :: XDo p -> HsStmtContext (HsDoRn p) -> XRec p [ExprLStmt p] -> HsExpr p
+ Refact.Compat: HsDo :: XDo p -> HsDoFlavour -> XRec p [ExprLStmt p] -> HsExpr p
- Refact.Compat: HsDocTy :: XDocTy pass -> LHsType pass -> LHsDocString -> HsType pass
+ Refact.Compat: HsDocTy :: XDocTy pass -> LHsType pass -> LHsDoc pass -> HsType pass
- Refact.Compat: HsExpanded :: a -> b -> HsExpansion a b
+ Refact.Compat: HsExpanded :: orig -> expanded -> HsExpansion orig expanded
- Refact.Compat: HsExplicitMult :: IsUnicodeSyntax -> Maybe AddEpAnn -> LHsType pass -> HsArrow pass
+ Refact.Compat: HsExplicitMult :: !LHsToken "%" pass -> !LHsType pass -> !LHsUniToken "->" "\8594" pass -> HsArrow pass
- Refact.Compat: HsGetField :: XGetField p -> LHsExpr p -> Located (HsFieldLabel p) -> HsExpr p
+ Refact.Compat: HsGetField :: XGetField p -> LHsExpr p -> XRec p (DotFieldOcc p) -> HsExpr p
- Refact.Compat: HsLamCase :: XLamCase p -> MatchGroup p (LHsExpr p) -> HsExpr p
+ Refact.Compat: HsLamCase :: XLamCase p -> LamCaseVariant -> MatchGroup p (LHsExpr p) -> HsExpr p
- Refact.Compat: HsLet :: XLet p -> HsLocalBinds p -> LHsExpr p -> HsExpr p
+ Refact.Compat: HsLet :: XLet p -> !LHsToken "let" p -> HsLocalBinds p -> !LHsToken "in" p -> LHsExpr p -> HsExpr p
- Refact.Compat: HsLinearArrow :: IsUnicodeSyntax -> Maybe AddEpAnn -> HsArrow pass
+ Refact.Compat: HsLinearArrow :: !HsLinearArrowTokens pass -> HsArrow pass
- Refact.Compat: HsModule :: EpAnn AnnsModule -> LayoutInfo -> Maybe (LocatedA ModuleName) -> Maybe (LocatedL [LIE GhcPs]) -> [LImportDecl GhcPs] -> [LHsDecl GhcPs] -> Maybe (LocatedP WarningTxt) -> Maybe LHsDocString -> HsModule
+ Refact.Compat: HsModule :: XCModule p -> Maybe (XRec p ModuleName) -> Maybe (XRec p [LIE p]) -> [LImportDecl p] -> [LHsDecl p] -> HsModule p
- Refact.Compat: HsNumTy :: SourceText -> Integer -> HsTyLit
+ Refact.Compat: HsNumTy :: XNumTy pass -> Integer -> HsTyLit pass
- Refact.Compat: HsOpTy :: XOpTy pass -> LHsType pass -> LIdP pass -> LHsType pass -> HsType pass
+ Refact.Compat: HsOpTy :: XOpTy pass -> PromotionFlag -> LHsType pass -> LIdP pass -> LHsType pass -> HsType pass
- Refact.Compat: HsOverLabel :: XOverLabel p -> FastString -> HsExpr p
+ Refact.Compat: HsOverLabel :: XOverLabel p -> SourceText -> FastString -> HsExpr p
- Refact.Compat: HsPar :: XPar p -> LHsExpr p -> HsExpr p
+ Refact.Compat: HsPar :: XPar p -> !LHsToken "(" p -> LHsExpr p -> !LHsToken ")" p -> HsExpr p
- Refact.Compat: HsParsedModule :: Located HsModule -> [FilePath] -> HsParsedModule
+ Refact.Compat: HsParsedModule :: Located (HsModule GhcPs) -> [FilePath] -> HsParsedModule
- Refact.Compat: HsPragSCC :: XSCC p -> SourceText -> StringLiteral -> HsPragE p
+ Refact.Compat: HsPragSCC :: XSCC p -> StringLiteral -> HsPragE p
- Refact.Compat: HsProjection :: XProjection p -> NonEmpty (Located (HsFieldLabel p)) -> HsExpr p
+ Refact.Compat: HsProjection :: XProjection p -> NonEmpty (XRec p (DotFieldOcc p)) -> HsExpr p
- Refact.Compat: HsQTvs :: XHsQTvs pass -> [LHsTyVarBndr () pass] -> LHsQTyVars pass
+ Refact.Compat: HsQTvs :: XHsQTvs pass -> [LHsTyVarBndr (HsBndrVis pass) pass] -> LHsQTyVars pass
- Refact.Compat: HsQualTy :: XQualTy pass -> Maybe (LHsContext pass) -> LHsType pass -> HsType pass
+ Refact.Compat: HsQualTy :: XQualTy pass -> LHsContext pass -> LHsType pass -> HsType pass
- Refact.Compat: HsQuasiQuote :: XQuasiQuote id -> IdP id -> IdP id -> SrcSpan -> FastString -> HsSplice id
+ Refact.Compat: HsQuasiQuote :: XQuasiQuote id -> IdP id -> XRec id FastString -> HsUntypedSplice id
- Refact.Compat: HsRecFields :: [LHsRecField p arg] -> Maybe (Located Int) -> HsRecFields p arg
+ Refact.Compat: HsRecFields :: [LHsRecField p arg] -> Maybe (XRec p RecFieldsDotDot) -> HsRecFields p arg
- Refact.Compat: HsRule :: XHsRule pass -> XRec pass (SourceText, RuleName) -> Activation -> Maybe [LHsTyVarBndr () (NoGhcTc pass)] -> [LRuleBndr pass] -> XRec pass (HsExpr pass) -> XRec pass (HsExpr pass) -> RuleDecl pass
+ Refact.Compat: HsRule :: XHsRule pass -> XRec pass RuleName -> Activation -> Maybe [LHsTyVarBndr () (NoGhcTc pass)] -> [LRuleBndr pass] -> XRec pass (HsExpr pass) -> XRec pass (HsExpr pass) -> RuleDecl pass
- Refact.Compat: HsRules :: XCRuleDecls pass -> SourceText -> [LRuleDecl pass] -> RuleDecls pass
+ Refact.Compat: HsRules :: XCRuleDecls pass -> [LRuleDecl pass] -> RuleDecls pass
- Refact.Compat: HsSpliceTy :: XSpliceTy pass -> HsSplice pass -> HsType pass
+ Refact.Compat: HsSpliceTy :: XSpliceTy pass -> HsUntypedSplice pass -> HsType pass
- Refact.Compat: HsStrTy :: SourceText -> FastString -> HsTyLit
+ Refact.Compat: HsStrTy :: XStrTy pass -> FastString -> HsTyLit pass
- Refact.Compat: HsStrict :: HsImplBang
+ Refact.Compat: HsStrict :: Bool -> HsImplBang
- Refact.Compat: HsTick :: XTick p -> CoreTickish -> LHsExpr p -> HsExpr p
+ Refact.Compat: HsTick :: CoreTickish -> LHsExpr GhcTc -> XXExprGhcTc
- Refact.Compat: HsTyLit :: XTyLit pass -> HsTyLit -> HsType pass
+ Refact.Compat: HsTyLit :: XTyLit pass -> HsTyLit pass -> HsType pass
- Refact.Compat: HsTypeArg :: SrcSpan -> ty -> HsArg tm ty
+ Refact.Compat: HsTypeArg :: !LHsToken "@" p -> ty -> HsArg p tm ty
- Refact.Compat: HsTypedSplice :: XTypedSplice id -> SpliceDecoration -> IdP id -> LHsExpr id -> HsSplice id
+ Refact.Compat: HsTypedSplice :: XTypedSplice p -> LHsExpr p -> HsExpr p
- Refact.Compat: HsUnboundVar :: XUnboundVar p -> OccName -> HsExpr p
+ Refact.Compat: HsUnboundVar :: XUnboundVar p -> RdrName -> HsExpr p
- Refact.Compat: HsUnrestrictedArrow :: IsUnicodeSyntax -> HsArrow pass
+ Refact.Compat: HsUnrestrictedArrow :: !LHsUniToken "->" "\8594" pass -> HsArrow pass
- Refact.Compat: HsUntypedSplice :: XUntypedSplice id -> SpliceDecoration -> IdP id -> LHsExpr id -> HsSplice id
+ Refact.Compat: HsUntypedSplice :: XUntypedSplice p -> HsUntypedSplice p -> HsExpr p
- Refact.Compat: HsValArg :: tm -> HsArg tm ty
+ Refact.Compat: HsValArg :: tm -> HsArg p tm ty
- Refact.Compat: IEDoc :: XIEDoc pass -> HsDocString -> IE pass
+ Refact.Compat: IEDoc :: XIEDoc pass -> LHsDoc pass -> IE pass
- Refact.Compat: IEGroup :: XIEGroup pass -> Int -> HsDocString -> IE pass
+ Refact.Compat: IEGroup :: XIEGroup pass -> Int -> LHsDoc pass -> IE pass
- Refact.Compat: IEName :: LocatedN name -> IEWrappedName name
+ Refact.Compat: IEName :: XIEName p -> LIdP p -> IEWrappedName p
- Refact.Compat: IEPattern :: EpaLocation -> LocatedN name -> IEWrappedName name
+ Refact.Compat: IEPattern :: XIEPattern p -> LIdP p -> IEWrappedName p
- Refact.Compat: IEThingAbs :: XIEThingAbs pass -> LIEWrappedName (IdP pass) -> IE pass
+ Refact.Compat: IEThingAbs :: XIEThingAbs pass -> LIEWrappedName pass -> IE pass
- Refact.Compat: IEThingAll :: XIEThingAll pass -> LIEWrappedName (IdP pass) -> IE pass
+ Refact.Compat: IEThingAll :: XIEThingAll pass -> LIEWrappedName pass -> IE pass
- Refact.Compat: IEThingWith :: XIEThingWith pass -> LIEWrappedName (IdP pass) -> IEWildcard -> [LIEWrappedName (IdP pass)] -> IE pass
+ Refact.Compat: IEThingWith :: XIEThingWith pass -> LIEWrappedName pass -> IEWildcard -> [LIEWrappedName pass] -> IE pass
- Refact.Compat: IEType :: EpaLocation -> LocatedN name -> IEWrappedName name
+ Refact.Compat: IEType :: XIEType p -> LIdP p -> IEWrappedName p
- Refact.Compat: IEVar :: XIEVar pass -> LIEWrappedName (IdP pass) -> IE pass
+ Refact.Compat: IEVar :: XIEVar pass -> LIEWrappedName pass -> IE pass
- Refact.Compat: IPBind :: XCIPBind id -> Either (XRec id HsIPName) (IdP id) -> LHsExpr id -> IPBind id
+ Refact.Compat: IPBind :: XCIPBind id -> XRec id HsIPName -> LHsExpr id -> IPBind id
- Refact.Compat: IdSig :: XIdSig pass -> Id -> Sig pass
+ Refact.Compat: IdSig :: Id -> IdSig
- Refact.Compat: ImportDecl :: XCImportDecl pass -> SourceText -> XRec pass ModuleName -> Maybe StringLiteral -> IsBootInterface -> Bool -> ImportDeclQualifiedStyle -> Bool -> Maybe (XRec pass ModuleName) -> Maybe (Bool, XRec pass [LIE pass]) -> ImportDecl pass
+ Refact.Compat: ImportDecl :: XCImportDecl pass -> XRec pass ModuleName -> ImportDeclPkgQual pass -> IsBootInterface -> Bool -> ImportDeclQualifiedStyle -> Maybe (XRec pass ModuleName) -> Maybe (ImportListInterpretation, XRec pass [LIE pass]) -> ImportDecl pass
- Refact.Compat: ListComp :: HsStmtContext p
+ Refact.Compat: ListComp :: HsDoFlavour
- Refact.Compat: MDoExpr :: Maybe ModuleName -> HsStmtContext p
+ Refact.Compat: MDoExpr :: Maybe ModuleName -> HsDoFlavour
- Refact.Compat: MG :: XMG p body -> XRec p [LMatch p body] -> Origin -> MatchGroup p body
+ Refact.Compat: MG :: XMG p body -> XRec p [LMatch p body] -> MatchGroup p body
- Refact.Compat: Match :: XCMatch p body -> HsMatchContext (NoGhcTc p) -> [LPat p] -> GRHSs p body -> Match p body
+ Refact.Compat: Match :: XCMatch p body -> HsMatchContext p -> [LPat p] -> GRHSs p body -> Match p body
- Refact.Compat: MatchGroupTc :: [Scaled Type] -> Type -> MatchGroupTc
+ Refact.Compat: MatchGroupTc :: [Scaled Type] -> Type -> Origin -> MatchGroupTc
- Refact.Compat: MinimalSig :: XMinimalSig pass -> SourceText -> LBooleanFormula (LIdP pass) -> Sig pass
+ Refact.Compat: MinimalSig :: XMinimalSig pass -> LBooleanFormula (LIdP pass) -> Sig pass
- Refact.Compat: MonadComp :: HsStmtContext p
+ Refact.Compat: MonadComp :: HsDoFlavour
- Refact.Compat: NameAnnRArrow :: EpaLocation -> [TrailingAnn] -> NameAnn
+ Refact.Compat: NameAnnRArrow :: Bool -> Maybe EpaLocation -> EpaLocation -> Maybe EpaLocation -> [TrailingAnn] -> NameAnn
- Refact.Compat: OverLit :: XOverLit p -> OverLitVal -> HsExpr p -> HsOverLit p
+ Refact.Compat: OverLit :: XOverLit p -> OverLitVal -> HsOverLit p
- Refact.Compat: OverLitTc :: Bool -> Type -> OverLitTc
+ Refact.Compat: OverLitTc :: Bool -> HsExpr GhcTc -> Type -> OverLitTc
- Refact.Compat: PatBind :: XPatBind idL idR -> LPat idL -> GRHSs idR (LHsExpr idR) -> ([CoreTickish], [[CoreTickish]]) -> HsBindLR idL idR
+ Refact.Compat: PatBind :: XPatBind idL idR -> LPat idL -> GRHSs idR (LHsExpr idR) -> HsBindLR idL idR
- Refact.Compat: PatBr :: XPatBr p -> LPat p -> HsBracket p
+ Refact.Compat: PatBr :: XPatBr p -> LPat p -> HsQuote p
- Refact.Compat: RecConGADT :: XRec pass [LConDeclField pass] -> HsConDeclGADTDetails pass
+ Refact.Compat: RecConGADT :: XRec pass [LConDeclField pass] -> LHsUniToken "->" "\8594" pass -> HsConDeclGADTDetails pass
- Refact.Compat: RecordUpd :: XRecordUpd p -> LHsExpr p -> Either [LHsRecUpdField p] [LHsRecUpdProj p] -> HsExpr p
+ Refact.Compat: RecordUpd :: XRecordUpd p -> LHsExpr p -> LHsRecUpdFields p -> HsExpr p
- Refact.Compat: SCCFunSig :: XSCCFunSig pass -> SourceText -> LIdP pass -> Maybe (XRec pass StringLiteral) -> Sig pass
+ Refact.Compat: SCCFunSig :: XSCCFunSig pass -> LIdP pass -> Maybe (XRec pass StringLiteral) -> Sig pass
- Refact.Compat: SourceText :: String -> SourceText
+ Refact.Compat: SourceText :: FastString -> SourceText
- Refact.Compat: SpecInstSig :: XSpecInstSig pass -> SourceText -> LHsSigType pass -> Sig pass
+ Refact.Compat: SpecInstSig :: XSpecInstSig pass -> LHsSigType pass -> Sig pass
- Refact.Compat: SpliceDecl :: XSpliceDecl p -> XRec p (HsSplice p) -> SpliceExplicitFlag -> SpliceDecl p
+ Refact.Compat: SpliceDecl :: XSpliceDecl p -> XRec p (HsUntypedSplice p) -> SpliceDecoration -> SpliceDecl p
- Refact.Compat: TypBr :: XTypBr p -> LHsType p -> HsBracket p
+ Refact.Compat: TypBr :: XTypBr p -> LHsType p -> HsQuote p
- Refact.Compat: Unambiguous :: XUnambiguous pass -> LocatedN RdrName -> AmbiguousFieldOcc pass
+ Refact.Compat: Unambiguous :: XUnambiguous pass -> XRec pass RdrName -> AmbiguousFieldOcc pass
- Refact.Compat: VarBr :: XVarBr p -> Bool -> LIdP p -> HsBracket p
+ Refact.Compat: VarBr :: XVarBr p -> Bool -> LIdP p -> HsQuote p
- Refact.Compat: Warning :: XWarning pass -> [LIdP pass] -> WarningTxt -> WarnDecl pass
+ Refact.Compat: Warning :: XWarning pass -> [LIdP pass] -> WarningTxt pass -> WarnDecl pass
- Refact.Compat: Warnings :: XWarnings pass -> SourceText -> [LWarnDecl pass] -> WarnDecls pass
+ Refact.Compat: Warnings :: XWarnings pass -> [LWarnDecl pass] -> WarnDecls pass
- Refact.Compat: [abe_mono] :: ABExport p -> IdP p
+ Refact.Compat: [abe_mono] :: ABExport -> Id
- Refact.Compat: [abe_poly] :: ABExport p -> IdP p
+ Refact.Compat: [abe_poly] :: ABExport -> Id
- Refact.Compat: [abe_prags] :: ABExport p -> TcSpecPrags
+ Refact.Compat: [abe_prags] :: ABExport -> TcSpecPrags
- Refact.Compat: [abe_wrap] :: ABExport p -> HsWrapper
+ Refact.Compat: [abe_wrap] :: ABExport -> HsWrapper
- Refact.Compat: [abs_binds] :: HsBindLR idL idR -> LHsBinds idL
+ Refact.Compat: [abs_binds] :: AbsBinds -> LHsBinds GhcTc
- Refact.Compat: [abs_ev_binds] :: HsBindLR idL idR -> [TcEvBinds]
+ Refact.Compat: [abs_ev_binds] :: AbsBinds -> [TcEvBinds]
- Refact.Compat: [abs_ev_vars] :: HsBindLR idL idR -> [EvVar]
+ Refact.Compat: [abs_ev_vars] :: AbsBinds -> [EvVar]
- Refact.Compat: [abs_exports] :: HsBindLR idL idR -> [ABExport idL]
+ Refact.Compat: [abs_exports] :: AbsBinds -> [ABExport]
- Refact.Compat: [abs_sig] :: HsBindLR idL idR -> Bool
+ Refact.Compat: [abs_sig] :: AbsBinds -> Bool
- Refact.Compat: [abs_tvs] :: HsBindLR idL idR -> [TyVar]
+ Refact.Compat: [abs_tvs] :: AbsBinds -> [TyVar]
- Refact.Compat: [am_decls] :: AnnsModule -> AnnList
+ Refact.Compat: [am_decls] :: AnnsModule -> [TrailingAnn]
- Refact.Compat: [cd_fld_doc] :: ConDeclField pass -> Maybe LHsDocString
+ Refact.Compat: [cd_fld_doc] :: ConDeclField pass -> Maybe (LHsDoc pass)
- Refact.Compat: [co_cpt_wrap] :: CoPat -> HsWrapper
+ Refact.Compat: [co_cpt_wrap] :: XXPatGhcTc -> HsWrapper
- Refact.Compat: [co_pat_inner] :: CoPat -> Pat GhcTc
+ Refact.Compat: [co_pat_inner] :: XXPatGhcTc -> Pat GhcTc
- Refact.Compat: [co_pat_ty] :: CoPat -> Type
+ Refact.Compat: [co_pat_ty] :: XXPatGhcTc -> Type
- Refact.Compat: [con_doc] :: ConDecl pass -> Maybe LHsDocString
+ Refact.Compat: [con_doc] :: ConDecl pass -> Maybe (LHsDoc pass)
- Refact.Compat: [con_names] :: ConDecl pass -> [LIdP pass]
+ Refact.Compat: [con_names] :: ConDecl pass -> NonEmpty (LIdP pass)
- Refact.Compat: [dd_cons] :: HsDataDefn pass -> [LConDecl pass]
+ Refact.Compat: [dd_cons] :: HsDataDefn pass -> DataDefnCons (LConDecl pass)
- Refact.Compat: [ethd_arg_docs] :: ExtractedTHDocs -> ArgDocMap
+ Refact.Compat: [ethd_arg_docs] :: ExtractedTHDocs -> UniqMap Name (IntMap (HsDoc GhcRn))
- Refact.Compat: [ethd_decl_docs] :: ExtractedTHDocs -> DeclDocMap
+ Refact.Compat: [ethd_decl_docs] :: ExtractedTHDocs -> UniqMap Name (HsDoc GhcRn)
- Refact.Compat: [ethd_inst_docs] :: ExtractedTHDocs -> DeclDocMap
+ Refact.Compat: [ethd_inst_docs] :: ExtractedTHDocs -> UniqMap Name (HsDoc GhcRn)
- Refact.Compat: [ethd_mod_header] :: ExtractedTHDocs -> Maybe HsDocString
+ Refact.Compat: [ethd_mod_header] :: ExtractedTHDocs -> Maybe (HsDoc GhcRn)
- Refact.Compat: [fd_fe] :: ForeignDecl pass -> ForeignExport
+ Refact.Compat: [fd_fe] :: ForeignDecl pass -> ForeignExport pass
- Refact.Compat: [fd_fi] :: ForeignDecl pass -> ForeignImport
+ Refact.Compat: [fd_fi] :: ForeignDecl pass -> ForeignImport pass
- Refact.Compat: [gf_field] :: HsExpr p -> Located (HsFieldLabel p)
+ Refact.Compat: [gf_field] :: HsExpr p -> XRec p (DotFieldOcc p)
- Refact.Compat: [hpm_module] :: HsParsedModule -> Located HsModule
+ Refact.Compat: [hpm_module] :: HsParsedModule -> Located (HsModule GhcPs)
- Refact.Compat: [hsmodAnn] :: HsModule -> EpAnn AnnsModule
+ Refact.Compat: [hsmodAnn] :: XModulePs -> EpAnn AnnsModule
- Refact.Compat: [hsmodDecls] :: HsModule -> [LHsDecl GhcPs]
+ Refact.Compat: [hsmodDecls] :: HsModule p -> [LHsDecl p]
- Refact.Compat: [hsmodDeprecMessage] :: HsModule -> Maybe (LocatedP WarningTxt)
+ Refact.Compat: [hsmodDeprecMessage] :: XModulePs -> Maybe (LocatedP (WarningTxt GhcPs))
- Refact.Compat: [hsmodExports] :: HsModule -> Maybe (LocatedL [LIE GhcPs])
+ Refact.Compat: [hsmodExports] :: HsModule p -> Maybe (XRec p [LIE p])
- Refact.Compat: [hsmodHaddockModHeader] :: HsModule -> Maybe LHsDocString
+ Refact.Compat: [hsmodHaddockModHeader] :: XModulePs -> Maybe (LHsDoc GhcPs)
- Refact.Compat: [hsmodImports] :: HsModule -> [LImportDecl GhcPs]
+ Refact.Compat: [hsmodImports] :: HsModule p -> [LImportDecl p]
- Refact.Compat: [hsmodLayout] :: HsModule -> LayoutInfo
+ Refact.Compat: [hsmodLayout] :: XModulePs -> LayoutInfo GhcPs
- Refact.Compat: [hsmodName] :: HsModule -> Maybe (LocatedA ModuleName)
+ Refact.Compat: [hsmodName] :: HsModule p -> Maybe (XRec p ModuleName)
- Refact.Compat: [hsq_explicit] :: LHsQTyVars pass -> [LHsTyVarBndr () pass]
+ Refact.Compat: [hsq_explicit] :: LHsQTyVars pass -> [LHsTyVarBndr (HsBndrVis pass) pass]
- Refact.Compat: [hst_ctxt] :: HsType pass -> Maybe (LHsContext pass)
+ Refact.Compat: [hst_ctxt] :: HsType pass -> LHsContext pass
- Refact.Compat: [ideclImplicit] :: ImportDecl pass -> Bool
+ Refact.Compat: [ideclImplicit] :: XImportDeclPass -> Bool
- Refact.Compat: [ideclPkgQual] :: ImportDecl pass -> Maybe StringLiteral
+ Refact.Compat: [ideclPkgQual] :: ImportDecl pass -> ImportDeclPkgQual pass
- Refact.Compat: [m_ctxt] :: Match p body -> HsMatchContext (NoGhcTc p)
+ Refact.Compat: [m_ctxt] :: Match p body -> HsMatchContext p
- Refact.Compat: [mc_fun] :: HsMatchContext p -> LIdP p
+ Refact.Compat: [mc_fun] :: HsMatchContext p -> LIdP (NoGhcTc p)
- Refact.Compat: [mg_origin] :: MatchGroup p body -> Origin
+ Refact.Compat: [mg_origin] :: MatchGroupTc -> Origin
- Refact.Compat: [ol_rebindable] :: OverLitTc -> Bool
+ Refact.Compat: [ol_rebindable] :: OverLitRn -> Bool
- Refact.Compat: [ol_witness] :: HsOverLit p -> HsExpr p
+ Refact.Compat: [ol_witness] :: OverLitTc -> HsExpr GhcTc
- Refact.Compat: [proj_flds] :: HsExpr p -> NonEmpty (Located (HsFieldLabel p))
+ Refact.Compat: [proj_flds] :: HsExpr p -> NonEmpty (XRec p (DotFieldOcc p))
- Refact.Compat: [rd_name] :: RuleDecl pass -> XRec pass (SourceText, RuleName)
+ Refact.Compat: [rd_name] :: RuleDecl pass -> XRec pass RuleName
- Refact.Compat: [rec_dotdot] :: HsRecFields p arg -> Maybe (Located Int)
+ Refact.Compat: [rec_dotdot] :: HsRecFields p arg -> Maybe (XRec p RecFieldsDotDot)
- Refact.Compat: [rupd_flds] :: HsExpr p -> Either [LHsRecUpdField p] [LHsRecUpdProj p]
+ Refact.Compat: [rupd_flds] :: HsExpr p -> LHsRecUpdFields p
- Refact.Compat: [stmt_context] :: ApplicativeArg idL -> HsStmtContext (ApplicativeArgStmCtxPass idL)
+ Refact.Compat: [stmt_context] :: ApplicativeArg idL -> HsDoFlavour
- Refact.Compat: collectHsValBinders :: forall (idL :: Pass) (idR :: Pass). CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) (GhcPass idR) -> [IdP (GhcPass idL)]
+ Refact.Compat: collectHsValBinders :: forall (idL :: Pass) idR. CollectPass (GhcPass idL) => CollectFlag (GhcPass idL) -> HsValBindsLR (GhcPass idL) idR -> [IdP (GhcPass idL)]
- Refact.Compat: collectXXPat :: CollectPass p => Proxy p -> CollectFlag p -> XXPat p -> [IdP p] -> [IdP p]
+ Refact.Compat: collectXXPat :: CollectPass p => CollectFlag p -> XXPat p -> [IdP p] -> [IdP p]
- Refact.Compat: data ABExport p
+ Refact.Compat: data ABExport
- Refact.Compat: data DocDecl
+ Refact.Compat: data DocDecl pass
- Refact.Compat: data ForeignExport
+ Refact.Compat: data ForeignExport pass
- Refact.Compat: data ForeignImport
+ Refact.Compat: data ForeignImport pass
- Refact.Compat: data HsArg tm ty
+ Refact.Compat: data HsArg p tm ty
- Refact.Compat: data HsExpansion a b
+ Refact.Compat: data HsExpansion orig expanded
- Refact.Compat: data HsModule
+ Refact.Compat: data HsModule p
- Refact.Compat: data HsTyLit
+ Refact.Compat: data HsTyLit pass
- Refact.Compat: data IEWrappedName name
+ Refact.Compat: data IEWrappedName p
- Refact.Compat: docDeclDoc :: DocDecl -> HsDocString
+ Refact.Compat: docDeclDoc :: DocDecl pass -> LHsDoc pass
- Refact.Compat: getOptions :: DynFlags -> StringBuffer -> FilePath -> [Located String]
+ Refact.Compat: getOptions :: ParserOpts -> StringBuffer -> FilePath -> (Messages PsMessage, [Located String])
- Refact.Compat: hsDataFamInstBinders :: forall (p :: Pass). IsPass p => DataFamInstDecl (GhcPass p) -> ([LocatedA (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
+ Refact.Compat: hsDataFamInstBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => DataFamInstDecl (GhcPass p) -> LConsWithFields p
- Refact.Compat: hsLTyClDeclBinders :: forall (p :: Pass). IsPass p => LocatedA (TyClDecl (GhcPass p)) -> ([LocatedA (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
+ Refact.Compat: hsLTyClDeclBinders :: forall (p :: Pass). (IsPass p, OutputableBndrId p) => LocatedA (TyClDecl (GhcPass p)) -> TyDeclBinders p
- Refact.Compat: hsLTyVarLocName :: forall flag (p :: Pass). LHsTyVarBndr flag (GhcPass p) -> LocatedN (IdP (GhcPass p))
+ Refact.Compat: hsLTyVarLocName :: forall (p :: Pass) flag. Anno (IdGhcP p) ~ SrcSpanAnnN => LHsTyVarBndr flag (GhcPass p) -> LocatedN (IdP (GhcPass p))
- Refact.Compat: hsLTyVarLocNames :: forall (p :: Pass). LHsQTyVars (GhcPass p) -> [LocatedN (IdP (GhcPass p))]
+ Refact.Compat: hsLTyVarLocNames :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsQTyVars (GhcPass p) -> [LocatedN (IdP (GhcPass p))]
- Refact.Compat: hsLinear :: a -> HsScaled pass a
+ Refact.Compat: hsLinear :: forall a (p :: Pass). a -> HsScaled (GhcPass p) a
- Refact.Compat: hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr () pass]
+ Refact.Compat: hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr (HsBndrVis pass) pass]
- Refact.Compat: hsRecFieldId :: HsRecField GhcTc arg -> Located Id
+ Refact.Compat: hsRecFieldId :: HsRecField GhcTc arg -> Id
- Refact.Compat: hsRecFieldSel :: HsRecField pass arg -> Located (XCFieldOcc pass)
+ Refact.Compat: hsRecFieldSel :: UnXRec p => HsRecField p arg -> XCFieldOcc p
- Refact.Compat: hsRecUpdFieldId :: HsRecField' (AmbiguousFieldOcc GhcTc) arg -> Located Id
+ Refact.Compat: hsRecUpdFieldId :: HsFieldBind (LAmbiguousFieldOcc GhcTc) arg -> Located Id
- Refact.Compat: hsRecUpdFieldOcc :: HsRecField' (AmbiguousFieldOcc GhcTc) arg -> LFieldOcc GhcTc
+ Refact.Compat: hsRecUpdFieldOcc :: HsFieldBind (LAmbiguousFieldOcc GhcTc) arg -> LFieldOcc GhcTc
- Refact.Compat: hsRecUpdFieldRdr :: forall (p :: Pass). HsRecUpdField (GhcPass p) -> Located RdrName
+ Refact.Compat: hsRecUpdFieldRdr :: forall (p :: Pass) q. HsRecUpdField (GhcPass p) q -> Located RdrName
- Refact.Compat: hsSigDoc :: Sig name -> SDoc
+ Refact.Compat: hsSigDoc :: forall (p :: Pass). IsPass p => Sig (GhcPass p) -> SDoc
- Refact.Compat: hsUnrestricted :: a -> HsScaled pass a
+ Refact.Compat: hsUnrestricted :: forall a (p :: Pass). a -> HsScaled (GhcPass p) a
- Refact.Compat: ieLWrappedName :: LIEWrappedName name -> LocatedN name
+ Refact.Compat: ieLWrappedName :: forall (p :: Pass). LIEWrappedName (GhcPass p) -> LIdP (GhcPass p)
- Refact.Compat: ieWrappedLName :: IEWrappedName name -> LocatedN name
+ Refact.Compat: ieWrappedLName :: forall (p :: Pass). IEWrappedName (GhcPass p) -> LIdP (GhcPass p)
- Refact.Compat: ieWrappedName :: IEWrappedName name -> name
+ Refact.Compat: ieWrappedName :: forall (p :: Pass). IEWrappedName (GhcPass p) -> IdP (GhcPass p)
- Refact.Compat: isIrrefutableHsPat :: forall (p :: Pass). OutputableBndrId p => DynFlags -> LPat (GhcPass p) -> Bool
+ Refact.Compat: isIrrefutableHsPat :: forall (p :: Pass). OutputableBndrId p => Bool -> LPat (GhcPass p) -> Bool
- Refact.Compat: lieWrappedName :: LIEWrappedName name -> name
+ Refact.Compat: lieWrappedName :: forall (p :: Pass). LIEWrappedName (GhcPass p) -> IdP (GhcPass p)
- Refact.Compat: looksLazyPatBind :: forall (p :: Pass). HsBind (GhcPass p) -> Bool
+ Refact.Compat: looksLazyPatBind :: HsBind GhcTc -> Bool
- Refact.Compat: mkHsAppKindTy :: forall (p :: Pass). XAppKindTy (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
+ Refact.Compat: mkHsAppKindTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsToken "@" (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- Refact.Compat: mkHsCaseAlt :: forall (p :: Pass) body. (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan, Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA) => LPat (GhcPass p) -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p)))
+ Refact.Compat: 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)))
- Refact.Compat: mkHsComp :: HsStmtContext GhcRn -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> HsExpr GhcPs
+ Refact.Compat: mkHsComp :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> HsExpr GhcPs
- Refact.Compat: mkHsCompAnns :: HsStmtContext GhcRn -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> EpAnn AnnList -> HsExpr GhcPs
+ Refact.Compat: mkHsCompAnns :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> EpAnn AnnList -> HsExpr GhcPs
- Refact.Compat: mkHsDo :: HsStmtContext GhcRn -> LocatedL [ExprLStmt GhcPs] -> HsExpr GhcPs
+ Refact.Compat: mkHsDo :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> HsExpr GhcPs
- Refact.Compat: mkHsDoAnns :: HsStmtContext GhcRn -> LocatedL [ExprLStmt GhcPs] -> EpAnn AnnList -> HsExpr GhcPs
+ Refact.Compat: mkHsDoAnns :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> EpAnn AnnList -> HsExpr GhcPs
- Refact.Compat: mkHsLam :: forall (p :: Pass). (IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ NoExtField) => [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
+ Refact.Compat: mkHsLam :: forall (p :: Pass). (IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ Origin) => [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- Refact.Compat: mkHsOpTy :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsType (GhcPass p) -> LocatedN (IdP (GhcPass p)) -> LHsType (GhcPass p) -> HsType (GhcPass p)
+ Refact.Compat: mkHsOpTy :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => PromotionFlag -> LHsType (GhcPass p) -> LocatedN (IdP (GhcPass p)) -> LHsType (GhcPass p) -> HsType (GhcPass p)
- Refact.Compat: mkHsPatSigType :: EpAnn EpaLocation -> LHsType GhcPs -> HsPatSigType GhcPs
+ Refact.Compat: mkHsPatSigType :: EpAnnCO -> LHsType GhcPs -> HsPatSigType GhcPs
- Refact.Compat: mkHsQTvs :: [LHsTyVarBndr () GhcPs] -> LHsQTyVars GhcPs
+ Refact.Compat: mkHsQTvs :: [LHsTyVarBndr (HsBndrVis GhcPs) GhcPs] -> LHsQTyVars GhcPs
- Refact.Compat: mkMatch :: forall (p :: Pass). IsPass p => HsMatchContext (NoGhcTc (GhcPass p)) -> [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> HsLocalBinds (GhcPass p) -> LMatch (GhcPass p) (LHsExpr (GhcPass p))
+ Refact.Compat: mkMatch :: forall (p :: Pass). IsPass p => HsMatchContext (GhcPass p) -> [LPat (GhcPass p)] -> LHsExpr (GhcPass p) -> HsLocalBinds (GhcPass p) -> LMatch (GhcPass p) (LHsExpr (GhcPass p))
- Refact.Compat: mkNPat :: Located (HsOverLit GhcPs) -> Maybe (SyntaxExpr GhcPs) -> EpAnn [AddEpAnn] -> Pat GhcPs
+ Refact.Compat: mkNPat :: LocatedAn NoEpAnns (HsOverLit GhcPs) -> Maybe (SyntaxExpr GhcPs) -> EpAnn [AddEpAnn] -> Pat GhcPs
- Refact.Compat: mkNPlusKPat :: LocatedN RdrName -> Located (HsOverLit GhcPs) -> EpAnn EpaLocation -> Pat GhcPs
+ Refact.Compat: mkNPlusKPat :: LocatedN RdrName -> LocatedAn NoEpAnns (HsOverLit GhcPs) -> EpAnn EpaLocation -> Pat GhcPs
- Refact.Compat: mkPrefixFunRhs :: LIdP p -> HsMatchContext p
+ Refact.Compat: mkPrefixFunRhs :: LIdP (NoGhcTc p) -> HsMatchContext p
- Refact.Compat: mkSimpleMatch :: forall (p :: Pass) body. (Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA, Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan) => HsMatchContext (NoGhcTc (GhcPass p)) -> [LPat (GhcPass p)] -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p)))
+ Refact.Compat: 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)))
- Refact.Compat: mkVarBind :: forall (p :: Pass). IdP (GhcPass p) -> LHsExpr (GhcPass p) -> LHsBind (GhcPass p)
+ Refact.Compat: mkVarBind :: IdP GhcTc -> LHsExpr GhcTc -> LHsBind GhcTc
- Refact.Compat: newOrDataToFlavour :: NewOrData -> TyConFlavour
+ Refact.Compat: newOrDataToFlavour :: NewOrData -> TyConFlavour tc
- Refact.Compat: nlHsDo :: HsStmtContext GhcRn -> [LStmt GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs
+ Refact.Compat: nlHsDo :: HsDoFlavour -> [LStmt GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs
- Refact.Compat: nlHsTyConApp :: forall (p :: Pass) a. IsSrcSpanAnn p a => LexicalFixity -> IdP (GhcPass p) -> [LHsTypeArg (GhcPass p)] -> LHsType (GhcPass p)
+ Refact.Compat: nlHsTyConApp :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> LexicalFixity -> IdP (GhcPass p) -> [LHsTypeArg (GhcPass p)] -> LHsType (GhcPass p)
- Refact.Compat: nlHsTyVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => IdP (GhcPass p) -> LHsType (GhcPass p)
+ Refact.Compat: nlHsTyVar :: forall (p :: Pass) a. IsSrcSpanAnn p a => PromotionFlag -> IdP (GhcPass p) -> LHsType (GhcPass p)
- Refact.Compat: numVisibleArgs :: [HsArg tm ty] -> Arity
+ Refact.Compat: numVisibleArgs :: [HsArg p tm ty] -> Arity
- Refact.Compat: parseDynamicFilePragma :: MonadIO m => DynFlags -> [Located String] -> m (DynFlags, [Located String], [Warn])
+ Refact.Compat: parseDynamicFilePragma :: MonadIO m => DynFlags -> [Located String] -> m (DynFlags, [Located String], Messages DriverMessage)
- Refact.Compat: pattern AsPat :: () => XAsPat p -> LIdP p -> LPat p -> Pat p
+ Refact.Compat: pattern AsPat :: () => XAsPat p -> LIdP p -> !LHsToken "@" p -> LPat p -> Pat p
- Refact.Compat: pattern ParPat :: () => XParPat p -> LPat p -> Pat p
+ Refact.Compat: pattern ParPat :: () => XParPat p -> !LHsToken "(" p -> LPat p -> !LHsToken ")" p -> Pat p
- Refact.Compat: pattern SplicePat :: () => XSplicePat p -> HsSplice p -> Pat p
+ Refact.Compat: pattern SplicePat :: () => XSplicePat p -> HsUntypedSplice p -> Pat p
- Refact.Compat: pattern SumPat :: () => XSumPat p -> LPat p -> ConTag -> Arity -> Pat p
+ Refact.Compat: pattern SumPat :: () => XSumPat p -> LPat p -> ConTag -> SumWidth -> Pat p
- Refact.Compat: pprAStmtContext :: (Outputable (IdP p), UnXRec p) => HsStmtContext p -> SDoc
+ Refact.Compat: pprAStmtContext :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsStmtContext p -> SDoc
- Refact.Compat: pprDo :: forall (p :: Pass) body any. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => HsStmtContext any -> [LStmt (GhcPass p) body] -> SDoc
+ Refact.Compat: pprDo :: forall (p :: Pass) body. (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => HsDoFlavour -> [LStmt (GhcPass p) body] -> SDoc
- Refact.Compat: pprFieldLabelStrings :: FieldLabelStrings p -> SDoc
+ Refact.Compat: pprFieldLabelStrings :: (UnXRec p, Outputable (XRec p FieldLabelString)) => FieldLabelStrings p -> SDoc
- Refact.Compat: pprFullRuleName :: Located (SourceText, RuleName) -> SDoc
+ Refact.Compat: pprFullRuleName :: SourceText -> GenLocated a RuleName -> SDoc
- Refact.Compat: pprMatchContext :: (Outputable (IdP p), UnXRec p) => HsMatchContext p -> SDoc
+ Refact.Compat: pprMatchContext :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsMatchContext p -> SDoc
- Refact.Compat: pprMatchContextNoun :: (Outputable (IdP p), UnXRec p) => HsMatchContext p -> SDoc
+ Refact.Compat: pprMatchContextNoun :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsMatchContext p -> SDoc
- Refact.Compat: pprStmtContext :: (Outputable (IdP p), UnXRec p) => HsStmtContext p -> SDoc
+ Refact.Compat: pprStmtContext :: (Outputable (IdP (NoGhcTc p)), UnXRec (NoGhcTc p)) => HsStmtContext p -> SDoc
- Refact.Compat: pprStmtInCtxt :: forall (idL :: Pass) (idR :: Pass) body. (OutputableBndrId idL, OutputableBndrId idR, Outputable body, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA) => HsStmtContext (GhcPass idL) -> StmtLR (GhcPass idL) (GhcPass idR) body -> SDoc
+ Refact.Compat: 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
- Refact.Compat: ppr_quasi :: OutputableBndr p => p -> p -> FastString -> SDoc
+ Refact.Compat: ppr_quasi :: OutputableBndr p => p -> FastString -> SDoc
- Refact.Compat: ppr_splice :: forall (p :: Pass). OutputableBndrId p => SDoc -> IdP (GhcPass p) -> LHsExpr (GhcPass p) -> SDoc -> SDoc
+ Refact.Compat: ppr_splice :: forall (p :: Pass). OutputableBndrId p => SDoc -> Maybe SplicePointName -> LHsExpr (GhcPass p) -> SDoc
- Refact.Compat: replaceLWrappedName :: LIEWrappedName name1 -> name2 -> LIEWrappedName name2
+ Refact.Compat: replaceLWrappedName :: LIEWrappedName GhcPs -> IdP GhcRn -> LIEWrappedName GhcRn
- Refact.Compat: replaceWrappedName :: IEWrappedName name1 -> name2 -> IEWrappedName name2
+ Refact.Compat: replaceWrappedName :: IEWrappedName GhcPs -> IdP GhcRn -> IEWrappedName GhcRn
- Refact.Compat: spanHsLocaLBinds :: forall (p :: Pass). Data (HsLocalBinds (GhcPass p)) => HsLocalBinds (GhcPass p) -> SrcSpan
+ Refact.Compat: spanHsLocaLBinds :: forall (p :: Pass). HsLocalBinds (GhcPass p) -> SrcSpan
- Refact.Compat: type ErrorMessages = Bag MsgEnvelope DecoratedSDoc
+ Refact.Compat: type ErrorMessages = Messages GhcMessage
- Refact.Compat: type HsConPatDetails p = HsConDetails HsPatSigType NoGhcTc p LPat p HsRecFields p LPat p
+ Refact.Compat: type HsConPatDetails p = HsConDetails HsConPatTyArg NoGhcTc p LPat p HsRecFields p LPat p
- Refact.Compat: type HsRecField p arg = HsRecField' FieldOcc p arg
+ Refact.Compat: type HsRecField p arg = HsFieldBind LFieldOcc p arg
- Refact.Compat: type HsRecUpdField p = HsRecField' AmbiguousFieldOcc p LHsExpr p
+ Refact.Compat: type HsRecUpdField p q = HsFieldBind LAmbiguousFieldOcc p LHsExpr q
- Refact.Compat: type LDocDecl pass = XRec pass DocDecl
+ Refact.Compat: type LDocDecl pass = XRec pass DocDecl pass
- Refact.Compat: type LHsRecUpdField p = XRec p HsRecUpdField p
+ Refact.Compat: type LHsRecUpdField p q = XRec p HsRecUpdField p q
- Refact.Compat: type LHsTypeArg p = HsArg LHsType p LHsKind p
+ Refact.Compat: type LHsTypeArg p = HsArg p LHsType p LHsKind p
- Refact.Compat: type LIEWrappedName name = LocatedA IEWrappedName name
+ Refact.Compat: type LIEWrappedName p = XRec p IEWrappedName p
- Refact.Compat: type Module = Located HsModule
+ Refact.Compat: type Module = Located HsModule GhcPs
- Refact.Compat: type RecProj p arg = HsRecField' FieldLabelStrings p arg
+ Refact.Compat: type RecProj p arg = HsFieldBind LFieldLabelStrings p arg
- Refact.Compat: type SrcSpanLess a = a
+ Refact.Compat: type SrcSpanLess (a :: k) = a
- Refact.Compat: 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)
+ Refact.Compat: 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
- Refact.Compat: type family Anno a = (b :: Type)
+ Refact.Compat: type family SyntaxExprGhc (p :: Pass) = (r :: Type) | r -> p
- Refact.Compat: type ReplaceWorker a mod = (Data a, Data mod) => mod -> Parser (LocatedA a) -> Int -> Refactoring SrcSpan -> IO mod
+ Refact.Compat: type ReplaceWorker a mod = (Data a, Data mod) => mod -> Parser LocatedA a -> Int -> Refactoring SrcSpan -> IO mod
- Refact.Compat: unguardedGRHSs :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan => SrcSpan -> LocatedA (body (GhcPass p)) -> EpAnn GrhsAnn -> GRHSs (GhcPass p) (LocatedA (body (GhcPass p)))
+ Refact.Compat: 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)))
- Refact.Compat: unguardedRHS :: forall (p :: Pass) body. Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpan => EpAnn GrhsAnn -> SrcSpan -> LocatedA (body (GhcPass p)) -> [LGRHS (GhcPass p) (LocatedA (body (GhcPass p)))]
+ Refact.Compat: 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)))]
- Refact.Utils: getAnnSpan :: forall a. Located a -> AnnSpan
+ Refact.Utils: getAnnSpan :: Located a -> AnnSpan
- Refact.Utils: getAnnSpanA :: forall an a. LocatedAn an a -> AnnSpan
+ Refact.Utils: getAnnSpanA :: LocatedAn an a -> AnnSpan
- Refact.Utils: modifyAnnKey :: (Data mod, Data t, Data old, Data new, Monoid t, Typeable t) => mod -> LocatedAn t old -> LocatedAn t new -> M (LocatedAn t new)
+ Refact.Utils: modifyAnnKey :: (Data mod, Data t, Data old, Data new, AnnConstraint t, Typeable t) => mod -> LocatedAn t old -> LocatedAn t new -> M (LocatedAn t new)
- Refact.Utils: type Module = Located HsModule
+ Refact.Utils: type Module = Located HsModule GhcPs

Files

CHANGELOG view
@@ -1,3 +1,6 @@+v0.15.0.0+  * #151, support GHC 9.12 (@alanz)+ v0.14.0.0   * #144, support GHC 9.8 
README.md view
@@ -2,7 +2,14 @@ [`refact`](https://hackage.haskell.org/package/refact) package. It is currently integrated into [HLint](https://github.com/ndmitchell/hlint) to enable the automatic application of suggestions. -apply-refact 0.14.x supports GHC 9.2 through 9.8; 0.13.x supports GHC 9.2 through 9.6; 0.12.x and 0.11.x support GHC 9.2 and 9.4; 0.10.x supports GHC 9.2; 0.9.x supports GHC 8.6 through 9.0.+# GHC Version Compatibility++- 0.15.x supports GHC 9.2 through 9.8, and 9.12. Unfortunately we are unable to support GHC 9.10.+- 0.14.x supports GHC 9.2 through 9.8.+- 0.13.x supports GHC 9.2 through 9.6.+- 0.12.x and 0.11.x support GHC 9.2 and 9.4.+- 0.10.x supports GHC 9.2.+- 0.9.x supports GHC 8.6 through 9.0.  # Install 
apply-refact.cabal view
@@ -1,168 +1,201 @@-cabal-version:       3.0+cabal-version:      3.0+name:               apply-refact+version:            0.15.0.0+synopsis:           Perform refactorings specified by the refact library.+description:+  Perform refactorings specified by the refact library. It is primarily used with HLint's --refactor flag. -name:                apply-refact-version:             0.14.0.0-synopsis:            Perform refactorings specified by the refact library.-description:         Perform refactorings specified by the refact library. It is primarily used with HLint's --refactor flag.-license:             BSD-3-Clause-license-file:        LICENSE-author:              Matthew Pickering-maintainer:          matthewtpickering@gmail.com+license:            BSD-3-Clause+license-file:       LICENSE+author:             Matthew Pickering+maintainer:         matthewtpickering@gmail.com+ -- copyright:-category:            Development-homepage:            https://github.com/mpickering/apply-refact-bug-reports:         https://github.com/mpickering/apply-refact/issues-build-type:          Simple-extra-source-files:  CHANGELOG-                   , README.md-                   , tests/examples/*.hs-                   , tests/examples/*.hs.refact-                   , tests/examples/*.hs.expected-tested-with:         GHC==9.8.1, GHC==9.6.3, GHC==9.4.6, GHC==9.2.8+category:           Development+homepage:           https://github.com/mpickering/apply-refact+bug-reports:        https://github.com/mpickering/apply-refact/issues+build-type:         Simple+extra-source-files:+  CHANGELOG+  README.md+  tests/examples/*.hs+  tests/examples/*.hs.expected+  tests/examples/*.hs.refact +tested-with:+  GHC ==9.2.8 || ==9.4.6 || ==9.6.6 || ==9.8.4 || ==9.12.1  source-repository head   type:     git   location: https://github.com/mpickering/apply-refact.git  library-  exposed-modules:   Refact.Utils-                   , Refact.Apply-                   , Refact.Fixity-                   , Refact.Internal-                   , Refact.Compat-  GHC-Options: -Wall-  build-depends: base >=4.16 && < 5-               , refact >= 0.2-               , ghc-boot-th-               , ghc-exactprint ^>= 1.5.0 || ^>= 1.6.0 || ^>= 1.7.0 || ^>= 1.8.0-               , containers >= 0.6.0.1 && < 0.8-               , extra >= 1.7.3-               , syb >= 0.7.1-               , process >= 1.6-               , transformers >= 0.5.6.2 && < 0.7-               , filemanip >= 0.3.6.3 && < 0.4-               , uniplate >= 1.6.13-               , unix-compat >= 0.5.2-               , directory >= 1.3-  if (impl(ghc >= 9.8) && impl(ghc < 9.9))-    build-depends: ghc ^>= 9.8-  if (impl(ghc >= 9.6) && impl(ghc < 9.7))-    build-depends: ghc ^>= 9.6-  if (impl(ghc >= 9.4) && impl(ghc < 9.5))-    build-depends: ghc ^>= 9.4-  if (impl(ghc >= 9.2) && impl(ghc < 9.3))-    build-depends: ghc ^>= 9.2+  exposed-modules:+    Refact.Apply+    Refact.Compat+    Refact.Fixity+    Refact.Internal+    Refact.Utils -  default-extensions:  FlexibleContexts-                     , FlexibleInstances-                     , FunctionalDependencies-                     , GADTs-                     , LambdaCase-                     , MultiParamTypeClasses-                     , NamedFieldPuns-                     , PolyKinds-                     , RankNTypes-                     , ScopedTypeVariables-                     , TupleSections-                     , TypeApplications-                     , TypeOperators-  hs-source-dirs:      src-  default-language:    Haskell2010+  ghc-options:        -Wall+  build-depends:+    , base            >=4.16    && <5+    , containers      >=0.6.0.1 && <0.8+    , data-default+    , directory       >=1.3+    , extra           >=1.7.3+    , filemanip       >=0.3.6.3 && <0.4+    , ghc+    , ghc-boot-th+    , ghc-exactprint  ^>=1.5.0  || ^>=1.6.0 || ^>=1.7.0 || ^>=1.8.0 || ^>=1.12.0+    , process         >=1.6+    , refact          >=0.2+    , syb             >=0.7.1+    , transformers    >=0.5.6.2 && <0.7+    , uniplate        >=1.6.13+    , unix-compat     >=0.5.2 +  if (impl(ghc >=9.8) && impl(ghc <9.9))+    build-depends: ghc ^>=9.8++  if (impl(ghc >=9.6) && impl(ghc <9.7))+    build-depends: ghc ^>=9.6++  if (impl(ghc >=9.4) && impl(ghc <9.5))+    build-depends: ghc ^>=9.4++  if (impl(ghc >=9.2) && impl(ghc <9.3))+    build-depends: ghc ^>=9.2++  if impl(ghc <9.10)+    build-depends: data-default-class++  default-extensions:+    FlexibleContexts+    FlexibleInstances+    FunctionalDependencies+    GADTs+    LambdaCase+    MultiParamTypeClasses+    NamedFieldPuns+    PolyKinds+    RankNTypes+    ScopedTypeVariables+    TupleSections+    TypeApplications+    TypeOperators++  hs-source-dirs:     src+  default-language:   Haskell2010+ executable refactor-  main-is: Main.hs+  main-is:            Main.hs   other-modules:-                 Paths_apply_refact-                 Refact.Apply-                 Refact.Compat-                 Refact.Fixity-                 Refact.Internal-                 Refact.Options-                 Refact.Run-                 Refact.Utils-  autogen-modules:-                 Paths_apply_refact-  hs-source-dirs:      src-  default-language: Haskell2010-  ghc-options: -Wall -fno-warn-unused-do-bind-  build-depends: base-               , refact-               , ghc-exactprint-               , ghc-               , ghc-boot-th-               , ghc-paths-               , containers-               , extra-               , syb-               , process-               , directory-               , optparse-applicative >= 0.15.1.0-               , filemanip-               , unix-compat-               , filepath-               , transformers-               , uniplate-  default-extensions:  FlexibleContexts-                     , FlexibleInstances-                     , FunctionalDependencies-                     , GADTs-                     , LambdaCase-                     , MultiParamTypeClasses-                     , NamedFieldPuns-                     , PolyKinds-                     , RankNTypes-                     , ScopedTypeVariables-                     , TupleSections-                     , TypeApplications-                     , TypeOperators+    Paths_apply_refact+    Refact.Apply+    Refact.Compat+    Refact.Fixity+    Refact.Internal+    Refact.Options+    Refact.Run+    Refact.Utils -Test-Suite test-  type:                exitcode-stdio-1.0-  hs-source-dirs:      tests, src-  main-is:             Test.hs+  autogen-modules:    Paths_apply_refact+  hs-source-dirs:     src+  default-language:   Haskell2010+  ghc-options:        -Wall -fno-warn-unused-do-bind+  build-depends:+    , base                  >=4.16     && <5+    , containers+    , data-default+    , directory+    , extra+    , filemanip+    , filepath+    , ghc+    , ghc-boot-th+    , ghc-exactprint+    , ghc-paths+    , optparse-applicative  >=0.15.1.0+    , process+    , refact+    , syb+    , transformers+    , uniplate+    , unix-compat++  if impl(ghc <9.10)+    build-depends: data-default-class++  default-extensions:+    FlexibleContexts+    FlexibleInstances+    FunctionalDependencies+    GADTs+    LambdaCase+    MultiParamTypeClasses+    NamedFieldPuns+    PolyKinds+    RankNTypes+    ScopedTypeVariables+    TupleSections+    TypeApplications+    TypeOperators++test-suite test+  type:               exitcode-stdio-1.0+  hs-source-dirs:     tests src+  main-is:            Test.hs   other-modules:-                 Paths_apply_refact-                 Refact.Apply-                 Refact.Compat-                 Refact.Fixity-                 Refact.Internal-                 Refact.Options-                 Refact.Run-                 Refact.Utils-  ghc-options:         -threaded-  default-language:    Haskell2010-  build-depends:  tasty-                , tasty-golden-                , tasty-expected-failure-                , base-                , refact-                , ghc-exactprint-                , ghc-                , ghc-boot-th-                , ghc-paths-                , containers-                , extra-                , syb-                , process-                , directory-                , optparse-applicative-                , filemanip-                , unix-compat-                , filepath-                , silently-                , transformers-                , uniplate-  default-extensions:  FlexibleContexts-                     , FlexibleInstances-                     , FunctionalDependencies-                     , GADTs-                     , LambdaCase-                     , MultiParamTypeClasses-                     , NamedFieldPuns-                     , PolyKinds-                     , RankNTypes-                     , ScopedTypeVariables-                     , TupleSections-                     , TypeApplications-                     , TypeOperators+    Paths_apply_refact+    Refact.Apply+    Refact.Compat+    Refact.Fixity+    Refact.Internal+    Refact.Options+    Refact.Run+    Refact.Utils++  autogen-modules:    Paths_apply_refact+  ghc-options:        -threaded+  default-language:   Haskell2010+  build-depends:+    , base                    >=4.16 && <5+    , containers+    , directory+    , extra+    , filemanip+    , filepath+    , ghc+    , ghc-boot-th+    , ghc-exactprint+    , ghc-paths+    , optparse-applicative+    , process+    , refact+    , silently+    , syb+    , tasty+    , tasty-expected-failure+    , tasty-golden+    , transformers+    , uniplate+    , unix-compat++  if impl(ghc <9.10)+    build-depends: data-default++  default-extensions:+    FlexibleContexts+    FlexibleInstances+    FunctionalDependencies+    GADTs+    LambdaCase+    MultiParamTypeClasses+    NamedFieldPuns+    PolyKinds+    RankNTypes+    ScopedTypeVariables+    TupleSections+    TypeApplications+    TypeOperators
src/Refact/Compat.hs view
@@ -4,7 +4,10 @@  module Refact.Compat (   -- * ApiAnnotation / GHC.Parser.ApiAnnotation+#if MIN_VERSION_ghc(9,12,0)+#else   AnnKeywordId (..),+#endif   DeltaPos(..),    -- * BasicTypes / GHC.Types.Basic@@ -93,6 +96,12 @@   setSrcSpanFile,   srcSpanToAnnSpan,   AnnSpan,+  commentSrcSpan,+  ann,+  transferEntryDP,+  transferEntryDP',+  AnnConstraint,+  showAst,  #if MIN_VERSION_ghc(9,4,0)   -- * GHC 9.4 stuff@@ -101,7 +110,11 @@ ) where  import Control.Monad.Trans.State.Strict (StateT)+#if MIN_VERSION_ghc(9,12,0)+import Data.Data (Data, Typeable)+#else import Data.Data (Data)+#endif import qualified GHC import GHC.Data.Bag (unitBag, bagToList) import GHC.Data.FastString (FastString, mkFastString)@@ -115,9 +128,9 @@ #endif import GHC.Driver.Session hiding (initDynFlags) #if MIN_VERSION_ghc(9,6,0)-import GHC.Hs hiding (Pat, Stmt, parseModuleName)+import GHC.Hs hiding (Pat, Stmt, parseModuleName, ann) #else-import GHC.Hs hiding (Pat, Stmt)+import GHC.Hs hiding (Pat, Stmt, ann) #endif import GHC.Parser.Header (getOptions) #if MIN_VERSION_ghc(9,8,0)@@ -148,7 +161,19 @@ import Language.Haskell.GHC.ExactPrint.Parsers (Parser) import Language.Haskell.GHC.ExactPrint.Utils import Refact.Types (Refactoring)+#if MIN_VERSION_ghc(9,12,0)+import qualified Language.Haskell.GHC.ExactPrint.Transform as Exact+#else+import Language.Haskell.GHC.ExactPrint (transferEntryDP, transferEntryDP', showAst)+#endif ++#if MIN_VERSION_ghc(9,12,0)+type AnnConstraint an = (NoAnn an, Semigroup an)+#else+type AnnConstraint an = (Monoid an)+#endif+ type MonadFail' = MonadFail  #if MIN_VERSION_ghc(9,6,0)@@ -164,14 +189,18 @@  ppp :: Errors -> [SDoc] #if MIN_VERSION_ghc(9,6,0)-ppp pst = concatMap unDecorated $ fmap ((diagnosticMessage (defaultDiagnosticOpts @GhcMessage)) . errMsgDiagnostic) $ bagToList $ getMessages pst+ppp = concatMap (unDecorated . diagnosticMessage (defaultDiagnosticOpts @GhcMessage) . errMsgDiagnostic) . bagToList . getMessages #elif MIN_VERSION_ghc(9,4,0)-ppp pst = concatMap unDecorated $ fmap (diagnosticMessage . errMsgDiagnostic) $ bagToList $ getMessages pst+ppp = concatMap (unDecorated . diagnosticMessage . errMsgDiagnostic) . bagToList . getMessages #else-ppp pst = concatMap unDecorated (errMsgDiagnostic <$> bagToList pst)+ppp = concatMap (unDecorated . errMsgDiagnostic) . bagToList #endif +#if MIN_VERSION_ghc(9,12,0)+type FunBind = HsMatchContext (LocatedN RdrName)+#else type FunBind = HsMatchContext GhcPs+#endif  pattern RealSrcLoc' :: RealSrcLoc -> SrcLoc pattern RealSrcLoc' r <- RealSrcLoc r _ where@@ -266,3 +295,35 @@   Int ->   Refactoring SrcSpan ->   IO mod+++commentSrcSpan :: GHC.LEpaComment -> SrcSpan+#if MIN_VERSION_ghc(9,12,0)+commentSrcSpan (GHC.L (GHC.EpaSpan l) _) = l+commentSrcSpan (GHC.L (GHC.EpaDelta l _ _) _) = l+#elif MIN_VERSION_ghc(9,4,0)+commentSrcSpan (GHC.L (GHC.Anchor l _) _) = GHC.RealSrcSpan l Strict.Nothing+#else+commentSrcSpan (GHC.L (GHC.Anchor l _) _) = GHC.RealSrcSpan l Nothing+#endif++#if MIN_VERSION_ghc(9,12,0)+transferEntryDP :: (Typeable t1, Typeable t2, Exact.HasTransform m)+  => LocatedAn t1 a -> LocatedAn t2 b -> m (LocatedAn t2 b)+transferEntryDP a b = return $ Exact.transferEntryDP a b+#endif++#if MIN_VERSION_ghc(9,12,0)+transferEntryDP' ::(Exact.HasTransform m)+    => LHsDecl GhcPs -> LHsDecl GhcPs -> m (LHsDecl GhcPs)+transferEntryDP' a b = return $ Exact.transferEntryDP' a b+#endif+++#if MIN_VERSION_ghc(9,12,0)+ann :: EpAnn a -> a+ann ls = GHC.anns ls+#else+ann :: SrcSpanAnn' a -> a+ann = GHC.ann+#endif
src/Refact/Fixity.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ViewPatterns #-} @@ -7,8 +8,8 @@ import Data.Generics hiding (Fixity) import Data.Maybe import qualified GHC-import Language.Haskell.GHC.ExactPrint-import Refact.Compat (Fixity (..), SourceText (..), occNameString, rdrNameOcc)+import Language.Haskell.GHC.ExactPrint hiding (transferEntryDP)+import Refact.Compat (Fixity (..), SourceText (..), occNameString, rdrNameOcc,transferEntryDP) import Refact.Utils  -- | Rearrange infix expressions to account for fixity.@@ -31,10 +32,13 @@ mkOpAppRn ::   [(String, GHC.Fixity)] ->   GHC.SrcSpanAnnA ->+#if MIN_VERSION_ghc(9,12,0)+  GHC.NoExtField ->+#else   GHC.EpAnn [GHC.AddEpAnn] ->+#endif   Expr -> -- Left operand; already rearranged-  Expr ->-  GHC.Fixity -> -- Operator and fixity+  Expr -> GHC.Fixity -> -- Operator and fixity   Expr -> -- Right operand (not an OpApp, but might   -- be a NegApp)   StateT () IO Expr@@ -151,4 +155,8 @@  -- Internal: help function for the above definitions. fixity :: GHC.FixityDirection -> Int -> [String] -> [(String, GHC.Fixity)]+#if MIN_VERSION_ghc(9,12,0)+fixity a p = map (,Fixity p a)+#else fixity a p = map (,Fixity (SourceText "") p a)+#endif
src/Refact/Internal.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-} {-# LANGUAGE ExplicitNamespaces #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE RecordWildCards #-}@@ -26,6 +27,10 @@ import Control.Monad.Trans.Maybe (MaybeT (..)) import Control.Monad.Trans.State.Strict import Data.Data+#if MIN_VERSION_ghc(9,10,0)+#else+import Data.Default+#endif import Data.Foldable (foldlM, for_) import Data.Functor.Identity (Identity (..)) import Data.Generics (everywhere, everywhereM, extM, listify, mkM, mkQ, mkT, something)@@ -37,6 +42,9 @@ import Data.Tuple.Extra import Debug.Trace import qualified GHC+#if MIN_VERSION_ghc(9,12,0)+import qualified GHC.Data.Strict as Strict+#endif import GHC.IO.Exception (IOErrorType (..)) import GHC.LanguageExtensions.Type (Extension (..)) import Language.Haskell.GHC.ExactPrint@@ -46,17 +54,29 @@     makeDeltaAst,     runTransform,     setEntryDP,-    transferEntryDP,-    transferEntryDP',   ) import Language.Haskell.GHC.ExactPrint.ExactPrint   ( EPOptions,+#if MIN_VERSION_ghc(9,12,0)+#else     epRigidity,+#endif     exactPrintWithOptions,     stringOptions,   ) import Language.Haskell.GHC.ExactPrint.Parsers+-- import Language.Haskell.GHC.ExactPrint.Types+#if MIN_VERSION_ghc(9,12,0)+#else import Language.Haskell.GHC.ExactPrint.Types+    -- epRigidity,+    -- Rigidity(..),+#endif+-- #if MIN_VERSION_ghc(9,12,0)+-- import Language.Haskell.GHC.ExactPrint.Utils (showAst)+-- #else+-- import Language.Haskell.GHC.ExactPrint.ExactPrint (showAst)+-- #endif import Language.Haskell.GHC.ExactPrint.Utils (ss2pos) import Refact.Compat   ( AnnSpan,@@ -66,7 +86,7 @@     FunBind,     Module,     ReplaceWorker,-    -- combineSrcSpans,+     combineSrcSpansA,     composeSrcSpan,     getOptions,@@ -88,10 +108,20 @@     xopt_set,     xopt_unset,     pattern RealSrcSpan',+    transferEntryDP,+    transferEntryDP',+    commentSrcSpan,+#if MIN_VERSION_ghc(9,12,0)+#else+    ann,+#endif+ #if MIN_VERSION_ghc(9,4,0)     mkGeneratedHsDocString,-    initParserOpts+    initParserOpts,+#else #endif+    AnnConstraint   ) import Refact.Types hiding (SrcSpan) import qualified Refact.Types as R@@ -113,9 +143,14 @@ import System.IO.Error (mkIOError) import System.IO.Extra import System.IO.Unsafe (unsafePerformIO)+-- import qualified GHC  refactOptions :: EPOptions Identity String+#if MIN_VERSION_ghc(9,12,0)+refactOptions = stringOptions+#else refactOptions = stringOptions {epRigidity = RigidLayout}+#endif  -- | Apply a set of refactorings as supplied by hlint apply ::@@ -315,11 +350,19 @@                   GHC.SameLine 0 -> GHC.DifferentLine 1 0                   dp' -> dp'                 (GHC.L l' d') = setEntryDP (GHC.L l d) (GHC.DifferentLine 1 0)+#if MIN_VERSION_ghc(9,12,0)                 comment =                   GHC.L+                    (GHC.EpaDelta (GHC.RealSrcSpan r Strict.Nothing) dp GHC.NoComments)+                    (GHC.EpaComment (GHC.EpaLineComment newComment) r)+                l'' = GHC.addCommentsToEpAnn l' (GHC.EpaComments [comment])+#else+                comment =+                  GHC.L                     (GHC.Anchor r (GHC.MovedAnchor dp))                     (GHC.EpaComment (GHC.EpaLineComment newComment) r)                 l'' = GHC.addCommentsToSrcAnn l' (GHC.EpaComments [comment])+#endif              in GHC.L l'' d'           else old   RemoveAsKeyword {..} -> pure (removeAsKeyword m)@@ -333,6 +376,14 @@ modifyComment :: (Data a) => GHC.SrcSpan -> String -> a -> a modifyComment pos newComment = transformBi go   where++#if MIN_VERSION_ghc(9,12,0)+    newTok :: GHC.EpaCommentTok -> GHC.EpaCommentTok+    newTok (GHC.EpaDocComment _) = GHC.EpaDocComment $ mkGeneratedHsDocString newComment+    newTok (GHC.EpaDocOptions _) = GHC.EpaDocOptions newComment+    newTok (GHC.EpaLineComment _) = GHC.EpaLineComment newComment+    newTok (GHC.EpaBlockComment _) = GHC.EpaBlockComment newComment+#else #if MIN_VERSION_ghc(9,4,0)     newTok :: GHC.EpaCommentTok -> GHC.EpaCommentTok     newTok (GHC.EpaDocComment _) = GHC.EpaDocComment $ mkGeneratedHsDocString newComment@@ -350,11 +401,12 @@     newTok (GHC.EpaBlockComment _) = GHC.EpaBlockComment newComment     newTok GHC.EpaEofComment = GHC.EpaEofComment #endif+#endif      go :: GHC.LEpaComment -> GHC.LEpaComment-    go old@(GHC.L (GHC.Anchor l o) (GHC.EpaComment t r)) =-      if ss2pos l == ss2pos (GHC.realSrcSpan pos)-        then GHC.L (GHC.Anchor l o) (GHC.EpaComment (newTok t) r)+    go old@(GHC.L anc (GHC.EpaComment t r)) =+      if ss2pos (GHC.realSrcSpan $ commentSrcSpan old) == ss2pos (GHC.realSrcSpan pos)+        then GHC.L anc (GHC.EpaComment (newTok t) r)         else old  droppedComments :: [Refactoring GHC.SrcSpan] -> Module -> Module -> Bool@@ -430,6 +482,19 @@ -- it is not specific enough. Instead we match on some bigger context which -- is contains the located name we want to replace. identSub :: Data a => a -> [(String, GHC.SrcSpan)] -> FunBind -> M FunBind+#if MIN_VERSION_ghc(9,12,0)+identSub m subs old@(GHC.FunRhs {mc_fun=name}) =+  resolveRdrName' subst (findOrError m) old subs (GHC.unLoc name)+  where+    subst :: FunBind -> Name -> M FunBind+    subst f@(GHC.FunRhs{}) new = do+      -- Low level version as we need to combine the annotation information+      -- from the template RdrName and the original VarPat.+      -- modify . first $+      --   replaceAnnKey (mkAnnKey n) (mkAnnKey fakeExpr) (mkAnnKey new) (mkAnnKey fakeExpr)+      pure $ f {GHC.mc_fun=new}+    subst o _ = pure o+#else identSub m subs old@(GHC.FunRhs (GHC.L _ name) _ _) =   resolveRdrName' subst (findOrError m) old subs name   where@@ -441,6 +506,7 @@       --   replaceAnnKey (mkAnnKey n) (mkAnnKey fakeExpr) (mkAnnKey new) (mkAnnKey fakeExpr)       pure $ GHC.FunRhs new b s     subst o _ = pure o+#endif identSub _ _ e = pure e  -- g is usually modifyAnnKey@@ -461,7 +527,7 @@     _ -> pure old  resolveRdrName ::-  (Data old, Data a, Data an, Typeable an, Monoid an) =>+  (Data old, Data a, Data an, Typeable an, AnnConstraint an) =>   a ->   (AnnSpan -> M (GHC.LocatedAn an old)) ->   GHC.LocatedAn an old ->@@ -470,7 +536,6 @@   M (GHC.LocatedAn an old) resolveRdrName m = resolveRdrName' (modifyAnnKey m) --- Substitute the template into the original AST. doGenReplacement :: forall ast a. DoGenReplacement GHC.AnnListItem ast a doGenReplacement _ p new old   | p old = do@@ -488,10 +553,24 @@     let newFile = GHC.srcSpanFile newLocReal         newLocal :: GHC.HsLocalBinds GHC.GhcPs         newLocal = transformBi (setSrcSpanFile newFile) oldLocal-        -- newLocalLoc = GHC.getLocA newLocal         newLocalLoc = GHC.spanHsLocaLBinds newLocal+        newMG :: GHC.MatchGroup GHC.GhcPs (GHC.LHsExpr GHC.GhcPs)         newMG = GHC.fun_matches newBind-        GHC.L locMG [GHC.L locMatch newMatch] = GHC.mg_alts newMG+        -- GHC.L locMG [GHC.L locMatch newMatch] = GHC.mg_alts newMG+        -- locMG1 :: GHC.SrcSpanAnnLW+        GHC.L locMG1 [GHC.L locMatch newMatch] = GHC.mg_alts newMG+        -- xx :: GHC.SrcSpanAnnLW -> GHC.EpAnn (GHC.AnnList ())+        -- xx (GHC.EpAnn anc alw cs) = GHC.EpAnn anc (yy alw) cs+        -- yy :: GHC.AnnList (GHC.EpToken "where") -> GHC.AnnList ()+        -- yy (GHC.AnnList anc bs semis _ lt) = GHC.AnnList anc bs semis () lt+   -- = AnnList {+   --    al_anchor    :: !(Maybe EpaLocation), -- ^ start point of a list having layout+   --    al_brackets  :: !AnnListBrackets,+   --    al_semis     :: [EpToken ";"], -- decls+   --    al_rest      :: !a,+   --    al_trailing  :: ![TrailingAnn] -- ^ items appearing after the++        locMG = locMG1         newGRHSs = GHC.m_grhss newMatch         finalLoc = combineSrcSpansA (GHC.noAnnSrcSpan newLocalLoc) (GHC.getLoc new)         newWithLocalBinds0 =@@ -501,7 +580,7 @@             newBind             finalLoc             newMG-            (combineSrcSpansA (GHC.noAnnSrcSpan newLocalLoc) locMG)+            (combineSrcSpansLW (GHC.noAnnSrcSpan newLocalLoc) locMG)             newMatch             (combineSrcSpansA (GHC.noAnnSrcSpan newLocalLoc) locMatch)             newGRHSs@@ -511,6 +590,16 @@     pure $ composeSrcSpan newWithLocalBinds   | otherwise = pure old ++#if MIN_VERSION_ghc(9,12,0)+combineSrcSpansLW :: GHC.SrcSpanAnnA -> GHC.SrcSpanAnnLW -> GHC.SrcSpanAnnLW+combineSrcSpansLW (GHC.EpAnn anca _ csa) (GHC.EpAnn ancb anb csb)+    = GHC.EpAnn (anca <> ancb) anb (csa <> csb)+#else+combineSrcSpansLW :: Semigroup a => GHC.SrcAnn a -> GHC.SrcAnn a -> GHC.SrcAnn a+combineSrcSpansLW = combineSrcSpansA+#endif+ -- | If the input is a FunBind with a single match, e.g., "foo a = body where x = y" -- return "Just (foo a = body, x = y)". Otherwise return Nothing. stripLocalBind ::@@ -521,9 +610,13 @@     | let origMG = GHC.fun_matches origBind,       GHC.L locMG [GHC.L locMatch origMatch] <- GHC.mg_alts origMG,       let origGRHSs = GHC.m_grhss origMatch,+#if MIN_VERSION_ghc(9,12,0)+      [GHC.L loc2 _] <- GHC.grhssGRHSs origGRHSs ->+#else       [GHC.L _ (GHC.GRHS _ _ (GHC.L loc2 _))] <- GHC.grhssGRHSs origGRHSs ->+#endif       let loc1 = GHC.getLoc (GHC.fun_id origBind)-          newLoc = combineSrcSpansA (GHC.l2l loc1) loc2+          newLoc = combineSrcSpansA (GHC.l2l loc1) (GHC.l2l loc2)           withoutLocalBinds =             setLocalBind               (GHC.EmptyLocalBinds GHC.noExtField)@@ -545,7 +638,11 @@   GHC.HsBind GHC.GhcPs ->   GHC.SrcSpanAnnA ->   GHC.MatchGroup GHC.GhcPs Expr ->+#if MIN_VERSION_ghc(9,12,0)+  GHC.SrcSpanAnnLW ->+#else   GHC.SrcSpanAnnL ->+#endif   GHC.Match GHC.GhcPs Expr ->   GHC.SrcSpanAnnA ->   GHC.GRHSs GHC.GhcPs Expr ->@@ -587,14 +684,22 @@             _ -> True           e' =             if isDo-              && manchorOp an == Just (GHC.MovedAnchor (GHC.SameLine 0))-              && manchorOp (GHC.ann ls) == Just (GHC.MovedAnchor (GHC.SameLine 0))+#if MIN_VERSION_ghc(9,12,0)+              && manchorOp ls == Just (GHC.SameLine 0)+#else+              && manchorOp an == Just (GHC.SameLine 0)+              && manchorOp (GHC.ann ls) == Just (GHC.SameLine 0)+#endif               then GHC.L l (GHC.HsDo an v (setEntryDP (GHC.L ls stmts) (GHC.SameLine 1)))               else e       ensureExprSpace e@(GHC.L l (GHC.HsApp x (GHC.L la a) (GHC.L lb b))) = e' -- ensureAppSpace         where           e' =-            if manchorOp (GHC.ann lb) == Just (GHC.MovedAnchor (GHC.SameLine 0))+#if MIN_VERSION_ghc(9,12,0)+            if manchorOp lb == Just (GHC.SameLine 0)+#else+            if manchorOp (ann lb) == Just (GHC.SameLine 0)+#endif               then GHC.L l (GHC.HsApp x (GHC.L la a) (setEntryDP (GHC.L lb b) (GHC.SameLine 1)))               else e       ensureExprSpace e = e@@ -612,9 +717,14 @@     _ -> pure m replaceWorker m _ _ _ = pure m -manchorOp :: GHC.EpAnn ann -> Maybe GHC.AnchorOperation-manchorOp GHC.EpAnnNotUsed = Nothing-manchorOp (GHC.EpAnn a _ _) = Just (GHC.anchor_op a)+manchorOp :: GHC.EpAnn ann -> Maybe GHC.DeltaPos+#if MIN_VERSION_ghc(9,12,0)+manchorOp (GHC.EpAnn (GHC.EpaSpan{}) _ _) = Nothing+manchorOp (GHC.EpAnn (GHC.EpaDelta _ dp _) _ _) = Just dp+#else+manchorOp (GHC.EpAnn (GHC.Anchor _ (GHC.MovedAnchor dp)) _ _) = Just dp+manchorOp _ = Nothing+#endif  data NotFound = NotFound   { nfExpected :: String,@@ -681,10 +791,30 @@ -- Deletion from a list  doDeleteStmt :: Data a => (Stmt -> Bool) -> a -> a-doDeleteStmt = transformBi . filter+doDeleteStmt = transformBi . filterAndSetDP  doDeleteImport :: Data a => (Import -> Bool) -> a -> a-doDeleteImport = transformBi . filter+doDeleteImport = transformBi . filterAndSetDP++-- | Like `filter`, but after filtering one or multiple consecutive elements+-- out, it applies `setEntryDP` to the next element.+filterAndSetDP ::+  forall t a.+#if MIN_VERSION_ghc(9,10,0)+#else+  (Default t) =>+#endif+  (GHC.LocatedAn t a -> Bool) ->+  [GHC.LocatedAn t a] ->+  [GHC.LocatedAn t a]+filterAndSetDP p = go+  where+    go xs = case break p xs of+      (_, []) -> []+      -- No prefix is filtered out; do not apply `setEntryDP` to `y`+      ([], y : ys) -> y : go ys+      -- Some prefix is filtered out; apply `setEntryDP` to `y`+      (_ : _, y : ys) -> setEntryDP y (GHC.SameLine 0) : go ys  addExtensionsToFlags ::   [Extension] ->
src/Refact/Run.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE RecordWildCards #-}  module Refact.Run (refactMain, runPipe) where@@ -7,7 +8,11 @@ import Data.Maybe import Data.Version import Debug.Trace+#if MIN_VERSION_ghc(9,12,0)+import Language.Haskell.GHC.ExactPrint.Utils (showAst)+#else import Language.Haskell.GHC.ExactPrint.ExactPrint (showAst)+#endif import qualified GHC.Paths import Options.Applicative import Paths_apply_refact
src/Refact/Utils.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE RecordWildCards #-} @@ -39,7 +40,7 @@ import Data.Generics (everywhere, mkT) import Data.Typeable import qualified GHC-import Language.Haskell.GHC.ExactPrint+import Language.Haskell.GHC.ExactPrint hiding (transferEntryDP) import Refact.Compat   ( AnnSpan,     FastString,@@ -52,10 +53,12 @@     setSrcSpanFile,     srcSpanToAnnSpan,     pattern RealSrcLoc',-    pattern RealSrcSpan',+    pattern RealSrcSpan', AnnConstraint,+    transferEntryDP   ) import qualified Refact.Types as R + -- Types -- type M a = StateT (Anns, AnnKeyMap) IO a type M a = StateT () IO a@@ -92,7 +95,7 @@ --   GHC.Located new -> --   M (GHC.Located new) modifyAnnKey ::-  (Data mod, Data t, Data old, Data new, Monoid t, Typeable t) =>+  (Data mod, Data t, Data old, Data new, AnnConstraint t, Typeable t) =>   mod ->   GHC.LocatedAn t old ->   GHC.LocatedAn t new ->@@ -118,10 +121,11 @@ --        should keep the backquotes, but currently no test case fails because of it. handleBackquotes ::   forall t old new.-  (Data t, Data old, Data new, Monoid t, Typeable t) =>+  (Data t, Data old, Data new, AnnConstraint t, Typeable t) =>   GHC.LocatedAn t old ->   GHC.LocatedAn t new ->   GHC.LocatedAn t new+#if MIN_VERSION_ghc(9,12,0) handleBackquotes old new@(GHC.L loc _) =   everywhere (mkT update) new   where@@ -131,6 +135,29 @@         ln' =           if GHC.locA l == GHC.locA loc             then case cast old :: Maybe (GHC.LHsExpr GHC.GhcPs) of+              Just (GHC.L _ (GHC.HsVar _ (GHC.L (GHC.EpAnn _ ann _) _)))+                -- scenario 1+                | GHC.NameAnn (GHC.NameBackquotes _ _) _ _ <- ann ->+                  case ln of+                    (GHC.EpAnn a _ cs) -> (GHC.EpAnn a ann cs)+                -- scenario 2+                | (GHC.EpAnn a ann' cs) <- ln,+                  GHC.NameAnn (GHC.NameBackquotes _ _) _ _ <- ann' ->+                  (GHC.EpAnn a ann cs)+              Just _ -> ln+              Nothing -> ln+            else ln+    update x = x+#else+handleBackquotes old new@(GHC.L loc _) =+  everywhere (mkT update) new+  where+    update :: GHC.LHsExpr GHC.GhcPs -> GHC.LHsExpr GHC.GhcPs+    update (GHC.L l (GHC.HsVar x (GHC.L ln n))) = GHC.L l (GHC.HsVar x (GHC.L ln' n))+      where+        ln' =+          if GHC.locA l == GHC.locA loc+            then case cast old :: Maybe (GHC.LHsExpr GHC.GhcPs) of               Just (GHC.L _ (GHC.HsVar _ (GHC.L (GHC.SrcSpanAnn (GHC.EpAnn _ ann _) _) _)))                 -- scenario 1                 | GHC.NameAnn GHC.NameBackquotes _ _ _ _ <- ann ->@@ -146,6 +173,7 @@               Nothing -> ln             else ln     update x = x+#endif  -- | Convert a @Refact.Types.SrcSpan@ to a @SrcLoc.SrcSpan@ toGhcSrcSpan :: FilePath -> R.SrcSpan -> GHC.SrcSpan
tests/examples/Import2.hs.expected view
@@ -1,1 +1,1 @@- import A+import A
tests/examples/Import7.hs.expected view
@@ -1,1 +1,1 @@- import A as Y+import A as Y