~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe  None*9;<=IINone/0234$Errors during name resolution.name is not in scopename is ambiguous+type is used where a type class is expected+type class is used where a type is expectedlAttempt to explicitly import a name which is not exported (or, possibly, does not even exist). For example: import Prelude(Bool(Right))The fields are: )optional parent in the import list, e.g. Bool in  Bool(Right)the name which is not exported)the module which does not export the namemodule not foundinternal error+Information about the names used in an AST. +global entitiy and the way it is referenced +local value, and location where it is bound -type variable, and location where it is bound here the value name is bound here the type name is definedimport: declaration, and the table of symbols that it introduces part of an import declaration part of an export declarationxwildcard in a record pattern. The list contains resolved names of the fields that are brought in scope by this pattern.wildcard in a record construction expression. The list contains resolved names of the fields and information about values assigned to those fields. no annotation scope error\A pair of the name information and original annotation. Used as an annotation type for AST.5A map from module name to list of symbols it exports.eInformation about an entity. Carries at least the module it was originally declared in and its name.value or function class methodrecord field selectordata constructor type synonym data typenewtype  type family! data family" type class)Pretty print a symbol.*Display an error.@Note: can span multiple lines; the trailing newline is included.-  !"#$%&'()*, " !'#$%&()*  $ !"#$#$%#$&'#$&#$#$#$#$(#$(#$)*None0+IGlobal symbol table  contains names declared somewhere at the top level.,Empty global symbol table.-CFor each name take the union of the lists of symbols they refer to. +,-./012345 +,-./012345 +,-./012345 +,-./012345NoneI61Local symbol table  contains locally bound names6789678969876789None;<=>?@ABCDEFGHIJKLMNO;<=>?@ABCDEFGHIJKLMNO;<=>?@BEFAGHIJKLCDMNO;<=>?@ABCDEFGHIJKLMNONone09;Q[Symbols could not be parsed. This tells you the name of the file and the parse error text.RRead symbols from a file.SWrite symbols to a file.TRLoad a basic environment that contains modules very similar to GHC's base package. PQRSTUVWPQRSTTRSPQ PQRSTUVWNone#LY)Information about a field in the wildcard[the field's simple name\the field's original name]owhether there is a global value in scope with the same name as the field but different from the field selector^AInformation about the names being introduced by a record wildcardDuring resolving traversal, we always (lazily) construct this list when we process PRec or RecConstr, even if it doesn't contain a wildcard.]Then, if the pattern or construction actually contains a wildcard, we use the computed value. YZ[\]^ YZ[\]^YZ[\]^None #9;<=?T_Get bound value identifiers.`sFor record wildcards we need to know which fields the given constructor has. So we pass the global table for that._`abcdefghijklmn_`_`_`abcdefghijklmnNone 69:;DOT o\Contains information about the node's enclosing scope. Can be accessed through the lenses: ~, , , instanceQualification, v. If we enter an instance with a qualified class name we have to remember the qualification to resolve method names.p:Describes how we should treat names in the current contextufReference a method in an instance declaration Unqualified names also match qualified names in scope Fhttps://www.haskell.org/pipermail/haskell-prime/2008-April/002569.htmlvpReference an associated type in an instance declaration Unqualified names also match qualified names in scope Fhttps://www.haskell.org/pipermail/haskell-prime/2008-April/002569.htmlw0A type signature contains an always unqualified 9 that always refers to a value bound in the same module.yA type that implements y< provides a way to perform a shallow scope-aware traversal.{The algebra for zL. It's newtype-wrapped because an implicit parameter cannot be polymorphic.Create an initial scope]Merge local tables of two scopes. The other fields of the scopes are assumed to be the same. Analogous to  , but for y Analogous to  , but for y1opqrstuvwxyz{|}~     0opxqrstuvwyz{|}~     opqrstuvwxyz{|}~     None 9:;<=OTChain a sequence of nodes where every node may introduce some variables into scope for the subsequent nodes. Examples: patterns (see note [Nested pattern scopes]), statements. !"#$%&'()*+, !"#$%&'()*+,45NoneYZ[\]^opxqrstuvwyz{|}~yz{|}opqrstuvwx~^YZ[\]None %&:<=QRT-./0  -./0None1=Find a single constructor or method name in a list of symbols2@Find a list of constructor or method names in a list of symbols.34567If 8< ("qualified"), then only the qualified names are inserted.If 9:, then both qualified and unqualified names are insterted.1error for "not found" condition2error for "not found" condition34567123456712 NoneDRTCompute a table of symbols imported by the given module from the given environment.Annotate the given list of import declarations with scoping information against the given environment. We need the name of the module that contains the import declarations for error annotations. :;<=>?@A :;<=>?@A None$TvCompute module's global table. It contains both the imported entities and the global entities defined in this module.9Compute the symbols that are defined in the given module.[The import table is needed to resolve possible top-level record wildcard bindings, such as  A {..} = fooBTakes a type name and a list of constructor names paired with selector names. Returns all symbols i.e. constructors and selectors. the import table for this module the import table for this module the import table for this moduleBCDEBCDE NoneDRxCompute the list of symbols the given module exports using the given table of symbols that are in scope in that module.{Annotate the given export list with scoping information using the given table of symbols that are in scope in that module.FGFGNoneDRTyTakes a list of modules and an environment and updates the environment with each of the given modules' exported symbols.HyTake a set of modules and return a list of sets, where each sets for a strongly connected component in the import graph.IcCompute interfaces for a set of mutually recursive modules and update the environment accordingly.Annotate a module with scoping information using the given environment. All imports of the given module should be in the environment.HJIHJINone0 " !'#$%&()*RSTD !"#$#$%#$&'#$&#$#$#$#$(#$(#$ RST*)K !"#$%&'())*+,-./0123456789:;<=>?@ABCDEFGH>IA?JKLMNOPQRSTUVWXYZ[\]^_`abcdefghiijklmnopqrstuvwxyz{|}~  >~      !"#$%&'()*+,-./0123456789:;<=D>?@ABCDEFGHFGI J K L M N O P Q R S T U V WXYZ[*haskell-names-0.7.0-8CwDEwrZLEaFJXInr7LNFpLanguage.Haskell.Names Language.Haskell.Names.Annotated"Language.Haskell.Names.Environment(Language.Haskell.Names.GlobalSymbolTable'Language.Haskell.Names.LocalSymbolTable"Language.Haskell.Names.SyntaxUtilsLanguage.Haskell.Names.OpenLanguage.Haskell.Names.GetBoundLanguage.Haskell.Names.Imports$Language.Haskell.Names.ModuleSymbolsLanguage.Haskell.Names.ExportsPaths_haskell_names#Language.Haskell.Names.Open.DerivedLanguage.Haskell.Names.Types&Language.Haskell.Names.RecordWildcards Language.Haskell.Names.Open.Base%Language.Haskell.Names.Open.Instances!Language.Haskell.Names.ScopeUtils Language.Haskell.Names.RecursiveError ENotInScope EAmbiguous ETypeAsClass EClassAsType ENotExported EModNotFound EInternalNameInfo GlobalSymbol LocalValueTypeVar ValueBinder TypeBinderImport ImportPartExportRecPatWildcardRecExpWildcardNone ScopeErrorScoped EnvironmentSymbolValueMethodSelector ConstructorTypeDataNewTypeTypeFamDataFamClass symbolModule symbolName classNametypeName constructors associateppSymbolppErrorTableempty mergeTables lookupValue lookupTypelookupMethodOrAssociate lookupNameisValueisTypeisMethodOrAssociatedfromListaddValue $fMonoidTabledropAnnsetAnnannNamenameQualification getModuleName getImportsgetModuleDeclsgetExportSpecList qNameToName nameToQName getDeclHeadgetDeclHeadName isTypeDeclopNameisCon nameToString stringToNamespecialConToStringunCName getErrorsgetModuleExtensionsSymbolsFileExceptionBadSymbolsFile readSymbols writeSymbolsloadBase$fFromJSONSymbol$fToJSONSymbol$fExceptionSymbolsFileException$fShowSymbolsFileExceptionWcField wcFieldNamewcFieldModuleNamewcExistsGlobalValueWcNamesGetBoundgetBound$fGetBoundPatl$fGetBoundQualStmtl$fGetBoundStmtl$fGetBoundMatchl$fGetBoundClassDecll$fGetBoundFieldDecll$fGetBoundConDecll$fGetBoundGadtDecll$fGetBoundQualConDecll$fGetBoundDecll$fGetBoundBindsl$fGetBound(,)l$fGetBoundMaybel $fGetBound[]lScope NameContextBindingTBindingV ReferenceT ReferenceV ReferenceUV ReferenceUT SignatureVOther Resolvable rtraverseAlgrunAlggTablelTablenameCtxwcNames initialScopermaprfoldMap annotateDecl importTableannotateImportDecls moduleTable moduleSymbolsgetTopDeclSymbolsexportedSymbolsannotateExportSpecListresolveannotatecatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName$fGTraversablecModuleName$fGTraversablecSpecialCon$fGTraversablecQName$fGTraversablecName$fGTraversablecBoxed$fGTraversablecIPName$fGTraversablecQOp$fGTraversablecOp$fGTraversablecCName$fGTraversablecModule$fGTraversablecModuleHead$fGTraversablecExportSpecList$fGTraversablecExportSpec$fGTraversablecImportDecl$fGTraversablecImportSpecList$fGTraversablecImportSpec$fGTraversablecAssoc$fGTraversablecDecl$fGTraversablecAnnotation$fGTraversablecDataOrNew$fGTraversablecDeclHead$fGTraversablecInstHead$fGTraversablecInstRule$fGTraversablecDeriving$fGTraversablecBinds$fGTraversablecIPBind$fGTraversablecMatch$fGTraversablecQualConDecl$fGTraversablecConDecl$fGTraversablecFieldDecl$fGTraversablecGadtDecl$fGTraversablecClassDecl$fGTraversablecInstDecl$fGTraversablecBangType$fGTraversablecRhs$fGTraversablecGuardedRhs$fGTraversablecType$fGTraversablecTyVarBind$fGTraversablecKind$fGTraversablecFunDep$fGTraversablecContext$fGTraversablecAsst$fGTraversablecLiteral$fGTraversablecExp$fGTraversablecXName$fGTraversablecXAttr$fGTraversablecBracket$fGTraversablecSplice$fGTraversablecSafety$fGTraversablecCallConv$fGTraversablecModulePragma$fGTraversablecTool$fGTraversablecActivation$fGTraversablecRule$fGTraversablecRuleVar$fGTraversablecWarningText$fGTraversablecPat$fGTraversablecPXAttr$fGTraversablecRPatOp$fGTraversablecRPat$fGTraversablecPatField$fGTraversablecStmt$fGTraversablecQualStmt$fGTraversablecFieldUpdate$fGTraversablecAlt$fGTraversablecPromoted$fGTraversablecBooleanFormula$fGTraversablecTypeEqn$fGTraversablecOverlap$fGTraversablecSign$fGTraversablecNamespace"$fGTraversablecPatternSynDirection$fGTraversablecRolesLoc$fSrcInfoScoped getModuleHead isHSymbol prettyName symbolEntity parseName baseModulesgetElidedFieldsnameOfPatFieldnameOfUpdField patWcNames expWcNames getBoundSign.haskell-src-exts-1.17.1-6G3hSTJXLEu8noQY4a7Epo&Language.Haskell.Exts.Annotated.SyntaxNamemergeLocalScopes2traverse-with-class-0.2.0.4-29flKh81XzlATxY7DyE4EfData.Generics.Traversablegmap _moduName_gTable_lTable_nameCtx _instQual_wcNamesConstraintProxymoduNameinstQualalgdefaultRtraverseintro setNameCtx setWcNames getWcNamesbinderVbinderTexprVexprT signatureVexprUVexprUTinstQ $fResolvableachainc<|-:instanceRuleClassinstanceHeadClass$fResolvableSrcSpanInfo$fResolvableSrcSpan$fResolvableScoped$fResolvableOp$fResolvableClassDecl$fResolvableInstDecl$fResolvableContext$fResolvableInstRule$fResolvableQualStmt$fResolvable[]$fResolvableGuardedRhs$fResolvableAlt$fResolvableExp$fResolvableBinds$fResolvableMatch$fResolvablePatField$fResolvablePat$fResolvableFieldDecl$fResolvableConDecl$fResolvableDeclHead$fResolvableType$fResolvableDecl annotateRec lookupQName qualifyName resolveCName resolveCNames scopeErrornonenoScope symbolParentcomputeSymbolTableghc-prim GHC.TypesTrueFalsepreludeModuleNameimportDeclTableimportSpecListSymbolsannotateImportDeclannotateImportSpecListresolveImportSpecann2syms checkUniqueconstructorsToInfos typeOuterNamequalConDeclNames dataOrNewConexportSpecSymbolsannotateExportSpec groupModules findFixPoint moduleNode