QMIf~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ | } NoneGet 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.None $/9:;DIR[\CDifferent classes of definitions that have different kind of names..Normal value definitions: functions, variablesData constructors "Functions with operator-like names%Constructors with operator-like names)Type 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 ASTAPerforms 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 to+-Checks if a given name is a valid module name,=Check if a given name is valid for a given kind of definition6  !"#$%&'()*+,-./012345678,  !"#$%&'()*+,-.6 !"8765432 10/ #$%&'()*+,-.%   !"#$%&'()*+,-./012345678None $*:DORTfKBAll expressions that are bound stronger than function application.MBGets the values that have to be passed to the extracted definitionO5Generates the expression that calls the local bindingP7Generates the local binding for the selected expressionBCDEFGHIJKLMNOPQBCDEFGHIJKLMNOPQDCBEFGHIJKLMNOPQBCDEFGHIJKLMNOPQNone $*:DRT[\fRS~TRSTTSRRS~TNone*:DLRVlCreates an export list that imports standalone top-level definitions with all of their contained definitionsWGet all the top-level definitions with flags that mark if they can contain other top-level definitions (classes and data declarations).XGet all the standalone top level definitions (their GHC unique names) in a module. You could also do getting all the names with a biplate reference and select the top-level ones, but this is more efficient.Y"Create the export for a give name.UVWXYUVWXYUVWXYUVWXYNone $*:DORTf\?Perform the refactoring on either local or top-level definition7Generates the source-level type for a GHC internal type9Check whether the definition already has a type signature Z[\BAccess 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 listZ[\\[Z Z[\None *:DRT['Sorts the imports in alphabetical order5Modify an import to only import names that are used.@Narrows the import specification (explicitely imported elements)]^]^^]]^None$/5:DLRT[\ bA refactoring commandi9The final version of our AST, with type infromation addedj Use the given source directoriesk'Set the given flags for the GHC sessionl?Initialize GHC flags to default values that support refactoringmoTranslates module name and working directory into the name of the file where the given module should be definednnTranslates module name and working directory into the name of the file where the boot module should be definedoLLoad the summary of a module given by the working directory and module name.p9Get the typed representation from a type-correct program.qGExecutes a given command on the selected module and given other modules_`abcdefghijklmnopq0The module in which the refactoring is performed Other modulesrstuv_`abdeghcfijklmnopqrstuvjklmnoipqbcdefghrstu_`av_`abcdefghijklmnopqrstuv None{{{{ None$:OT|||| None$*: }}} }   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ N   5haskell-tools-refactor-0.2.0.0-9u2gUtD0hrwJUKSCc8uUUY*Language.Haskell.Tools.Refactor.GetModules,Language.Haskell.Tools.Refactor.RefactorBase.Language.Haskell.Tools.Refactor.ExtractBinding0Language.Haskell.Tools.Refactor.RenameDefinition/Language.Haskell.Tools.Refactor.GenerateExports5Language.Haskell.Tools.Refactor.GenerateTypeSignature/Language.Haskell.Tools.Refactor.OrganizeImportsLanguage.Haskell.Tools.Refactor-Language.Haskell.Tools.Refactor.DataToNewtype*Language.Haskell.Tools.Refactor.IfToGuards)Language.Haskell.Tools.Refactor.DollarApp getModulesmodulesFromCabalFilemodulesFromDirectory 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$fGhcMonadLocalRefactorTExtractBindingDomain AnnMaybe'Ann'extractBinding'extractBinding isConflictingextractThatBindaddLocalBindinginsertLocalBindisParenLikeExpr doExtractgetExternalBindsactualContainingExpr generateCall generateBindisValidBindingNameDomainRenameDefinitionrenameDefinition'renameDefinitionDomGenerateExportsgenerateExports getTopLevelsgetTopLevelDeclName createExportsGenerateSignatureDomaingenerateTypeSignature'generateTypeSignatureOrganizeImportsDomainorganizeImportsIsBootNormalHsIsHsBootRefactorCommand NoRefactorOrganizeImportsGenerateExportsGenerateSignatureRenameDefinitionExtractBinding TypedModuleuseDirsuseFlags initGhcFlags toFileNametoBootFileName loadModule parseTypedperformCommand readCommandanalyzeCommand readSrcSpan readSrcLoc tryRefactor$fShowRefactorCommand $fEqIsBoot $fOrdIsBoot $fShowIsBoot dataToNewtype ifToGuards dollarApp renameModule conflicts sameNamespacegenerateTypeFortypeSignatureAlreadyExistAnnList' genTypeSig generateTSForgetBindingName sortImports narrowImportsnarrowImportSpecs narrowImportnarrowImportSubspecstryItOutchangeDeclaration ifToGuards'ecreateSimpleIfRhss DollarDomain RefactMonad replaceExpr parenExpr parenDollar dollarName