@q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq r s t u v w x y z{|}~None $/9:;DIR[\CDifferent classes of definitions that have different kind of names. .Normal value definitions: functions, variables Data constructors "Functions with operator-like names %Constructors with operator-like names *UType definitions with operator-like names+The refactoring monad for the whole project(The refactoring monad for a given module$A monad that can be used to refactor%The information a refactoring can use0Input and output information for the refactoring;Change in the project, modification or removal of a module. The type of a refactoring!*A refactoring that only affects one module""The name of the module and the AST$APerforms the given refactoring, transforming it into a Ghc action%\Wraps a refactoring that only affects one module. Performs the per-module finishing touches.&-Transform the result of the local refactoring'OAdds the imports that bring names into scope that are needed by the refactoring-hCreate a name that references the definition. Generates an import if the definition is not yet imported..2Reference the name by the shortest suitable import/.Get which category does a given name belong to0-Checks if a given name is a valid module name1=Check if a given name is valid for a given kind of definition6  !"#$%&'()*+,-./0123456789:;<=,  !"#$%&'()*+,-./01236#"! $%&'=<;:987654()*+,-. /0123%  !"#$%&'()*+,-./0123456789:;<=None$/5:DLRT[\J9The final version of our AST, with type infromation addedL'Set the given flags for the GHC sessionM?Initialize GHC flags to default values that support refactoringN Use the given source directoriesOoTranslates module name and working directory into the name of the file where the given module should be definedPnTranslates module name and working directory into the name of the file where the boot module should be definedQLLoad the summary of a module given by the working directory and module name.R9Get the typed representation from a type-correct program.GHIJKLMNOPQRSTGHIJKLMNOPQRSTKLMNOPQJRGHIST GHIJKLMNOPQRSTNone $*:DRT[\fXYZXYZZYXXYZNone*:DLR\lCreates an export list that imports standalone top-level definitions with all of their contained definitionsGet all the top-level definitions with flags that mark if they can contain other top-level definitions (classes and data declarations)."Create the export for a give name.[\[\\[[\None^kReplaces the list with a new one with the given elements, keeping the most common separator as the new one._Inserts the element in the places where the two positioning functions (one checks the element before, one the element after) allows the placement. `NChecks where the element will be inserted given the two positioning functions.]^_`a]^_`a]^_`a]^_`aNonebGet modules of the project with the indicated root directory. If there is a cabal file, it uses that, otherwise it just scans the directory recursively for haskell sourcefiles.bcdebcdebcdebcdeNone:DRf]A type class for handling definitions that can appear as both top-level and local definitionsgGAccesses a type signature definition in a local or top-level definitionhJAccesses a value or function definition in a local or top-level definitioni.Creates a new definition from a type signaturej<Creates a new definition from a value or function definitionk0Checks if a given definition is a type signaturel;Checks if a given definition is a function or value binding fghijklmnop fghijklmn fghijklpomnfghijklmnopNone      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&  !"#$%&'()*+,-./0123GHIJKLMNOPQRST]^_`afghijklmn None'q(qq'q( None$*:r)*s+,-.rssrr)*s+,-. None $*:DORTf /Safely performs the transformation to introduce the local binding and replace the expression with the call. Checks if the introduction of the name causes a name conflict.0]Decides if a new name defined to be the given string will conflict with the given AST element1Adds a local binding to the 22Puts a value definition into a list of local binds3BAll expressions that are bound stronger than function application.4UReplaces the expression with the call and stores the binding of the call in its state5BGets the values that have to be passed to the extracted definition65Generates the expression that calls the local binding77Generates the local binding for the selected expressiontu/0812345967:tuuttu/0812345967: None $*:DORTfx?Perform the refactoring on either local or top-level definition;7Generates the source-level type for a GHC internal type<9Check whether the definition already has a type signaturevwxBAccess for a top-level definition if it is the selected definitionCAccess for a definition list if it contains the selected definitionISelector for either local or top-level declaration in the definition list=>;<?vwxxwvvwx=>;<? None$:OT@yAByy@yABNone *:DRT[C'Sorts the imports in alphabetical orderD5Modify an import to only import names that are used.E5Reduces the number of definitions used from an importF@Narrows the import specification (explicitely imported elements)G@Reduces the number of definitions imported from a sub-specifier.z{CDEFGz{{zz{CDEFGNone$/5:DLRT[\|A refactoring commandGExecutes a given command on the selected module and given other modules |}~0The module in which the refactoring is performed Other modules |~} |}~|}~H !"#$%%&'())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$"#%"#&"#'"#("#)"#*"#+"#,"#-"#."#/"#0"#1"#2"#3"#4"#5"#6"#7"#8"#9"#:"#;"#<"#="#>"#?"#@"#A"#B"#C"#D"EF"EG"EH"EI"EJ"EK"EL"MN"MO"MP"MQ"MR"MS"MT"MU"MV"MW"MX"MY"MZ"M["M\"M]"M^"M_"M`"Ma"Mb"Mc"Md"Me"Mf"Mg"Mh"Mi"Mj"Mk"Ml"Mm"Mn"Mo"Mp"Mq"Mr"Ms"Mt"Mu"Mv"Mw"Mx"My"Mz"M{"M|"M}"M~"M"M"M"M"M"M"M"M"M"M"M"M"M"M"M"M"M""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " " " """""""""""""""""" "!"""#"$"%"&'"&("&)"&*"&+"&,"&-"&."&/"&0"&1"&2"&3"&4"&5"&6"&7"&8"9:"9;"9<"9="9>"9?"9@"9A"9B"9C"DE"DF"DG"DH"DI"DJ"DK"DL"DM"DN"DO"DP"DQ"DR"ST"SU"SV"SW"SX"SY"SZ"S["S\"S]"S^"S_"S`"Sa"Sb"Sc"Sd"Se"Sf"gh"gi"gj"gk"gl"gm"gn"go"gp"gq"gr"gs"gt"gu"gv"gw"gx"gy"gz"g{"g|"g}"g~"g"g"g"g"g"g"g"g"g"g"g"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"0"1"2"3"4"5"6"78"79"7:"7;"7<"7="7>"7?"7@"7A"7B"7C"7D"7E"7F"7G"7H"7I"7J"7K"7L"7M"7N"7O"7P"7Q"7R"7S"7T"7U"7V"7W"7X"7Y"7Z"7["7\"7]"7^"7_"7`"7a"7b"7c"7d"7e"7f"7g"7h"7i"7j"7k"7l"7m"7n"7o"7p"7q"7r"7s"7t"7u"7v"7w"7x"7y"7z"7{"7|"7}"7~"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7"7""""""""""""""""""""'"(")"*",""""/""""""0"3"6"""""""""w"""""""""" """"""""""""""""""""V"W""c"""Y""]"""""E""""z"{"}"""p"""r""""""""""H""""$"%"#""""""""""""""""""""""""""""""""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"( ) * + ) , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ ) A BCDEFGH5haskell-tools-refactor-0.3.0.0-EjezBjjmKR9725vBH6NJFcLanguage.Haskell.Tools.Refactor,Language.Haskell.Tools.Refactor.RefactorBase'Language.Haskell.Tools.Refactor.Prepare;Language.Haskell.Tools.Refactor.Predefined.RenameDefinition:Language.Haskell.Tools.Refactor.Predefined.GenerateExports.Language.Haskell.Tools.Refactor.ListOperations*Language.Haskell.Tools.Refactor.GetModules+Language.Haskell.Tools.Refactor.BindingElem8Language.Haskell.Tools.Refactor.Predefined.DataToNewtype4Language.Haskell.Tools.Refactor.Predefined.DollarApp9Language.Haskell.Tools.Refactor.Predefined.ExtractBinding@Language.Haskell.Tools.Refactor.Predefined.GenerateTypeSignature5Language.Haskell.Tools.Refactor.Predefined.IfToGuards:Language.Haskell.Tools.Refactor.Predefined.OrganizeImports'Language.Haskell.Tools.Refactor.Perform0haskell-tools-ast-0.3.0.1-5hdi6OFnVeaBROuMLyLobtLanguage.Haskell.Tools.AST.Ann isAnnNothingannJustannList annListElemsDomainsetRangegetRangeHasRange NameClassVariableCtor ValueOperatorDataCtorOperatorSynonymOperatorRefactor LocalRefactor RefactorMonad refactErrorliftGhc RefactorCtx refModuleName refCtxRoot refCtxImportsLocalRefactorT fromRefactorTRefactorChangeContentChanged ModuleRemovedfromContentChangedremovedModuleName RefactoringLocalRefactoring ModuleDom UnnamedModule runRefactorlocalRefactoringlocalRefactoringResaddGeneratedImportsregisteredNamesFromPreludeotherNamesFromPrelude qualifiedName referenceNamereferenceOperatorreferenceName' referenceBy classifyNamevalidModuleName nameValid isIdStartCharisOperatorChar$fRefactorMonadStateT$fRefactorMonadLocalRefactorT$fRefactorMonadExceptT$fMonadTransLocalRefactorT$fExceptionMonadExceptT$fGhcMonadExceptT$fExceptionMonadReaderT$fGhcMonadReaderT$fExceptionMonadWriterT$fGhcMonadWriterT$fFunctorLocalRefactorT$fApplicativeLocalRefactorT$fMonadLocalRefactorT$fMonadReaderLocalRefactorT$fMonadWriterLocalRefactorT$fMonadIOLocalRefactorT$fHasDynFlagsLocalRefactorT$fExceptionMonadLocalRefactorT$fGhcMonadLocalRefactorTIsBootNormalHsIsHsBoot TypedModule tryRefactoruseFlags initGhcFlagsuseDirs toFileNametoBootFileName loadModule parseTyped readSrcSpan readSrcLoc $fEqIsBoot $fOrdIsBoot $fShowIsBootDomainRenameDefinitionrenameDefinition'renameDefinitionDomGenerateExportsgenerateExports filterList replaceList insertWhere insertIndexreplaceWithJust getModulesmodulesFromCabalFilemodulesFromDirectorysrcDirFromRoot BindingElemsigBindvalBind createTypeSig createBinding isTypeSig isBindinggetValBindInListvalBindsInList$fBindingElemULocalBind$fBindingElemUDecl dataToNewtype DollarDomain dollarAppExtractBindingDomainextractBinding'GenerateSignatureDomaingenerateTypeSignature'generateTypeSignature ifToGuardsOrganizeImportsDomainorganizeImportsRefactorCommand NoRefactorOrganizeImportsGenerateExportsGenerateSignatureRenameDefinitionExtractBindingperformCommand readCommandanalyzeCommand$fShowRefactorCommand renameModule conflicts sameNamespace getTopLevels createExports"Language.Haskell.Tools.AST.HelpersinScopecompareRangeLengthgetNodeContainingnodesWithRange isContainednodesContainedisInsidenodesContaining semantics typeParams declHeadNames bindingName importIsExactAnnList AnnNothingAnnJust NamedElement elementName*Language.Haskell.Tools.AST.SemaInfoClasses HasNameInfo HasNameInfo' semanticsName HasIdInfo HasIdInfo' semanticsId HasFixityInfoHasFixityInfo'semanticsFixity HasScopeInfo HasScopeInfo'semanticsScopeHasDefiningInfoHasDefiningInfo'semanticsDefiningHasSourceInfoInSema'semanticsSourceInfo HasModuleInfoHasModuleInfo'semanticsModule isBootModulesemanticsImplicitImports HasImportInfoHasImportInfo'semanticsImportedModulesemanticsAvailablesemanticsImportedHasImplicitFieldsInfoHasImplicitFieldsInfo'semanticsImplicitFldsHasNoSemanticInfo%Language.Haskell.Tools.AST.References stringNodeStr simpleNameStrunqualifiedName qualifiers simpleName operatorNamepromotedStringValuepromotedIntValuepromotedElementspromotedConNamestringLitValue intLitValue fracLitValue floatLitValue charLitValue bracketTypebracketPattern bracketExpr bracketDeclqqString qqExprName qqExprBodyspliceId spliceExprfieldPatternWildcardfieldPatternName fieldPattern patternType patternSplice patternRhspatternOperator patternNamepatternLiteral patternLit patternLhs patternInner patternFields patternExpr patternElems patternArgspatQQ compStmts usingExprthenExprcompStmtbyExpr stmtPatternstmtExpr stmtBinds cmdStmtBindscaseGuardStmts caseGuardExpr rhsCaseGuards rhsCaseExpr pragmaStrpragmaSrcRange tupSecExpr fieldWildcard fieldValuefieldUpdateName fieldNamealtRhs altPatternaltBindstupleSectionElems tupleElems quotedName procPatternprocExpr listElems innerExprexprTypeexprThen exprStmts exprSpliceexprSigexprRhs exprRecName exprRecFieldsexprQQ exprPragma exprOperatorexprNameexprLitexprLhs exprInner exprIfAlts exprFunBindexprFunexprElseexprCondexprCase exprBracket exprBindingsexprArgexprAlts enumToFixenumToenumThenenumFromdoKindcompExprcompBody arrowAppl assertTypes assertRhsassertOp assertLhs assertImplVarassertImplType assertClsNamecontextAssertionscontextAssertionkindVar kindRight kindPromoted kindParenkindLeftkindElem kindAppFun kindAppArgtypeWildcardNametypeType typeRight typeResulttypeQQ typeParam typeOperatortypeNametypeLefttypeKind typeInner typeElements typeElementtypeCtxtypeCon typeBoundedtypeArgtsSplice tpPromoted tyVarName tyVarKind valBindRhs valBindPat valBindLocalsfunBindMatches kindConstr matchLhsRhsmatchLhsOperator matchLhsName matchLhsLhs matchLhsArgstsTypetsNameprecedenceValuefixityPrecedencefixityOperators fixityAssoc localBindslocalVallocalSig localFixityguardRhsguardPat guardCheck guardBinds guardStmts guardExpr rhsGuardsrhsExprmatchRhsmatchLhs matchBinds numberIntegersrToLinesrToCol srFromLine srFromCol srFileName minimalOrs minimalName minimalInner minimalAnds annotateNamespecializeType specializeDef pragmaRule pragmaPhase pragmaObjects pragmaMessage pragmaLineNumpragmaFileName pragmaConlike noInlineDef inlineDef inlinableDefannotationSubject annotateExprphaseNum phaseUntil phaseNumberruleRhs rulePhaseruleNameruleLhs ruleBoundedteRhsteLhsihType ihOperatorihLeftOpihHeadihFun ihConNameirVarsirHeadirCtx oneDerived allDerived fieldType fieldNames conDeclRhs conDeclOp conDeclName conDeclLhs conDeclFields conDeclArgs funDepRhs funDepLhsfunDeps patSigType patSigName patOpposite patSynRhspatSynOp patSynLhspatNamepatArgspatRhsOpposite patRhsPatpatRhspatLhsgadtConResultTypegadtConRecordFieldsgadtConNormalType gadtConType gadtConNames injAnnRes injAnnDeps tfSpecKind tfInjectivitytfSpectfKindtfHeadspecializeInstanceTypeinstBodyTypeSiginstBodyTypeEqninstBodyLhsTypeinstBodyGadtConsinstBodyDerivingsinstBodyDeclFunbindinstBodyDataNewinstBodyDataKindinstBodyDataCons instBodyDeclsdhRight dhOperatordhNamedhLeftdhBody dhAppOperanddhAppFun pragmaFormula ceTypeSig ceTypeFamceTypeceNameceKindceHeadceBind cbElements declValBind declTypes declTypeSigdeclTypeFamilydeclType declSplice declSafety declRoles declRoleType declPragmadeclPatTypeSig declPatSyn declOverlap declNewtypedeclNamedeclKind declInstance declInstRule declInstDecldeclHeaddeclGadt declFunDeps declFixity declDerivingdeclDecldeclCtxdeclCons declCallConvdeclBodydeclAssignedTypelangExtmoduleNameString importRenameimportSpecListimportSpecHiding importSpec importSource importSafeimportQualified importPkg importModuleimportAs modWarningStrmodDeprecatedPragmaessList ieSubspecieNameexportModuleName exportDecl espExportsmhPragmamhName mhExports modImportsmodHeadmodDecl filePragmas4haskell-tools-rewrite-0.3.0.1-JB9M9ACzBjiAZ0wAc2Tvqy&Language.Haskell.Tools.AST.Match.Types ForallTypeCtxType FunctionType TupleTypeUnboxedTupleTypeListType ParArrayTypeTypeApp InfixTypeApp ParenTypeVarType KindedTypeBangTypeLazyType UnpackType NoUnpackType WildcardTypeNamedWildcardType SpliceTypeQuasiQuoteTypePromotedIntTypePromotedStringTypePromotedConTypePromotedListTypePromotedTupleTypePromotedUnitType TyVarDeclKindedTyVarDecl ContextOne ContextMulti ClassAssert InfixAssertImplicitAssert#Language.Haskell.Tools.AST.Match.THIdSplice ParenSplice QuasiQuote ExprBracketPatternBracket TypeBracket DeclsBracket&Language.Haskell.Tools.AST.Match.ExprsVarLitInfixApp PrefixAppAppLambdaLetIfMultiIfCaseDo ParArrayCompTuple UnboxedTuple TupleSectionUnboxedTupleSectionListParArrayParen LeftSection RightSectionRecCon RecUpdateEnum ParArrayEnumListCompParArrayListCompTypeSigExplicitTypeAppVarQuote TypeQuote BracketExpr SpliceExprQuasiQuoteExpr ExprPragmaProcArrowApp LambdaCase StaticPointerNormalFieldUpdateFieldPun FieldWildcard TupSecPresent TupSecMissingAltCaseRhsGuardedCaseRhssGuardedCaseRhs CorePragma SccPragmaGeneratedPragma SourceRange ArrowAppCmd ArrowFormCmdAppCmdInfixCmd LambdaCmdParenCmdCaseCmdIfCmdLetCmdDoCmdLeftAppl RightAppl LeftHighApp RightHighApp&Language.Haskell.Tools.AST.Match.StmtsBindStmtExprStmtLetStmtRecStmt DoKeyword MDoKeyword ListCompBodyCompStmtThenStmt GroupStmt BindStmtCmd ExprStmtCmd LetStmtCmd RecStmtCmd)Language.Haskell.Tools.AST.Match.PatternsVarPatLitPat InfixAppPatAppPatTuplePat UnboxTuplePatListPat ParArrayPatParenPatRecPatAsPatWildPatIrrefutablePatBangPat TypeSigPatViewPat SplicePat QuasiQuotePat NPlusKPat FieldPatternFieldPunPatternFieldWildcardPattern&Language.Haskell.Tools.AST.Match.DeclsTypeDeclStandaloneDeriving FixityDecl DefaultDecl TypeSigDecl ValueBinding SpliceDeclDataDecl GADTDataDecl GadtConDeclGadtRecordConDeclConDecl RecordConDecl InfixConDecl FieldDecl DerivingOne DerivingMulti DataKeywordNewtypeKeywordFunDepsFunDep ClassDecl ClassBody ClassElemSig ClassElemDefClassElemTypeFamClassElemDataFamClsDefaultType ClsDefaultSig ClsMinimal MinimalName MinimalParen MinimalOr MinimalAnd NameDeclHead ParenDeclHead DeclHeadApp InfixDeclHead InstanceDecl InstanceBody InstanceBindInstanceTypeSigInstanceTypeFamilyDefInstanceDataFamilyDefInstanceDataFamilyGADTDefInstanceSpecializePragma InstanceRule InstanceHeadInfixInstanceHeadParenInstanceHeadAppInstanceHead EnableOverlapDisableOverlap Overlappable OverlappingOverlapsIncoherentOverlapRoleDecl NominalRoleRepresentationalRole PhantomRole ForeignImport ForeignExportStdCallCCallCApiUnsafePatternSynonym ConPatSyn InfixPatSyn RecordPatSynSymmetricPatSyn OneWayPatSyn TwoWayPatSynPatternSignatureDeclPatternSignature TypeFamily DataFamily TypeInstance DataInstanceGadtDataInstanceClosedTypeFamilyTypeFamilyKindSpecTypeFamilyInjectivitySpecTypeEqn PragmaDecl RulePragma DeprPragma WarningPragma AnnPragma InlinePragmaNoInlinePragmaInlinablePragma LinePragmaSpecializePragmaPhaseControlFromPhaseControlUntil RewriteRuleNameAnnotationTypeAnnotationModuleAnnotationConlikeAnnotation&Language.Haskell.Tools.AST.Match.NamesNormalOp BacktickOp NormalName ParenName ImplicitName StringNode QualifiedNameNamePart(Language.Haskell.Tools.AST.Match.ModulesModule ModuleHead ExportSpecs ExportSpec ModuleExportIESpecSubAllSubList ImportDeclImportRenamingImportSpecListImportHidingList ModuleNameLanguagePragma OptionsPragmaLanguageExtensionModuleWarningPragmaModuleDeprecatedPragma)Language.Haskell.Tools.AST.Match.LiteralsCharLit StringLitIntLitFracLit PrimIntLit PrimWordLit PrimFloatLit PrimDoubleLit PrimCharLit PrimStringLit&Language.Haskell.Tools.AST.Match.KindsKindConstraintStarKind UnboxKindFunKind ParenKindVarKindAppKindListKindIntKind StringKindConKindListKindPromoted TupleKindUnitKind&Language.Haskell.Tools.AST.Match.Binds SimpleBind FunctionBindMatchMatchLhsInfixLhs LocalBinds LocalValBind LocalTypeSig LocalFixity TypeSignatureInfixLInfixRInfix UnguardedRhs GuardedRhss GuardedRhs GuardBindGuardLet GuardCheck$Language.Haskell.Tools.AST.Gen.TypesmkImplicitAssert mkInfixAssert mkClassAssertmkContextMulti mkContextOnemkPromotedUnitTypemkPromotedTupleTypemkPromotedListTypemkPromotedConTypemkPromotedStringTypemkPromotedIntTypemkQuasiQuoteType mkSpliceTypemkNamedWildcardTypemkWildcardTypemkNoUnpackType mkUnpackType mkLazyType mkBangType mkKindedType mkVarTypemkKindedTypeVar mkTypeVar mkParenTypemkInfixTypeApp mkTypeAppmkParArrayType mkListTypemkUnboxedTupleType mkTupleTypemkFunctionType mkCtxType mkTypeVar' mkForallType!Language.Haskell.Tools.AST.Gen.THmkDeclsBracket mkTypeBracketmkPatternBracket mkExprBracket mkQuasiQuote mkParenSplice mkIdSplice$Language.Haskell.Tools.AST.Gen.StmtsmkRecCmd mkLetStmtCmd mkExprCmd mkBindCmd mkGroupStmt mkThenStmt mkCompStmtmkListCompBody mkRecStmt mkLetStmt mkExprStmt mkBindStmt$Language.Haskell.Tools.AST.Gen.Binds mkGuardCheck mkGuardLet mkGuardBind mkGuardedRhs mkGuardedRhssmkUnguardedRhsmkInfixmkInfixRmkInfixLmkTypeSignature mkLocalFixitymkLocalTypeSigmkLocalValBind mkLocalBinds' mkLocalBinds mkInfixLhs mkMatchLhsmkMatchmkFunctionBind'mkFunctionBind mkSimpleBind mkSimpleBind''Language.Haskell.Tools.AST.Gen.PatternsmkFieldWildcardPatternmkFieldPunPatternmkPatternFieldmkQuasiQuotePat mkSplicePat mkViewPat mkTypeSigPat mkBangPatmkIrrefutablePat mkWildPatmkAsPatmkRecPat mkParenPat mkParArrayPat mkListPatmkUnboxTuplePat mkTuplePatmkAppPat mkInfixAppPatmkLitPatmkVarPat&Language.Haskell.Tools.AST.Gen.ModulesmkModuleDeprecatedPragmamkModuleWarningPragma mkOptionsGHCmkLanguagePragma mkModuleNamemkImportHidingListmkImportSpecList mkImportDeclmkSubAll mkSubListmkIESpecmkModuleExport mkExportSpec mkExportSpecs mkModuleHeadmkModule'Language.Haskell.Tools.AST.Gen.LiteralsmkPrimStringLit mkPrimCharLitmkPrimDoubleLitmkPrimFloatLit mkPrimWordLit mkPrimIntLit mkFracLitmkIntLit mkStringLit mkCharLit$Language.Haskell.Tools.AST.Gen.Kinds mkUnitKind mkTupleKind mkListKind mkConKind mkStringKind mkIntKind mkKindList mkKindApp mkKindVar mkKindParen mkKindFun mkKindUnbox mkKindStarmkKindConstraint$Language.Haskell.Tools.AST.Gen.ExprsmkRightHighApplmkLeftHighAppl mkRightAppl mkLeftApplmkDoCmdmkLetCmdmkIfCmd mkCaseCmd mkParenCmd mkLambdaCmd mkInfixCmdmkAppCmdmkArrowFromCmd mkArrowAppCmd mkSourceRangemkGeneratedPragma mkSccPragma mkCorePragmamkGuardedCaseRhsmkGuardedCaseRhss mkCaseRhsmkAltmkFieldWildcard mkFieldPun mkFieldUpdatemkStaticPointer mkLambdaCase mkArrowApp mkProcExpr mkExprPragmamkQuasiQuoteExpr mkSpliceExpr mkBracketExpr mkTypeQuote mkVarQuotemkExplicitTypeApp mkExprTypeSigmkParArrayComp mkListCompmkParArrayEnummkEnum mkRecUpdatemkRecConmkRightSection mkLeftSectionmkParen mkParArraymkListmkTupleUnboxedSectionmkTupleSectionmkUnboxedTuplemkTuple mkDoBlockmkCase mkMultiIfmkIfmkLetmkLambdamkApp mkPrefixApp mkInfixAppmkLitmkVar$Language.Haskell.Tools.AST.Gen.DeclsmkConlikeAnnotationmkModuleAnnotationmkTypeAnnotationmkNameAnnotation mkRewriteRulemkPhaseControlUntilmkPhaseControlFrommkSpecializePragma mkLinePragmamkInlinablePragmamkNoInlinePragmamkInlinePragma mkAnnPragmamkWarningPragma mkDeprPragma mkRulePragma mkPragmaDeclmkPatternSignaturemkPatternSignatureDeclmkTwoWayPatSynmkOneWayPatSynmkSymmetricPatSynmkRecordPatSyn mkInfixPatSyn mkConPatSynmkPatternSynonymmkGadtDataInstancemkDataInstancemkTypeInstance mkTypeEqnmkTypeFamilyInjectivitySpecmkTypeFamilyKindSpec mkDataFamilymkClosedTypeFamily mkTypeFamilymkUnsafemkCApimkCCall mkStdCallmkForeignExportmkForeignImport mkPhantomRolemkRepresentationalRole mkNominalRole mkRoleDeclmkIncoherentOverlap mkOverlaps mkOverlappingmkOverlappablemkDisableOverlapmkEnableOverlapmkInstanceSpecializePragmamkInstanceDataFamilyGADTDefmkInstanceDataFamilyDefmkInstanceTypeFamilyDefmkInstanceTypeSigmkInstanceBindmkInstanceBodymkAppInstanceHeadmkParenInstanceHeadmkInfixInstanceHeadmkInstanceHeadmkInstanceRulemkInstanceDeclmkInfixDeclHead mkDeclHeadAppmkParenDeclHeadmkNameDeclHead mkMinimalAnd mkMinimalOrmkMinimalParen mkMinimalName mkClsMinimalmkFunDepmkClsDefaultSigmkClsDefaultTypemkClassElemDataFammkClassElemTypeFammkClassElemDefmkClassElemSig mkClassBody mkClassDeclmkNewtypeKeyword mkDataKeyword mkDeriving mkFieldDeclmkInfixConDeclmkRecordConDecl mkConDeclmkGadtRecordConDecl mkGadtConDeclmkGADTDataDecl mkDataDecl mkSpliceDeclmkValueBinding mkTypeSigDecl mkDefaultDecl mkFixityDeclmkStandaloneDeriving mkTypeDecl$Language.Haskell.Tools.AST.Gen.Names mkStringNode mkSimpleName mkSimpleName' mkNamePartmkQualifiedNamemkQualifiedName'mkImplicitName mkParenName mkNormalName mkUnqualName' mkQualName' mkUnqualOp mkUnqualOp' mkQualOp' mkBacktickOpmkQualOpmkName'Language.Haskell.Tools.AST.ElementTypesAnnMaybeSubSpec ModulePragma FilePragma ImportSpecImportQualified ImportSource ImportSafe TypeNamespaceDecl ClassElementDeclHeadInstBody InstBodyDecl GadtConTypeDataOrNewtypeKeywordDeriving OverlapPragmaTopLevelPragmaRuleAnnotationSubjectMinimalFormulaTypeFamilySpecInjectivityAnn PatSynRhs PatSynLhs PatSynWhereRoleCallConvSafety ConlikeAnnot PhaseControl ValueBindRhsRhsGuard LocalBindFixitySignatureTypeTyVarContext AssertionKind PromotedKindExpr FieldUpdate TupSecElemCmdCmdAltStmtDoKindCmdStmtPattern PatternFieldSpliceBracketLiteralOperatorName MaybeContext MaybeDerivingMaybeLocalBindsMaybeTypeFamilySpecMaybeKindConstraintMaybeClassBody MaybeInstBody MaybeExprMaybeExportSpecsMaybeImportQualifiedMaybeImportSourceMaybeImportSafeMaybeImportSpecMaybeModuleHeadMaybeModulePragma MaybeSubSpecMaybeStringNodeMaybeImportRenaming MaybeSafetyMaybePhaseControlMaybeConlikeAnnot MaybeFunDeps MatchListDeclList PatternList OperatorListNameList LocalBindList IESpecList RhsGuardListGuardedRhsListGuardedCaseRhsList ConDeclList TypeEqnListTypeList FieldDeclListExprListFieldUpdateListGadtConDeclListClassElementListInstBodyDeclListInstanceHeadListAltListStmtListKindList TyVarListListCompBodyListExportSpecListFilePragmaListImportDeclListPatternFieldList AssertionList CompStmtListRuleListRoleListMinimalFormulaList FunDepListTupSecElemListCmdList CmdAltList CmdStmtListLanguageExtensionListStringNodeList NamePartListtryItOutchangeDeclaration DollarMonad replaceExpr parenExpr parenDollar dollarNameextractBinding isConflictingaddLocalBindinginsertLocalBindisParenLikeExpr doExtractgetExternalBinds generateCall generateBindextractThatBindactualContainingExprisValidBindingNamegenerateTypeFortypeSignatureAlreadyExist genTypeSig generateTSForgetBindingName ifToGuards'createSimpleIfRhss sortImports narrowImports narrowImportnarrowImportSpecsnarrowImportSubspecs