!|,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe &compatibility wrapper for http-client  Toshio Ito <debug.ito@gmail.com>None2  staversionHTTP status code!types and functions about logging Toshio Ito <debug.ito@gmail.com>Safe staversionIf , logging is disabled." staversion6FOR TEST: the IORef is the history of logged messages. !" !" Megaparsec compatibility wrapper Toshio Ito <debug.ito@gmail.com>None! staversionSee: Chttps://github.com/fpco/stackage/issues/2666#issuecomment-318472919 staversion0 combatible with Megaparsec 5. In Megaparsec 6,  function takes and produces  if we use  as the ( type, probably for better performance. staversion combatible with Megaparsec 5.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"Query, Result and related symbols. Toshio Ito <debug.ito@gmail.com>Safe - staversionQuery for package version(s).2 staversionSource of packages.3 staversion stackage.4 staversionhackage (latest)5 staversionEstack.yaml file. Its "resolver" field is used as the package source.6 staversionthe resolver that the stack command would use by default.7 staversion)Resolver name at stackage like "lts-4.1".9 staversiondescription of a 2.,-./0123456789:87234569-./01:,Maintainer: Toshio Ito debug.ito@gmail.comSafe# staversionfirst action tried. staversion0the action executed if the first action returns .$functions dealing with .cabal files. Toshio Ito <debug.ito@gmail.com>None+fA staversion A block of build-depends:.E staversionBuild target type.F staversionthe library target.G staversionthe executable NAME target.H staversionthe test-suite NAME target.I staversionthe benchmark NAME target. staversion4expected field name. If Nothing, it just don't care. staversion%(lower-case field name, indent level) staversion&(lower-case field name, block content) ABCDEFGHIJ JEFGHIABCD9dealing with Stackage and build-plan repositories online. Toshio Ito <debug.ito@gmail.com>None3 R staversion*Potentially partial resolver for stackage.T staversion lts (latest)U staversion lts-(major)V staversionnightly (latest)W staversion3Non-ambiguous fully-resolved resolver for stackage.X staversionlts-(major).(minor)Y staversionnightly-(year)-(month)-(day)] staversion Fetch the Q from the Internet._ staversion-Fetch build plan YAML data from the Internet.^ staversiondisambiguation JSON text.QRSTUVWXYZ[\]^_WXYRSTUVZ[\Q]_^)Central entity that deals with stack.yaml Toshio Ito <debug.ito@gmail.com>None@K staversion stack.yaml content staversion Element of packages3 field. If the path is for the main project (i.e.  extra-dep is false), it's . Otherwise, it's .g staversion.Central entity that deals with stack.yaml and stack command.h staversion(accessor) shell command for stack tool.k staversion Read the resolver field in stack.yaml. staversion Get the path to stack.yaml that stack uses as the current config. staversion"paths to all project .cabal files.j staversionpath to stack.yaml. If !, the default stack.yaml is used. staversion0paths to all .cabal files of the stack projects.k staversionpath to stack.yaml. If !, the default stack.yaml is used.ghijklgihkjlFCompatibility wrapper for Distribution.Version etc. from Cabal package Toshio Ito <debug.ito@gmail.com>NoneDu staversionA Version type by  Data.Version.w staversion\Parse a version text. There must not be any trailing characters after a valid version text. uvwxyz{  xzy{uvw"Result data type and its utilities Toshio Ito <debug.ito@gmail.com>NoneJ| staversion6Results for a query aggregated over different sources. staversionFor backward-compatibility. staversionthe 2 queried by user. staversionthe real (exact) 2 resolved. staversionResult for a query. staversion Create an | that includes just one .|}~|}~parsing Version Toshio Ito <debug.ito@gmail.com>NoneM/ staversiona wrapper around  for JSON I/Fww 1(virtual) BuildPlan expressing the latest Hackage Toshio Ito <debug.ito@gmail.com>NoneP. staversionJSorted list of preferred versions of the package. The head is the latest. Handle build plan YAML files. Toshio Ito <debug.ito@gmail.com>NoneMP`,  staversionStateful manager for s. staversionF(accessor function) path to the directory where build plans are hold. staversion;(accessor function) low-level HTTP connection manager. If /, it won't fetch build plans over the network. staversion3(accessor function) cache of resolver disambigutor staversion(accessor function) staversion Types that have mapping between 8 and . staversionA  associated with its 2. staversionLA data structure that keeps a map between package names and their versions. staversionLoad a  from a file. staversion1path to the directory where build plans are hold. staversionIf ?, it queries the Internet for build plans. Otherwise, it won't. staversion7package names whose versions the user is interested in. staversion<the second result is the real (disambiguated) PackageSource. staversiondisambiguated LTS major version staversiondisambiguated LTS minor version  aggregation of multiple versions Toshio Ito <debug.ito@gmail.com>Nonew staversionAggregateion monad staversionAggregate some  s into a . staversionLet Cabal convert  to  staversionAggregator of ORed versions. staversionAggregate 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. staversionAggregate 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. staversion Aggregate s with the given . It first groups s based on its 3 field, and then each group is aggregated into an |.)If it fails, it returns an empty list of |. It also returns a list of  s to report warnings and errors. staversion#Aggregate one or more maps between 8 and . The input  s should all be . ? version is warned and ignored. If the input versions are all , the result version range is .The 8b 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. staversion{The comparator that determines if the two elements are in the same group. This comparator must be transitive, like '(==)'. staversion(label,  version map). label is used for error logs.   formatting Result output. Toshio Ito <debug.ito@gmail.com>None~6 staversionheader and child blocks staversion&a block, which consists of some lines. staversion lines and # lines are handled differently by /. It puts commas at the right places assuming  lines are commented out. staversion Format for . staversionLet Cabal format . staversion Similar to %, but it uses the "caret" operator (^>=) where possible. Command from the user. Toshio Ito <debug.ito@gmail.com>None  staversionDefault values for . staversionCommand from the user. staversion8path to the directory where build plan files are stored. staversionshell command to invoke stack tool. staversion the logger staversionpackage sources to search staversionpackage queries staversionif 4, it accesses the Internet to query build plans etc. staversionif ", do aggregation over the results. staversionconfig for the formatter staversionJust for testing.  executable Toshio Ito <debug.ito@gmail.com>None ! " #$%&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                   !"#$%&'()(*(+(,(-(.(/(0(1(2(3(4(5(6(7(8(9(:(;(<(=(>(?(@(A(B(C(DEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE[E\E]E^E_E`EaEbEcEdEeEfghijikiliminioipiqirisitiuiviwixiyiz{|{}{~{{{{{{{{{{{{{{{{{{{{{{           )staversion-0.2.3.5-BRcZKbvbVJ6H5ZYuj0E9bqStaversion.Internal.VersionStaversion.Internal.LogStaversion.Internal.QueryStaversion.Internal.Cabal&Staversion.Internal.BuildPlan.StackageStaversion.Internal.StackConfigStaversion.Internal.Result%Staversion.Internal.BuildPlan.Version%Staversion.Internal.BuildPlan.HackageStaversion.Internal.BuildPlanStaversion.Internal.AggregateStaversion.Internal.FormatStaversion.Internal.CommandStaversion.Internal.ExecPaths_staversionStaversion.Internal.HTTPStaversion.Internal.MegaparsecStaversion.Internal.EIO Cabal-2.4.0.1Distribution.VersionsimplifyVersionRange"Distribution.Types.VersionIntervalfromVersionIntervalsasVersionIntervalsVersionInterval LowerBound UpperBound NoUpperBoundInclusiveBoundExclusiveBoundBoundDistribution.Types.VersionRangeunionVersionRanges thisVersion VersionRangeDistribution.Types.VersionVersionLoggerloggerThresholdLogEntrylogLevel logMessageLogLevelLogDebugLogInfoLogWarnLogError defaultLoggerputLog putLogEntrylogDebuglogInfologWarnlogError _mockLogger $fShowLogger$fShowLogLevel $fEqLogLevel $fOrdLogLevel$fEnumLogLevel$fBoundedLogLevel$fShowLogEntry $fEqLogEntry $fOrdLogEntryErrorMsgQuery QueryNameQueryCabalFileQueryStackYamlQueryStackYamlDefault PackageSourceSourceStackage SourceHackageSourceStackYamlSourceStackDefaultResolver 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 StackConfig scCommandnewStackConfigreadProjectCabals readResolverconfigLocationFromText$fFromJSONProjectPath$fFromJSONStackYaml$fShowProjectPath$fEqProjectPath$fOrdProjectPath$fShowStackYaml $fEqStackYaml$fOrdStackYaml BaseVersionshowBaseVersionparseVersionText mkVersionversionNumbersmkVersionIntervalsdocVersionRangeAggregatedResult 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$fOrdRegisteredVersionsBuildPlanManagermanStackConfig HasVersionspackageVersion BuildPlanbuildPlanSource BuildPlanMapnewBuildPlanManager loadBuildPlanloadBuildPlanMapYAML_setLTSDisambiguator$fFromJSONBuildPlanMap$fHasVersionsBuildPlan$fHasVersionsBuildPlanMap$fSemigroupBuildPlanMap$fMonoidBuildPlanMap AggregatorshowVersionRangegroupAllPreservingOrderByaggOr aggPvpMajor aggPvpMinoraggregateResultsaggregatePackageVersions FormatConfigfconfFormatVersion FormatVersionformatVersionCabalformatVersionCabalCaretformatAggregatedResultsCommandcommBuildPlanDircommStackCommand commLogger commSources commQueriescommAllowNetworkcommAggregatorcommFormatConfigdefFormatConfigparseCommandArgs_parseCommandStrings$fShowDefCommand$fEqDefCommand$fOrdDefCommandmainprocessCommand)_processCommandWithCustomBuildPlanManager$fShowResolvedQuery$fEqResolvedQuery$fOrdResolvedQueryversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameasStatusFailureException*http-client-0.6.4.1-EaTUgRuXPg8DSq6P02ULGRNetwork.HTTP.Client.TypesManagerOurHttpExceptionniceHTTPManagerfetchURLbase GHC.MaybeNothingParserstring text-1.2.3.1Data.Text.InternalText'megaparsec-8.0.0-BFw8gNuiOzWGglmtIkYt5XText.Megaparsec.StreamStreamstring'GHC.Base<|>emptyControl.Applicativeoptional/parser-combinators-1.2.1-1g1MOzTzLdh8NjDlkAmMlzControl.Applicative.CombinatorsbetweenchoiceeitherPoptionControl.Monad.Combinatorscountcount'endByendBy1manymanyTill manyTill_somesomeTill someTill_sepBysepBy1sepEndBy sepEndBy1skipManyskipSome skipCount skipManyTill skipSomeTillText.Megaparsec.Charchar'char categoryName charCategory latin1Char asciiChar separatorChar symbolCharpunctuationChar numberCharmarkChar hexDigitChar octDigitChar binDigitChar digitChar printChar alphaNumChar letterChar lowerChar upperChar spaceChar controlCharspace1spacetabeolcrlfnewlineText.MegaparsecsetParserState setOffset getOffset getSourcePossetInputgetInputatEndtakeRestmatchchunknoneOfoneOf anySingleBut anySinglesatisfysingleregisterFancyFailureregisterFailureregisterParseErrorregion customFailure unexpected fancyFailurefailure runParserT' runParserT runParser' runParser parseTest parseMaybeparseParsecText.Megaparsec.InternalParsecTText.Megaparsec.Class MonadParseceoftry notFollowedBy lookAheadlabel parseErrorhidden withRecovery observingtokentokens takeWhileP takeWhile1PtakePgetParserStateupdateParserStateText.Megaparsec.ErrorparseErrorTextPrettyparseErrorPrettyerrorBundlePrettyattachSourcePossetErrorOffset errorOffset mapParseError ErrorItemTokensLabel EndOfInput ErrorFancy ErrorFailErrorIndentation ErrorCustomParseErrorBundle bundleErrorsbundlePosStateShowErrorComponentshowErrorComponenterrorComponentLenToken tokenToChunk tokensToChunk chunkToTokens chunkLength chunkEmptytake1_takeN_ takeWhile_ showTokens tokensLength reachOffsetreachOffsetNoLineText.Megaparsec.StateState stateInput stateOffset statePosStatestateParseErrorsPosState pstateInput pstateOffsetpstateSourcePospstateTabWidthpstateLinePrefixText.Megaparsec.PossourcePosPretty initialPosdefaultTabWidthpos1unPosmkPosPosInvalidPosException SourcePos sourceLine sourceColumn sourceName ParseError TrivialError FancyErroranyChar loggedElse Data.EitherLeftEIOrunEIOtoEIO toEIOShow maybeToEIO eitherToEIO fieldStart fieldBlock StackYaml ProjectPathJustconfigLocationfindProjectCabalsregPreferredVersionsmanBuildPlanDirmanHttpManagermanDisambiguatorghc-prim GHC.TypesTrueAggMStringMaybeRBHeadRBLines ResultLineRightformatResultBlock DefCommand