Îõ³h& W       Safe-Inferred± !"#$ Safe-Inferred graphmodÈA hierarchical module name. We make this an opaque type with accessors   and  ? so that we can transparently add new structure to this type. graphmodGet the imports of a file. graphmod8Get the imports from a string that represents a program.%graphmod/Drop comments, but keep {-# SOURCE #-} pragmas. graphmod9Convert a string name into a hierarchical name qualifier.&graphmodThe ù for a Main module is the path leading to it, the module name is the file's basename, which is Main in typical cases. graphmodÆConvert a string name into a hierarchical name. It is important that f ' (( . &) f) graphmod)The files in which a module might reside.graphmodËThe files in which a module might reside. We report only files that exist.     Safe-Inferred²(graphmod6This is our abstraction for something in a cabal file. )*+(,-./01 Safe-Inferredä23456789 Safe-Inferred:graphmodThe Bool? tells us if we should collapse modules as well. For example, TrueÚ says that A.B.C would collapse not only A.B.C.* but also the module A.B.C, if it exists.;graphmod)should we try to use a cabal file, if any<graphmod/A module that has been relocated to its cluster=graphmodåThis is not rendered. It is there to support replacing one node with another (e.g., when collapsing)>graphmodÂThis is not rendered, and edges to/from it are also not rendered.?graphmod$indicates if it contains module too.@graphmod(Guess if we have a file or a module nameAgraphmodøIf inside cluster A.B we have a module M, and there is a cluster A.B.M, then move M into that cluster as a special node       !"#$%&'()*+,-./012/3456789:;<=>?@ABCDEFGÈ'graphmod-1.4.5.1-Jkd4AR2TXp3Hee2EtJJ87mGraphmod.UtilsGraphmod Graphmod.TrieGraphmod.CabalSupportPaths_graphmodModName QualifierImpType NormalImp SourceImpImportimpModimpType parseFile parseStringqualifierNodes fromHierarchysplitQualifier splitModName joinModNamerelPathssuffixes modToFile $fShowImport $fEqImport$fShowQualifier $fEqQualifier $fShowImpType $fEqImpType $fOrdImpTypegraphmod$fShowIgnoreSpec $fShowNodeT $fEqNodeT $fOrdNodeT $fShowInputTrieSubemptylookupinsert dropComments splitFilePathbase Data.FoldableelemUnitUnitName UnitLibraryUnitExecutableunitName unitPaths unitModules unitFilesparseCabalFileversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDircollapse_quals use_cabalModuleInItsClusterRedirectDeleted CollapsedNodeto_inputmoveModulesInCluster