*g      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe &compatibility wrapper for http-client  Toshio Ito <debug.ito@gmail.com>None1 !types and functions about logging Toshio Ito <debug.ito@gmail.com>SafeIf , logging is disabled."6FOR TEST: the IORef is the history of logged messages. !" !" Megaparsec compatibility wrapper Toshio Ito <debug.ito@gmail.com>NoneSee: Chttps://github.com/fpco/stackage/issues/2666#issuecomment-3184729190 combatible with Megaparsec 5. In Megaparsec 6,  function takes and produces  if we use  as the ( type, probably for better performance. combatible with Megaparsec 5.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"Query, Result and related symbols. Toshio Ito <debug.ito@gmail.com>Safe -Query for package version(s).0Source of packages.1 stackage.2hackage (latest)3)Resolver name at stackage like "lts-4.1".5description of a 0. ,-./0123456 430125-./6,-./012$functions dealing with .cabal files. Toshio Ito <debug.ito@gmail.com>None!= A block of build-depends:.ABuild target type.Bthe library target.Cthe executable NAME target.Dthe test-suite NAME target.Ethe benchmark NAME target.4expected field name. If Nothing, it just don't care.%(lower-case field name, indent level)&(lower-case field name, block content) =>?@ABCDEF FABCDE=>?@=>?@ABCDE9dealing with Stackage and build-plan repositories online. Toshio Ito <debug.ito@gmail.com>None(u N*Potentially partial resolver for stackage.P lts (latest)Q lts-(major)Rnightly (latest)S3Non-ambiguous fully-resolved resolver for stackage.Tlts-(major).(minor)Unightly-(year)-(month)-(day)Y Fetch the M from the Internet.[-Fetch build plan YAML data from the Internet.Zdisambiguation JSON text.MNOPQRSTUVWXYZ[STUNOPQRVWXMY[ZNOPQRSTU.Compatibility wrapper for Distribution.Version Toshio Ito <debug.ito@gmail.com>None,cA Version type by  Data.Version.e\Parse a version text. There must not be any trailing characters after a valid version text.   cdefgh   fhgcde"Result data type and its utilities Toshio Ito <debug.ito@gmail.com>None1i6Results for a query aggregated over different sources.qFor backward-compatibility.tthe 0 queried by user.uthe real (exact) 0 resolved.vResult for a query.| Create an i that includes just one v.ijklmnopqrstuvwxyz{|vwxyzrstu{qnopijklm|ijklmnoprstuvwxyzparsing Version Toshio Ito <debug.ito@gmail.com>None4<a wrapper around  for JSON I/Fee1(virtual) BuildPlan expressing the latest Hackage Toshio Ito <debug.ito@gmail.com>None7 JSorted list of preferred versions of the package. The head is the latest. Handle build plan YAML files. Toshio Ito <debug.ito@gmail.com>NoneKNDStateful manager for s.1path to the directory where build plans are hold.&low-level HTTP connection manager. If ., it won't fetch build plans over the network.cache of resolver disambigutor Types that have mapping between 4 and .A  associated with its 0.LA data structure that keeps a map between package names and their versions.Load a  from a file.1path to the directory where build plans are hold.If ?, it queries the Internet for build plans. Otherwise, it won't.first action tried.0the action executed if the first action returns .7package names whose versions the user is interested in.<the second result is the real (disambiguated) PackageSource.disambiguated LTS major versiondisambiguated LTS minor version   aggregation of multiple versions Toshio Ito <debug.ito@gmail.com>NoneZ Aggregateion monadAggregate some  s into a .Let Cabal convert  to Aggregator of ORed versions.Aggregate versions to the range that the versions cover in a PVP sense. This aggregator sets the upper bound to a major version, which means it assumes major-version bump is not backward-compatible.Aggregate versions to the range that versions cover in a PVP sense. This aggregator sets the upper bound to a minor version, which means it assumes minor-version bump is not backward-compatible. Aggregate vs with the given . It first groups vs based on its y3 field, and then each group is aggregated into an i.)If it fails, it returns an empty list of i. It also returns a list of  s to report warnings and errors.#Aggregate one or more maps between 4 and . The input  s should all be . ? version is warned and ignored. If the input versions are all , the result version range is .The 4b lists in the input must be consistent (i.e. they all must be the same list.) If not, it returns  map and an error is logged.{The comparator that determines if the two elements are in the same group. This comparator must be transitive, like '(==)'.(label,  version map). label is used for error logs.   formatting Result output. Toshio Ito <debug.ito@gmail.com>None`?header and child blocks&a block, which consists of some lines. lines and # lines are handled differently by /. It puts commas at the right places assuming  lines are commented out. Format for .Let Cabal format . Similar to %, but it uses the "caret" operator (^>=) where possible. Command from the user. Toshio Ito <debug.ito@gmail.com>Nonef/ Default values for .Command from the user.8path to the directory where build plan files are stored. the loggerpackage sources to searchpackage queriesif 4, it accesses the Internet to query build plans etc.if ", do aggregation over the results.config for the formatter   executable Toshio Ito <debug.ito@gmail.com>Noneg !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxxyz{|}~           !                          ! " # $ % & ' ( ) * + ,-.-/-0-1-2-3-4-5-6-7-8-9-:-;-<-=->-?-@-A-B-C-D-E-F-G-H-I-J-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-[-\-]-^-_-`-a-bcdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczc{|k}~                          )staversion-0.2.1.3-DLVgUbxnBDsG4HMLmMvQ6fStaversion.Internal.VersionStaversion.Internal.LogStaversion.Internal.QueryStaversion.Internal.Cabal&Staversion.Internal.BuildPlan.StackageStaversion.Internal.Result%Staversion.Internal.BuildPlan.Version%Staversion.Internal.BuildPlan.HackageStaversion.Internal.BuildPlanStaversion.Internal.AggregateStaversion.Internal.FormatStaversion.Internal.CommandStaversion.Internal.ExecPaths_staversionStaversion.Internal.HTTPStaversion.Internal.Megaparsec Cabal-2.0.1.0Distribution.VersionfromVersionIntervalssimplifyVersionRangeasVersionIntervalsunionVersionRanges thisVersionVersion VersionRangeVersionInterval LowerBound UpperBound NoUpperBoundInclusiveBoundExclusiveBoundBoundLoggerloggerThresholdLogEntrylogLevel logMessageLogLevelLogDebugLogInfoLogWarnLogError defaultLoggerputLog putLogEntrylogDebuglogInfologWarnlogError _mockLogger $fShowLogger$fShowLogLevel $fEqLogLevel $fOrdLogLevel$fEnumLogLevel$fBoundedLogLevel$fShowLogEntry $fEqLogEntry $fOrdLogEntryErrorMsgQuery QueryNameQueryCabalFile PackageSourceSourceStackage SourceHackageResolver PackageName sourceDesc parseQuery$fShowPackageSource$fEqPackageSource$fOrdPackageSource $fShowQuery $fEqQuery $fOrdQuery BuildDepends depsTarget depsPackagesTarget TargetLibraryTargetExecutableTargetTestSuiteTargetBenchmark loadCabalFile $fShowTarget $fEqTarget $fOrdTarget$fShowBuildDepends$fEqBuildDepends$fOrdBuildDepends DisambiguatorPartialResolver PartialExactPartialLTSLatestPartialLTSMajorPartialNightlyLatest ExactResolverExactLTS ExactNightlyparseResolverStringformatResolverStringformatExactResolverStringfetchDisambiguatorparseDisambiguatorfetchBuildPlanYAML$fFromJSONDisamMap$fShowExactResolver$fEqExactResolver$fOrdExactResolver$fShowPartialResolver$fEqPartialResolver$fOrdPartialResolver BaseVersionshowBaseVersionparseVersionText mkVersionversionNumbersmkVersionIntervalsAggregatedResult aggResultIn aggResultFor aggResultBody ResultBody'SimpleResultBodyCabalResultBody ResultBody ResultSourceresultSourceQueriedresultSourceRealResultresultIn resultFor resultBodyresultSourceDescsingletonResult$fFunctorResultBody'$fShowResultSource$fEqResultSource$fOrdResultSource$fShowResultBody'$fEqResultBody'$fOrdResultBody' $fShowResult $fEqResult $fOrdResult$fShowAggregatedResult$fEqAggregatedResult VersionJSON unVersionJSON$fFromJSONVersionJSON$fShowVersionJSON$fEqVersionJSON$fOrdVersionJSONRegisteredVersionsparsePreferredVersionsJSON latestVersionfetchPreferredVersions$fFromJSONRegisteredVersions$fShowRegisteredVersions$fEqRegisteredVersions$fOrdRegisteredVersionsBuildPlanManager HasVersionspackageVersion BuildPlanbuildPlanSource BuildPlanMapnewBuildPlanManager loadBuildPlanloadBuildPlanMapYAML_setLTSDisambiguator$fFromJSONBuildPlanMap$fHasVersionsBuildPlan$fHasVersionsBuildPlanMap$fMonoidBuildPlanMap AggregatorshowVersionRangegroupAllPreservingOrderByaggOr aggPvpMajor aggPvpMinoraggregateResultsaggregatePackageVersions FormatConfigfconfFormatVersion FormatVersionformatVersionCabalformatVersionCabalCaretformatAggregatedResultsCommandcommBuildPlanDir commLogger commSources commQueriescommAllowNetworkcommAggregatorcommFormatConfigdefFormatConfigparseCommandArgs$fShowDefCommand$fEqDefCommand$fOrdDefCommandmainprocessCommand)_processCommandWithCustomBuildPlanManager$fShowResolvedQuery$fEqResolvedQuery$fOrdResolvedQueryversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName)http-client-0.5.10-6xYhdeKuDhhHRijdrRwXENNetwork.HTTP.Client.TypesManagerOurHttpExceptionniceHTTPManagerfetchURLParseUrlExceptionStatusFailureExceptionOtherHttpExceptionbaseGHC.BaseNothingloggerPutLogRawParserstring#text-1.2.2.2-EakMpasry3jA6OIwSZhq9MData.Text.InternalText'megaparsec-6.4.1-EmF114tEi14JDwyY0wAJYrText.Megaparsec.StreamStreamstring'<|>emptyControl.Applicativeoptional/parser-combinators-0.4.0-LXzRXKyLrFT6DPfieme8NKControl.Applicative.CombinatorsbetweenchoiceeitherPoptionControl.Monad.Combinatorscountcount'endByendBy1manyTillsomesomeTillsepBysepBy1sepEndBy sepEndBy1skipManyskipSome skipCount skipManyTill skipSomeTillmanyText.Megaparsec.CharsatisfynoneOfoneOfnotCharanyCharchar'char categoryName charCategory latin1Char asciiChar separatorChar symbolCharpunctuationChar numberCharmarkChar hexDigitChar octDigitChar digitChar printChar alphaNumChar letterChar lowerChar upperChar spaceChar controlCharspace1spacetabeolcrlfnewlineText.MegaparsecdbgsetParserState setTabWidth getTabWidthsetTokensProcessedgetTokensProcessed popPosition pushPosition setPositiongetNextTokenPosition getPositionsetInputgetInputatEndtakeRestregionmatch customFailure unexpected runParserT' runParserT runParser' runParser parseTest' parseTest parseMaybeparseState stateInputstatePosstateTokensProcessed stateTabWidthParsecParsecT MonadParseceoftry lookAheadlabelfailure fancyFailurehidden notFollowedBy withRecovery observingtokentokens takeWhileP takeWhile1PtakePgetParserStateupdateParserStateText.Megaparsec.ErrorparseErrorTextPrettysourcePosStackPrettyparseErrorPretty_parseErrorPretty'parseErrorPrettyerrorPos ErrorItemTokensLabel EndOfInput ErrorFancy ErrorFailErrorIndentation ErrorCustom ParseError TrivialError FancyError ShowToken showTokens LineToken tokenAsChartokenIsNewlineShowErrorComponentshowErrorComponentToken tokenToChunk tokensToChunk chunkToTokens chunkLength chunkEmpty positionAt1 positionAtNadvance1advanceNtake1_takeN_ takeWhile_Text.Megaparsec.PossourcePosPretty initialPosdefaultTabWidthpos1unPosmkPosPosInvalidPosException SourcePos sourceLine sourceColumn sourceName fieldStart fieldBlockDisamMap unDisamMapregPreferredVersionsmanBuildPlanDirmanHttpManagermanDisambiguatorghc-prim GHC.TypesTrue loggedElse Data.EitherLeft manLogger buildPlanMapAggMStringMaybeJustRBHeadRBLines ResultLineRightformatResultBlock ResultBlock DefCommand SelectSpec selectResult selectSymbol selectDescdefBuildPlanDir ResolvedQuery RQueryOne RQueryCabal