h&*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                   Safe-Inferred5   $#"! ,+*)('&%/.-43210<;:98765IHGFEDCBA@?>=LKJMNOSTUVWXYZ[\]^_`abcdefRQPLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! fRQPeVNYX  ScTMObdUWa`[Z]\_^ Safe-Inferred80ghijhgij Safe-Inferred"` mnopqrstuvwx nopqrstuvwxm Safe-Inferred'yz{z{y Safe-Inferred89: } calligraphyNonsensical bounds, i.e. a left-hand bound larger than the right-hand obund~ calligraphyTwo identical scopes calligraphyAn attempt to split halfway through a scope, usually the result of two partially overlapping scopes calligraphyAttempting to insert a scope that would not form a tree structure calligraphyOnly works if the height difference of the two trees is at most 2 calligraphyHeight calligraphy*Scopes at the same level, left of this one calligraphy)Left-hand bound of this scope (inclusive) calligraphyChildren calligraphy*Right-hand bound of this scope (exclusive) calligraphy-Scopes at the same level, right of this entry|}~|}~ Safe-Inferred < calligraphyEnable/disable flags for a . calligraphy"Enable/disable flags for any type. calligraphyEnable/disable flags for any type, without a default (to allow chaining with ) calligraphy Default value calligraphy Flag name calligraphy Help suffix calligraphy Default value calligraphy Enabled value calligraphyDisabled value calligraphyName calligraphy Help suffix calligraphy Enabled value calligraphyDisabled value calligraphyName calligraphy Help suffix Safe-Inferred? k   Safe-Inferred   Safe-Inferred? calligraphyA key that was produced by GHC, c.f. Key that we produced ourselves. We wrap it in a newtype because GHC itself uses a type synonym, but we want conversions to be as explicit as possible. calligraphyA key in our own local space, c.f. a key that was generated by GHC. calligraphyThis is the main type that processing phases will operate on. Note that calls and typing judgments are part of this top-level structure, not of the individual modules.)ij)ij  Safe-Inferred"%&  Safe-Inferred?G calligraphy1Assigns and maintains a mapping of GHCKeys to Key calligraphy-A declaration extracted from the source code.A single symbol can apparently declare a name multiple times in the same place, with multiple distinct keys D: This happens, for example, with default methods; the name refers to both the method name and the default implementation's name. We have to account for that to _some_ degree, which is why keys is a set. The actual resolution of these happens wit  in mkForest calligraphyThis is the best way I can find of checking whether the name was written by a programmer or not. GHC internally classifies names extensively, but none of those mechanisms seem to allow to distinguish GHC-generated names. calligraphy3Collect declarations, uses, and types in a HIE file    Safe-Inferred%&    Safe-Inferred' Safe-Inferred calligraphyRemove all calls and typings (i.e. edges) where one end is not present in the graph. This is intended to be used after an operation that may have removed nodes from the graph. calligraphyCreate a map of all names, and the keys they correspond to. For every name in the source, this introduces two entries; one naked, and one qualified with the module name. Safe-Inferred Safe-Inferred"%& !"#$%&&'())*+,-./0123456789:;<<=>>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^]_`a`b`cdefghifjfklmlnlolplqlrlsltlulvwxyz{|h}`c~     K            V V         |                                                                            (calligraphy-0.1.4-4W4LfsPhbFY7WijuABiVZ1Calligraphy.Compat.GHCCalligraphy.Util.LensCalligraphy.Compat.LibCalligraphy.Phases.SearchCalligraphy.Util.LexTreeCalligraphy.Util.OptparseCalligraphy.Util.PrinterCalligraphy.Compat.DebugCalligraphy.Util.TypesCalligraphy.Phases.RenderCalligraphy.Phases.ParseCalligraphy.Phases.NodeFilterCalligraphy.Phases.EdgeCleanup#Calligraphy.Phases.DependencyFilter CalligraphyPaths_calligraphyghcGHC.Iface.Ext.Binaryhie_file_result_versionhie_file_result_ghc_versionhie_file_result HieFileResultGHC.Iface.Ext.Types TypeIndexSpanNoScope ModuleScope LocalScopeScope RecFieldOcc RecFieldMatch RecFieldDeclRecFieldAssignRecFieldContextnodeTypenodeIdentifiersnodeAnnotationsNodeInfo identType identInfoIdentifierDetails Identifier HieTypeFlatHTyVarTy HTyConAppHQualTyHLitTyHFunTy HForAllTy HCoercionTyHCastTyHAppTyHieType hie_types hie_module hie_hs_src hie_hs_file hie_exportshie_astsHieFilegetAstsHieASTssourcedNodeInfonodeSpan nodeChildrenNodeHieASTSynDec PatSynDecInstDecFamDecDataDecConDecClassDecDeclTypeValBindUse TyVarBindTyDeclRecField PatternBind MatchBindIEThingEvidenceVarUseEvidenceVarBindDecl ClassTyDecl ContextInfo RegularBind InstanceBindBindType hieVersionGHC.Types.Name.Cache NameCache initNameCacheGHC.Iface.TypeifaceTyConNameifaceTyConInfo IfaceTyConGHC.Types.Avail availNamesGHC.Types.Name getOccStringGHC.Unit.Module.NamemoduleNameStringName nameUniqueGHC.Types.SrcLoc RealSrcSpan RealSrcLocsrcSpanStartLinesrcSpanStartColsrcSpanEndLine srcSpanEndCol srcLocLine srcLocColrealSrcSpanStartrealSrcSpanEndGHC.Types.Unique.SupplymkSplitUniqSupplyGHC.Types.UniquegetKeyGHC.Unit.Types moduleName ModuleName Traversal' TraversaloverforT_$fApplicativeConstT$fFunctorConstT getHieFiles sourceInfoshowContextInforeadHieFileCompatisInstanceNodeisTypeSignatureNode isInlineNode isMinimalNodeisDerivingNodeshowAnns mergeSpans isPointSpan SearchConfig searchFiles pSearchConfig TreeError InvalidBoundsOverlappingBoundsMidSplit LexicalErrorLexTreeTipBinlookup lookupOutertoList foldLexTree emptyLexTreetoForestheightshiftbin insertWithinsert $fEqLexTree$fFunctorTreeError$fFoldableTreeError$fTraversableTreeError $fEqTreeError$fShowTreeError $fShowLexTree$fFunctorLexTree$fFoldableLexTree$fTraversableLexTree boolFlags MonadPrintlineindentPrintsPrinter unPrinter runPrinterbrackstrLntextLnshowLn$fMonadPrintStateT$fMonadPrintPrinter$fFunctorPrinter$fApplicativePrinter$fMonadPrinter$fSemigroupPrinter$fMonoidPrinter ppHieFile ppIdentifier showGHCNameLoclocLinelocCol ValueDeclRecDeclConDeclDataDecl ClassDeclGHCKeyunGHCKeyKeyunKeydeclNamedeclKey declGHCKeys declExporteddeclTypedeclLocModule modulePath moduleForest CallGraph_modules_calls_typesmodDecls modForestforestT rekeyCalls ppCallGraph $fShowLoc$fEqLoc$fOrdLoc $fEqDeclType $fOrdDeclType$fShowDeclType $fShowGHCKey $fEnumGHCKey $fEqGHCKey $fOrdGHCKey $fEnumKey $fShowKey$fEqKey$fOrdKey RenderConfig showCalls showTypesshowKey showGHCKeysshowModulePathshowChildArrowheadlocModeclusterModules clusterGroupssplinesreverseDependencyRankrender pRenderConfigParsePhaseDebugInfomodulesLexTrees ParseError _peModuleName _peModulePath_peError ppParseErrorppParsePhaseDebugInfo parseHieFiles$fSemigroupDedup$fMonoidIdentifierType$fSemigroupIdentifierTypeNodeFilterConfig hideLocalscollapseModulescollapseClasses collapseDatacollapseValuescollapseConstructors hideRecordspNodeFilterConfig filterNodes$fEqMode $fShowModeEdgeCleanupConfig cleanupEdgespEdgeCleanupConfigDependencyFilterErrorUnknownRootNameDependencyFilterConfigpDependencyFilterConfig ppFilterErrordependencyFiltermainmainWithConfigghc-prim GHC.TypesBoolenableDisableFlagsenableDisableFlagsNoDefaultbaseGHC.Base<|>HieParseRawDecldedup isGeneratedcollectremoveDeadCalls resolveNamesversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir