]N      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ _ ` a b c d e f g h i j k l m n o p qrstuvwxyz{|}~  Safe  None/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#pattern synonym constructor$pattern synonym selector-Pretty print a symbol..Display an error.@Note: can span multiple lines; the trailing newline is included.1  !"#$%&'()*+,-.0 " !#$)%&'(*+,-.  - !"#$%&%&'%&()%&(%&%&%&%&*%&*%&%&+%&+,-.None/0123456789:;<=>?@ABC/0123456789:;<=>?@ABC/0123469:5;<=>?@78ABC/0123456789:;<=>?@ABCNone*9;<=MMNoneID1Local symbol table  contains locally bound namesDEFGDEFGDGFEDEFGNone0IIGlobal symbol table  contains names declared somewhere at the top level.JEmpty global symbol table.KCFor each name take the union of the lists of symbols they refer to. IJKLMNOPQRSTU IJKLMNOPQRSTU IJKLMNOPQRSTU IJKLMNOPQRSTUNone#LV)Information about a field in the wildcardXthe field's simple nameYthe field's selector symbolZowhether 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. VWXYZ[ VWXYZ[VWXYZ[None=Find a single constructor or method name in a list of symbols@Find a list of constructor or method names in a list of symbols.If < ("qualified"), then only the qualified names are inserted.If :, then both qualified and unqualified names are insterted.error for "not found" conditionerror for "not found" conditionNoneDR\TCompute 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. \]  \]\] \]  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.^_ `abcdefghijklm^_^_^_ `abcdefghijklm None$TnvCompute module's global table. It contains both the imported entities and the global entities defined in this module.o9Compute 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 {..} = foo Takes a type name and a list of constructor names paired with selector names. Returns all symbols i.e. constructors and selectors. n the import table for this moduleo the import table for this modulep the import table for this module  noponp nop  None 69:;DOTfq\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.mPattern synonyms can work in different modes depending on if we are on the left hand side or right hand sideBind QName's too:Supress bindings, force references instead (even for Name)r:Describes how we should treat names in the current contextwfReference a method in an instance declaration Unqualified names also match qualified names in scope Fhttps://www.haskell.org/pipermail/haskell-prime/2008-April/002569.htmlxpReference 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.htmly!Reference a record field selectorz0A type signature contains an always unqualified 9 that always refers to a value bound in the same module.|A type that implements |< provides a way to perform a shallow scope-aware traversal.~The algebra for }L. 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 | Analogous to  , but for |9qrstuvwxyz{|} !~"#$%&'()*+,-./0123458qr{stuvwxyz|} !~"#$%&'()*+,-./01234"qr stuvwxyz{|} !~"#$%&'()*+,-./012345None 9:;<=OT6Chain 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.789:;6<=>?@ABCDEFGHIJKLMNOPQR789:;6789:;6<=>?@ABCDEFGHIJKLMNOPQR8495NoneVWXYZ[qr{stuvwxyz|}~|}~qrstuvwxyz{[VWXYZ 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.STUSTUNone09;[Symbols could not be parsed. This tells you the name of the file and the parse error text.Read symbols from a file.Write symbols to a file.RLoad a basic environment that contains modules very similar to GHC's base package. VWXY VWXYNone %&:<=QRTZ[\]^_  Z[\]^_NoneDRTTakes a list of modules and an environment and updates the environment with each of the given modules' exported symbols. The modules can appear in any order and can be mutually recursive.`yTake a set of modules and return a list of sets, where each sets for a strongly connected component in the import graph.acCompute 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.`ba`baNone4 " !#$)%&'(*+,-.M !"#$%&%&'%&()%&(%&%&%&%&*%&*%&%&+%&+, .-c              ! " # $ % & ' ( ) ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ ABCDEFGHIJKLMNOPQRSTUVWXYZ[WZ\Y]^_`abcdeffghijkl m n o p q r s t u v w x y z { | } ~   W             !"#$%&'()*+,-./01223456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc d e fghijkl`mnopqrs*haskell-names-0.9.0-9qoFKd06ImS9xYhnnzEl1WLanguage.Haskell.Names Language.Haskell.Names.Annotated"Language.Haskell.Names.Environment"Language.Haskell.Names.SyntaxUtils'Language.Haskell.Names.LocalSymbolTable(Language.Haskell.Names.GlobalSymbolTableLanguage.Haskell.Names.OpenLanguage.Haskell.Names.ImportsLanguage.Haskell.Names.GetBound$Language.Haskell.Names.ModuleSymbolsLanguage.Haskell.Names.ExportsPaths_haskell_namesLanguage.Haskell.Names.Types#Language.Haskell.Names.Open.Derived&Language.Haskell.Names.RecordWildcards!Language.Haskell.Names.ScopeUtils Language.Haskell.Names.Open.Base%Language.Haskell.Names.Open.Instances Language.Haskell.Names.RecursiveError ENotInScope EAmbiguous ETypeAsClass EClassAsType ENotExported EModNotFound EInternalNameInfo GlobalSymbol LocalValueTypeVar ValueBinder TypeBinderImport ImportPartExportRecPatWildcardRecExpWildcardNone ScopeErrorScoped EnvironmentSymbolValueMethodSelector ConstructorTypeDataNewTypeTypeFamDataFamClassPatternConstructorPatternSelector symbolModule symbolName classNametypeName constructors associatepatternTypeNamepatternConstructorNameppSymbolppErrordropAnnsetAnnannNamenameQualification getModuleName getImportsgetModuleDeclsgetExportSpecList qNameToName nameToQName getDeclHeadgetDeclHeadName isTypeDeclopNameisCon nameToString stringToNamespecialConToStringunCName getErrorsgetModuleExtensionsTableaddValue lookupValueempty $fMonoidTable mergeTables lookupTypelookupMethodOrAssociatelookupSelector lookupNameisValueisTypeisMethodOrAssociated isSelectorfromListWcField wcFieldName wcFieldSymbolwcExistsGlobalValueWcNames importTableannotateImportDeclsGetBoundgetBound$fGetBoundPatl$fGetBoundQualStmtl$fGetBoundStmtl$fGetBoundMatchl$fGetBoundClassDecll$fGetBoundFieldDecll$fGetBoundConDecll$fGetBoundGadtDecll$fGetBoundQualConDecll$fGetBoundDecll$fGetBoundBindsl$fGetBound(,)l$fGetBoundMaybel $fGetBound[]l moduleTable moduleSymbolsgetTopDeclSymbolsScope NameContextBindingTBindingV ReferenceT ReferenceV ReferenceUV ReferenceUT ReferenceRS SignatureVOther Resolvable rtraverseAlgrunAlggTablelTablenameCtxwcNames initialScopermaprfoldMapexportedSymbolsannotateExportSpecListSymbolsFileExceptionBadSymbolsFile readSymbols writeSymbolsloadBase$fFromJSONSymbol$fToJSONSymbol$fExceptionSymbolsFileException$fShowSymbolsFileException annotateDeclresolveannotatecatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamesLoc$fSrcInfoScoped getModuleHead isHSymbol$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$fGTraversablecRole$fGTraversablecInjectivityInfo$fGTraversablecResultSig$fGTraversablecUnpackedness$fGTraversablecEWildcardgetElidedFieldsnameOfPatFieldnameOfUpdField patWcNames expWcNames resolveCName resolveCNames scopeErrornonenoScope symbolParentcomputeSymbolTableghc-prim GHC.TypesTrueFalsepreludeModuleNameimportDeclTableimportSpecListSymbolsannotateImportDeclannotateImportSpecListresolveImportSpecann2syms checkUnique getBoundSignconstructorsToInfos typeOuterNamequalConDeclNames dataOrNewCon patternHead patternFields PatSynModePatSynLeftHandSidePatSynRightHandSide.haskell-src-exts-1.19.1-3cTxCkJRAWwHmHJiV9Cwc5Language.Haskell.Exts.SyntaxNamemergeLocalScopes2traverse-with-class-1.0.0.0-Fip7b7fiMz8L7KuRcKowd8Data.Generics.Traversablegmap _moduName_gTable_lTable_nameCtx_instClassName_wcNames _patSynModeConstraintProxymoduName instClassName patSynModealgdefaultRtraverseintro setNameCtx setWcNames getWcNamesbinderVbinderTexprVexprT signatureVexprUVexprUTexprRSsetInstClassName setPatSynMode $fResolvableachainc<|-:instanceRuleClassinstanceHeadClass$fResolvableSrcSpanInfo$fResolvableSrcSpan$fResolvableScoped$fResolvableOp$fResolvableClassDecl$fResolvableInstDecl$fResolvableContext$fResolvableInstRule$fResolvableQualStmt$fResolvable[]$fResolvableGuardedRhs$fResolvableAlt$fResolvableFieldUpdate$fResolvableExp$fResolvableBinds$fResolvableMatch$fResolvablePatField$fResolvablePat$fResolvableFieldDecl$fResolvableConDecl$fResolvableDeclHead$fResolvableType$fResolvableDeclexportSpecSymbolsannotateExportSpec nubSymbols prettyName symbolEntity parseName baseModules annotateRec lookupQNamecheckUniquenessdisambiguateMethod qualifyName groupModules findFixPoint moduleNode