h&‹a      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred";pantryWarning output from .pantryMonoid used by ' to track expected fields and warnings.pantry:JSON parser that warns about unexpected fields in objects.pantryExtends .: warning to include field name.pantryExtends .:? warning to include field name.pantry version of .:.pantry version of .:?.pantry version of .!=.pantrySynonym version of ..:.pantrySynonym version of ..:?.pantryTell warning parser about an expected field, so it doesn't warn about it.pantry version of M.pantry Convert a  to a .pantryLog JSON warnings.pantry Handle warnings in a sub-object.pantryHandle warnings in a  Traversable of sub-objects.pantryHandle warnings in a Maybe Traversable of sub-objects.  !"#$%&'(-)*,+/.2105436;78:9@<=?>ABCDEFGHIJKLMNOPQRSTUXWV[ZY`\]_^adcbgfehijklmnopsrqtu|vxz{wy~}  !"#$%&'(-)*,+/.2105436;78:9@<=?>ABCDEFGHIJKLMNOPQRSTUXWV[ZY`\]_^adcbgfehijklmnopsrqtu|vxz{wy~} Safe-InferredpantryInternal exception used by # to allow short-circuiting of the ,. Should not be used outside of this module.pantry Tell the  to stop. The next time  is called, or if a  is currently blocking, the  thread will exit with a  exception.pantry+Delay the given number of microseconds. If - is triggered before the timer completes, a : exception will be thrown (which is caught internally by ).pantryA companion thread which can perform arbitrary actions as well as delaypantryWhen a delay was interrupted because we're told to stop, perform this action.pantryKeep running the > action until either the inner action completes or calls the  action. This can be used to give the user status information while running a long running operations.pantry the delaypantryaction to perform Safe-Inferred )*6;=pantryYeah, it looks terrible to use a list here, but fusion should kick inpantry9May throw a runtime exception if invariants are violated! Safe-Inferred"6;+ pantry)Exceptions which can occur in this modulepantryA SHA256 hash, stored in a static size for more efficient memory representation.pantry Generate a ) value by hashing the contents of a file.pantry Generate a  value by hashing a  ByteString.pantry Generate a  value by hashing a lazy  ByteString.pantry Generate a + value by hashing the contents of a stream.pantryConvert a base16-encoded  value containing a hash into a .pantryConvert a base16-encoded  value containing a hash into a .pantry Convert a  into a pantry.Convert a raw representation of a hash into a .pantry Convert a # into a base16-encoded SHA256 hash.pantry Convert a # into a base16-encoded SHA256 hash.pantry Convert a " into a raw binary representation. Safe-Inferred"%&'68;[pantryAn arbitrary hash for a snapshot, used for finding module names in a snapshot. Mostly intended for Stack's usage.pantryA single layer of a snapshot, i.e. a specific YAML configuration file.pantryThe sl to extend from. This is either a specific compiler, or a SnapshotLocation which gives us more information (like packages). Ultimately, we'll end up with a CompilerVersion.pantry#Override the compiler specified in  . Must be  if using .pantry'Where to grab all of the packages from.pantryPackages present in the parent which should not be included here.pantry)Flag values to override from the defaultspantryPackages which should be hidden when registering. This will affect, for example, the import parser in the script command. We use a  instead of just a 9 to allow overriding the hidden settings in a parent sl.pantryGHC options per packagepantryPublication timestamp for this snapshot. This field is optional, and is for informational purposes only.pantryA single layer of a snapshot, i.e. a specific YAML configuration file.pantryThe sl to extend from. This is either a specific compiler, or a SnapshotLocation which gives us more information (like packages). Ultimately, we'll end up with a CompilerVersion.pantry#Override the compiler specified in  . Must be  if using .pantry'Where to grab all of the packages from.pantryPackages present in the parent which should not be included here.pantry)Flag values to override from the defaultspantryPackages which should be hidden when registering. This will affect, for example, the import parser in the script command. We use a  instead of just a 9 to allow overriding the hidden settings in a parent sl.pantryGHC options per packagepantrySee pantry+Settings for a package found in a snapshot.pantryWhere to get the package frompantrySame as pantrySame as pantrySame as pantry+Settings for a package found in a snapshot.pantryWhere to get the package frompantrySame as pantrySame as pantrySame as pantry;A flattened representation of all the layers in a snapshot.pantry&The compiler wanted for this snapshot.pantryPackages available in this snapshot for installation. This will be applied on top of any globally available packages.pantry/Global packages that should be dropped/ignored.pantry;A flattened representation of all the layers in a snapshot.pantry&The compiler wanted for this snapshot.pantryPackages available in this snapshot for installation. This will be applied on top of any globally available packages.pantry/Global packages that should be dropped/ignored.pantryWhere to load a snapshot from.pantryDon't use an actual snapshot, just a version of the compiler with its shipped packages.pantry8Download the snapshot from the given URL. The optional  is used for reproducibility.pantrySnapshot at a local file path.pantryWhere to load a snapshot from in raw form (RSUrl could have a missing BlobKey)pantryDon't use an actual snapshot, just a version of the compiler with its shipped packages.pantry8Download the snapshot from the given URL. The optional  is used for reproducibility.pantrySnapshot at a local file path.pantrySnapshot synonym (LTS/Nightly).pantry;A snapshot synonym. It is expanded according to the field  of a .@ since 0.5.0.0pantry$LTS Haskell snapshot, displayed as  "lts-maj.min".pantryWhich compiler a snapshot wants to use. The build tool may elect to do some fuzzy matching of versions (e.g., allowing different patch versions).pantry%GHCJS version followed by GHC versionpantryWhat to use for running hpackpantryCompiled in librarypantryExecutable at the provided pathpantry=Newtype wrapper for easier JSON integration with Cabal types.pantry%Location that an archive is stored atpantry Archive stored at an HTTP(S) URLpantry#Archive stored at a local file pathpantry?File path relative to the configuration file it was parsed frompantry*Exact metadata specifying concrete packagepantry$Package identifier in the cabal filepantry!Tree key of the loaded up packagepantryMetadata provided by a config file for archives and repos. This information can be used for optimized lookups of information like package identifiers, or for validating that the user configuration has the expected information.pantryPackage name in the cabal filepantry!Package version in the cabal filepantry!Tree key of the loaded up packagepantry!subdirectory and package metadatapantryRepresents the contents of a tree, which is a mapping from relative file paths to s.pantry+The hash of the binary representation of a .pantry4Things that can go wrong in pantry. Note two things:Many other exception types may be thrown from underlying libraries. Pantry does not attempt to wrap these underlying exceptions.We may add more constructors to this data type in minor version bumps of pantry. This technically breaks the PVP. You should not be writing pattern matches against this type that expect total matching.pantryDifferent from  since / is a lower bound on the size from the server.pantryA full specification for a package from Hackage, including the package name, version, and how to load up the correct cabal file revision.pantryHow to choose a cabal file for a package from Hackage. This is to work with Hackage cabal file revisions, which makes PackageIdentifier5 insufficient for specifying a package from Hackage.pantryTake the latest revision of the cabal file available. This isn't reproducible at all, but the running assumption (not necessarily true) is that cabal file revisions do not change semantics of the build.pantryIdentify by contents of the cabal file itself. Only reason for Maybe on FileSize is for compatibility with input that doesn't include the file size.pantryIdentify by revision number, with 0 being the original and counting upward. This relies on Hackage providing consistent versioning. CFIHash< should be preferred wherever possible for reproducibility.pantryA key for looking up a blob, which combines the SHA256 hash of the contents and the file size.The file size may seem redundant with the hash. However, it is necessary for safely downloading blobs from an untrusted source. See  https://www.fpcomplete.com/blog/2018/07/pantry-part-2-trees-keys.pantryFile size in bytespantry An environment which contains a .pantryLens to get or set the pantryConfiguration for Hackage Security to securely download package metadata and contents. For most purposes, you'll want to use the default Hackage settings via defaultHackageSecurityConfig.NOTE It's highly recommended to only use the official Hackage server or a mirror. See  6https://github.com/commercialhaskell/stack/issues/4137.pantryConfiguration to securely download package metadata and contents. For most purposes, you'll want to use the default Hackage settings via defaultPackageIndexConfig.NOTE It's highly recommended to only use the official Hackage server or a mirror. See  6https://github.com/commercialhaskell/stack/issues/4137.pantry,Repository without subdirectory information.pantry>Information on packages stored in a source control repository.pantryLocation of the repopantryCommit to use from the repo. It's strongly recommended to use a hash instead of a tag or branch name.pantryThe type of the repopantry8Subdirectory within the archive to get the package from.pantry(The type of a source control repository.pantryA package archive, could be from a URL or a local file path. Local file path archives are assumed to be unchanging over time, and so are allowed in custom snapshots.pantryLocation of the archivepantry&Cryptographic hash of the archive filepantrySize of the archive filepantry8Subdirectory within the archive to get the package from.pantryA raw package archive, specified by a user, could have no hash and file size information.pantryLocation of the archivepantry&Cryptographic hash of the archive filepantrySize of the archive filepantry8Subdirectory within the archive to get the package from.pantryLocation for remote packages or archives assumed to be immutable.pantryLocation for remote packages or archives assumed to be immutable. as user specifies it i.e. not an exact locationpantry?Location to load a package from. Can either be immutable (see >) or a local directory which is expected to change over time.pantry?Location to load a package from. Can either be immutable (see ) or a local directory which is expected to change over time. Raw version doesn't include exact package version (e.g. could refer to the latest revision on Hackage)pantryA combination of the relative path provided in a config file, together with the resolved absolute path.pantry)Original value parsed from a config file.pantry:Absolute path resolved against base directory loaded from.pantryWraps a value which potentially contains relative paths. Needs to be provided with a base directory to resolve these paths.Unwrap this using .pantry3Should we print warnings when loading a cabal file?pantryConfiguration value used by the entire pantry package. Create one using withPantryConfig . See also  PantryApp- for a convenience approach to using pantry.pantryWant to try updating the index once during a single run for missing package identifiers. We also want to ensure we only update once at a time. Start at True.pantryCache of previously parsed cabal files, to save on slow parsing time.pantryCache for mutable packages. We want to allow for an optimization: deferring parsing of the  until its actually needed. Therefore, we keep the filepath and the ' derived from that filepath. When the IO GenericPackageDescription" is run, it will ensure that the  PackageName matches the value inside the cabal file, and print out any warnings that still need to be printed.pantryconcurrently open downloadspantryThe pull URL e.g.  #https://casa.fpcomplete.com/v1/pullpantry$Maximum blobs sent per pull request.pantry!The location of snapshot synonymspantryRepresents a SQL database connection. This used to be a newtype wrapper around a connection pool. However, when investigating  6https://github.com/commercialhaskell/stack/issues/4471, it appeared that holding a pool resulted in overly long write locks being held on the database. As a result, we now abstract away whether a pool is used, and the default implementation in Pantry.Storage does not use a pool.pantryThe revision number of a package from Hackage, counting upwards from 0 (the original cabal file).See caveats on .pantryTreeEntry of Cabal filepantryOriginal hpack filepantryGenerated Cabal filepantryVersion of Hpack usedpantryParsed tree with more information on the Haskell package it contains.pantryThe  containing this package./This is a hash of the binary representation of .pantryThe  containing this package.pantry2Information on the cabal file inside this package.pantry-The package name and version in this package.pantry0Get the location of a snapshot synonym from the .pantry$Resolve all of the file paths in an " relative to the given directory.pantryConvert  to its "raw" equivalentpantryPackage identifier and revision with a specified cabal file hashpantryConvert  to its "raw" equivalentpantry(Convert archive to its "raw" equivalent.pantry.Group input repositories by non-subdir values.pantryDefault < value using the official Hackage server. The value of the  field is .pantryParse a hackage text.pantryParse a pantrySafeFilePath for `package.yaml` file.pantryThis is almost a copy of Cabal's parser for package identifiers, the main difference is in the fact that Stack requires version to be present while Cabal uses "null version" as a default valuepantryParse a package name from a |.pantryParse a package name from a | throwing on failurepantryParse a version from a |.pantryParse a package version from a | throwing on failurepantryParse a version range from a |.pantryParse a module name from a |.pantryParse a flag name from a |.pantryRender a package name as a |.pantry!Render a package identifier as a |.pantryRender a version as a |.pantryRender a flag name as a |.pantryRender a module name as a |.pantry1Convert package metadata to its "raw" equivalent.pantry"Returns pairs of subdirectory and .pantryWrap the keys in a  with a  to get a - instance.pantry Unwrap the  from the keys in a  to use a X instance.pantryParse a  into a  value.pantryParse a  into an  .pantryDefault location of snapshot synonyms , i.e. commercialhaskell's GitHub repository.pantry$Parse the short representation of a .pantry2Convert snapshot location to its "raw" equivalent.pantry1Convert snapshot layer into its "raw" equivalent.pantry+Get the path to the global hints cache filepantry'Creates BlobKey for an input ByteStringpantryWarn if the package uses .pantryIf the  ignore-expiry< key is absent from the JSON object, assigns default value .pantryIf the hackage-security< key is absent from the JSON object, assigns default value .pantry Major versionpantry:Minor version | Stackage Nightly snapshot, displayed as "nighly-YYYY-MM-DD".pantry#directory to use for relative paths  Safe-Inferred"^pantryEnsure that only one process is trying to write to the database at a time. See  6https://github.com/commercialhaskell/stack/issues/4471 and comments above.pantry storage filepantry'database description, for lock messagespantrySQLite database file  Safe-Inferred"_  Safe-Inferred"`pantryAn ' value using the default global managerpantryWrap custom exceptions*NOTE: The only other exception defined in  http-client is TimeoutTriggered but it is currently disabled 2https://github.com/snoyberg/http-client/issues/116pantrySet request headerspantryExtract the response headers  Safe-Inferred"aGpantry5Generate .cabal file from package.yaml, if necessary.  Safe-Inferred"'()*15?h pantry3A tree that has already been stored in the databasepantryThis is a helper type to distinguish db queries between different rdbms backends. The important part is that the affects described in this data type should be semantically equivalent between the supported engines.pantry"A query that is specific to SQLitepantry&A query that is specific to PostgreSQLpantryThis function provides a way to create queries supported by multiple sql backends.pantry5Pull all hackage cabal entries from the database as RawPackageLocationImmutable. We do a manual join rather than dropping to raw SQL, and Esqueleto would add more deps.pantry;Get the filename for the cabal file in the given directory.If no .cabal file is present, or more than one is present, an exception is thrown via .If the directory contains a file named package.yaml, hpack is used to generate a .cabal file from it.pantry Similar to 2 but doesn't require a new connection to database.pantryEnsure that all blobs needed for this package are present in the cachepantry storage filepantry"For some x, yield blob whose id>x.pantry$For some x, yield cabals whose id>x.pantryfor exceptionspantryfor exceptionspantryfor exceptionspantryfor exceptionspantryURLpantrysubdirpantryURLpantrysubdirpantrysubdirpantrypackage directorypantryfor exceptionspantryfor exceptionspantryfor exceptionspantry&dest dir, will be created if necessary Safe-Inferred"(j.pantryA helper function that performs the basic character encoding necessary.pantry&dest dir, will be created if necessary Safe-Inferred"lJpantryLike System.FilePath.normalise , however:1Only works on relative paths, absolute paths failStrips trailing slashes.Only works on forward slashes, even on WindowsNormalizes parent dirs foo.. get stripped&Cannot begin with a parent directory (../)Spelled like an American, sorrypantryFollowing tar file rules (Unix file paths only), make the second file relative to the first file.pantry base filepantry relative part Safe-Inferred"%npantryLookup a tree.pantry*Lookup a single blob. If possible, prefer , and query a group of keys at once, rather than one at a time. This will have better network performance.pantryA source of blobs given a set of keys. All blobs are automatically stored in the local pantry database. Safe-Inferred"rOpantryProvide a local file with the contents of the archive, regardless of where it comes from. Perform SHA256 and file size validation if downloading.pantryAttempt to parse the contents of the given archive in the given subdir into a 9. This will not consult any caches. It will ensure that:The cabal file existsThe cabal file can be parsedThe name inside the cabal file matches the name of the cabal file itselfpantryFind all of the files in the Map with the given directory as a prefix. Directory is given without trailing slash. Returns the suffix after stripping the given prefix.pantry/If all files have a shared prefix, strip it offpantry*Take us down to the specified subdirectorypantryfor exceptionspantryfor exceptionspantryfor exceptionspantryfor error reportingpantryfor exceptionspantryfile holding the archivepantryfor exceptionspantrysubdirpantry#files after stripping common prefix Safe-Inferred"zpantry,Require that the Hackage index is populated.pantryIf there is nothing in the Hackage index, then perform an updatepantryDo not perform an updatepantry8Should we pay attention to Hackage's preferred versions?pantry"Package download info from HackagepantryInformation returned by pantry,Package that was loaded from Hackage tarballpantryThis information is only available whenever package was just loaded into pantry.pantry!Did an update occur when running ?pantry>Where does pantry download its 01-index.tar file from Hackage?pantryDownload the most recent 01-index.tar file from Hackage and update the database tables.3This function will only perform an update once per  for user sanity. See the return value to find out if it happened.pantrySame as , but force the database update even if hackage security tells that there is no change. This can be useful in order to make sure the database is in sync with the locally downloaded tarballpantry:Populate the SQLite tables with Hackage index information.pantry#Load or download a blob by its SHA.pantryGiven package identifier and package caches, return list of packages with the same name and the same two first version number components found in the caches.pantryTry to come up with typo corrections for given package identifier using Hackage package names. This can provide more user-friendly information in error messages.pantry9Returns the versions of the package available on Hackage.pantry9Returns the versions of the package available on Hackage.pantryreason for updating, if anypantryForce the database update.pantryreason for updating, if anypantrytarballpantrywhere to start processing frompantry package namepantry package namepantrypackage versionpantrycabal file contents Safe-Inferredz Safe-Inferred}pantryFalse if not using Windows OS. Safe-Inferred"%&pantryLike , except with  instead of .pantryFetch the given repositories at once and populate the pantry database.pantryFetch a repository and create a (temporary) tar archive from it. Pass the path of the generated tarball to the given action.pantryRun a git command, setting appropriate environment variable settings. See  6https://github.com/commercialhaskell/stack/issues/3748.pantryRun an hg commandpantry3Create a tarball containing files from a repositorypantryClone the repository and execute the action with the working directory set to the repository root.pantry (package, subdir)pantryargspantryargspantryOutput tar archive filename Safe-Inferred"Q;pantryConvenient data type that allows you to work with pantry more easily than using  directly. Uses basically sane settings, like sharing a pantry directory with Stack. You can use  to use this.pantry!Package settings to be passed to .pantryA completed snapshot location, including the original raw and completed information.pantryA completed package location, including the original raw and completed information.pantryComplete package location, plus whether the package has a cabal file. This is relevant to reproducibility, see >https://tech.fpcomplete.com/blog/storing-generated-cabal-filespantry Create a new  with the given settings.1For something easier to use in simple cases, see .pantryDefault pull URL for Casa.pantry%Default max keys to pull per request.pantryDefault ) value using the official Hackage server.pantry4The download prefix for the official Hackage server.pantryReturns the latest version of the given package available from Hackage.pantryReturns location of the latest version of the given package available from Hackage.pantryReturns the latest revision of the given package version available from Hackage.pantryFetch keys and blobs and insert into the database where possible.pantryDownload all of the packages provided into the local cache without performing any unpacking. Can be useful for build tools wanting to prefetch or provide an offline mode.pantryUnpack a given  into the given directory. Does not generate any extra subdirectories.pantryUnpack a given  into the given directory. Does not generate any extra subdirectories.pantry"Load the cabal file for the given .#This function ignores all warnings.pantry"Load the cabal file for the given .#This function ignores all warnings.Note that, for now, this will not allow support for hpack files in these package locations. Instead, all PackageLocationImmutables will require a .cabal file. This may be relaxed in the future.pantrySame as , but takes a . Never prints warnings, see  for that.pantrySame as , but takes a . Never prints warnings, see  for that.pantryParse the Cabal file for the package inside the given directory. Performs various sanity checks, such as the file name being correct and having only a single Cabal file.pantry9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9\]^]_]`]abcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzb{b|b}b~bbbbbbb                                                                                                                                                                                                 #pantry-0.8.2-D8niG2wTC3bEY1xf26wywpPantryPantry.Internal.AesonExtendedPantry.Internal.StackagePantry.Internal.CompanionPantry.Internal.StaticBytes Pantry.SHA256Pantry.Internal Pantry.Types Pantry.SQLite Pantry.HTTP5Hackage.Security.Client.Repository.HttpLib.HttpClient Pantry.HPackPantry.Storage Pantry.Tree Pantry.CasaPantry.ArchivePantry.HackageSystem.IsWindows Pantry.Repo Cabal-3.6.3.0Distribution.Types.PackageId pkgVersionpkgNamePackageIdentifierDistribution.Types.FlagFlagNameDistribution.Types.PackageName PackageNameDistribution.Types.VersionVersion#aeson-2.1.2.1-83V39cgpXBl1kAP9KY9Sc Data.AesonthrowDecodeStrict' throwDecode'throwDecodeStrict throwDecodeeitherDecodeFileStrict'eitherDecodeStrict' eitherDecode'eitherDecodeFileStricteitherDecodeStrict eitherDecodedecodeFileStrict' decodeStrict'decode'decodeFileStrict decodeStrictdecode encodeFileencodeAesonExceptionData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncodingData.Aeson.Types.ToJSON toEncoding2toJSON2 toEncoding1toJSON1genericToJSONKeygenericLiftToEncodinggenericToEncodinggenericLiftToJSON genericToJSONGToJSON'ToArgstoEncodingList toJSONList toEncodingtoJSONToJSON.=KeyValue toJSONKeyList toJSONKey ToJSONKeyToJSONKeyValue ToJSONKeyTextToJSONKeyFunction GToJSONKeyliftToEncodingListliftToEncodingliftToJSONList liftToJSONToJSON1liftToEncodingList2liftToEncoding2liftToJSONList2 liftToJSON2ToJSON2Data.Aeson.Encoding.Internalpairs fromEncodingEncodingSeriesData.Aeson.Types.FromJSON.!=.:!fromJSONwithEmbeddedJSONwithBoolwithScientific withArraywithText withObject parseJSON2 parseJSON1genericFromJSONKeygenericLiftParseJSONgenericParseJSONparseIndexedJSON GFromJSONFromArgs parseJSONList parseJSONFromJSONfromJSONKeyList fromJSONKey FromJSONKeyFromJSONKeyValueFromJSONKeyTextParserFromJSONKeyTextFromJSONKeyCoerceFromJSONKeyFunction GFromJSONKeyliftParseJSONList liftParseJSON FromJSON1liftParseJSONList2liftParseJSON2 FromJSON2Data.Aeson.Parser.Internaljson'jsonData.Aeson.Types.InternalcamelTo2defaultJSONKeyOptionsdefaultTaggedObjectdefaultOptionsobjectJSONPathSuccessErrorResultObjectArrayNullBoolNumberStringValuefromDotNetTime DotNetTimerejectUnknownFieldstagSingleConstructorsunwrapUnaryRecords sumEncodingomitNothingFieldsallNullaryToStringTagconstructorTagModifierfieldLabelModifierOptionscontentsFieldName tagFieldName TwoElemArrayObjectWithSingleField UntaggedValue TaggedObject SumEncoding keyModifierJSONKeyOptionsData.Aeson.Types.GenericZeroOneData.Aeson.KeyKey*persistent-2.14.5.0-Jo5VTEByrohDpunYffoayP$Database.Persist.Class.PersistEntityUnique EntityField JSONWarningJSONUnrecognizedFieldsJSONGeneralWarningWithJSONWarnings WarningParser.:.:?..:..:?..!=...:...:? tellJSONFieldwithObjectWarningsunWarningParserlogJSONWarningsjsonSubWarningsjsonSubWarningsTjsonSubWarningsTTnoJSONWarnings$fIsStringJSONWarning$fDisplayJSONWarning$fShowJSONWarning$fFromJSONWithJSONWarnings$fMonoidWithJSONWarnings$fSemigroupWithJSONWarnings$fFunctorWithJSONWarnings$fIsStringWarningParserMonoid$fMonoidWarningParserMonoid$fSemigroupWarningParserMonoid$fGenericWarningParserMonoid$fEqWithJSONWarnings$fGenericWithJSONWarnings$fShowWithJSONWarnings$fEqJSONWarning StopCompanionDelay CompaniononCompanionDone withCompanion$fExceptionCompanionDone$fShowCompanionDone StaticBytes DynamicBytesStaticBytesExceptionNotEnoughBytes TooManyBytesBytes128Bytes64Bytes32Bytes16Bytes8 toStaticExact toStaticPadtoStaticTruncatetoStaticPadTruncate fromStatic$fByteArrayAccessBytes8$fByteArrayAccessBytes16$fByteArrayAccessBytes32$fByteArrayAccessBytes64$fByteArrayAccessBytes128$fExceptionStaticBytesException$fDynamicBytesVector$fDynamicBytesVector0$fDynamicBytesVector1$fDynamicBytesByteString $fShowBytes8$fStaticBytesBytes128$fStaticBytesBytes64$fStaticBytesBytes32$fStaticBytesBytes16$fStaticBytesBytes8$fShowStaticBytesException$fEqStaticBytesException$fShowBytes128 $fEqBytes128 $fOrdBytes128$fGenericBytes128$fNFDataBytes128$fHashableBytes128$fDataBytes128 $fShowBytes64 $fEqBytes64 $fOrdBytes64$fGenericBytes64$fNFDataBytes64$fHashableBytes64 $fDataBytes64 $fShowBytes32 $fEqBytes32 $fOrdBytes32$fGenericBytes32$fNFDataBytes32$fHashableBytes32 $fDataBytes32 $fShowBytes16 $fEqBytes16 $fOrdBytes16$fGenericBytes16$fNFDataBytes16$fHashableBytes16 $fDataBytes16 $fEqBytes8 $fOrdBytes8$fGenericBytes8$fNFDataBytes8$fHashableBytes8 $fDataBytes8SHA256ExceptionInvalidByteCountInvalidHexBytesSHA256hashFile hashBytes hashLazyBytessinkHash fromHexText fromHexBytes fromDigestfromRaw toHexText toHexBytestoRaw$fFromJSONSHA256$fToJSONSHA256$fDisplaySHA256$fPersistFieldSqlSHA256$fPersistFieldSHA256 $fShowSHA256$fDisplaySHA256Exception$fShowSHA256Exception$fExceptionSHA256Exception$fGenericSHA256 $fEqSHA256$fNFDataSHA256 $fDataSHA256 $fOrdSHA256$fHashableSHA256SnapshotCacheHashunSnapshotCacheHash SnapshotLayerslParent slCompiler slLocationsslDropPackagesslFlagsslHidden slGhcOptions slPublishTimeRawSnapshotLayer rslParent rslCompiler rslLocationsrslDropPackagesrslFlags rslHidden rslGhcOptionsrslPublishTimeSnapshotPackage spLocationspFlagsspHidden spGhcOptionsRawSnapshotPackage rspLocationrspFlags rspHidden rspGhcOptionsSnapshotsnapshotCompilersnapshotPackages snapshotDrop RawSnapshot rsCompiler rsPackagesrsDropSnapshotLocation SLCompilerSLUrl SLFilePathRawSnapshotLocation RSLCompilerRSLUrl RSLFilePath RSLSynonymSnapNameLTSNightlyWantedCompilerWCGhcWCGhcGitWCGhcjsHpackExecutable HpackBundled HpackCommand CabalString unCabalStringArchiveLocationALUrl ALFilePath RelFilePathPackageMetadatapmIdent pmTreeKeyRawPackageMetadatarpmName rpmVersion rpmTreeKeyTreeTreeMapTreeKey SafeFilePath TreeEntryteBlobteTypeFileTypeFTNormal FTExecutable FuzzyResultsFRNameNotFoundFRVersionNotFoundFRRevisionNotFoundPantryException"PackageIdentifierRevisionParseFailInvalidCabalFileTreeWithoutCabalFileTreeWithMultipleCabalFilesMismatchedCabalNameNoCabalFileFoundMultipleCabalFilesFoundInvalidWantedCompilerInvalidSnapshotLocationInvalidOverrideCompilerInvalidFilePathSnapshotInvalidSnapshotMismatchedPackageMetadataNon200ResponseStatusInvalidBlobKeyCouldn'tParseSnapshotWrongCabalFileNameDownloadInvalidSHA256DownloadInvalidSizeDownloadTooLargeLocalInvalidSHA256LocalInvalidSizeUnknownArchiveTypeInvalidTarFileTypeUnsupportedTarballNoHackageCryptographicHashFailedToCloneRepoTreeReferencesMissingBlobCompletePackageMetadataMismatch CRC32MismatchUnknownHackagePackageCannotCompleteRepoNonSHA1MutablePackageLocationFromUrlMismatchedCabalFileForHackagePackageNameParseFailPackageVersionParseFailInvalidCabalFilePathDuplicatePackageNamesMigrationFailureInvalidTreeFromCasaParseSnapNameExceptionHpackLibraryExceptionHpackExeExceptionMismatchmismatchExpectedmismatchActualPackageIdentifierRevision CabalFileInfo CFILatestCFIHash CFIRevision ModuleNameP unModuleNamePVersionP unVersionP PackageNamePunPackageNamePBlobKeyFileSizeHasPantryConfig pantryConfigLHackageSecurityConfig hscKeyIdshscKeyThresholdhscIgnoreExpiryPackageIndexConfigpicDownloadPrefixpicHackageSecurityConfig SimpleReposRepoUrl sRepoCommit sRepoTypeReporepoUrl repoCommitrepoType repoSubdirRepoTypeRepoGitRepoHgArchivearchiveLocation archiveHash archiveSize archiveSubdir RawArchive raLocationraHashraSizeraSubdirPackageLocationImmutable PLIHackage PLIArchivePLIRepoRawPackageLocationImmutable RPLIHackage RPLIArchiveRPLIRepoPackageLocation PLImmutable PLMutableRawPackageLocation RPLImmutable RPLMutable ResolvedPathresolvedRelativeresolvedAbsolute Unresolved PrintWarningsYesPrintWarningsNoPrintWarnings PantryConfigpcPackageIndexpcHpackExecutable pcRootDir pcStorage pcUpdateRefpcParsedCabalFilesRawImmutablepcParsedCabalFilesMutablepcConnectionCountpcCasaRepoPrefixpcCasaMaxPerRequestpcSnapshotLocationStorage withStorage_withWriteLock_RevisionPackagepackageTreeKey packageTreepackageCabalEntry packageIdentsnapshotLocation resolvePathstoRawPLdefaultHackageSecurityConfigparseHackageTextparsePackageIdentifierRevisionunSafeFilePathmkSafeFilePath renderTree parseTreeparsePackageIdentifierparsePackageNameparsePackageNameThrowing parseVersionparseVersionThrowing parseFlagNamepackageNameStringpackageIdentifierString versionStringflagNameStringmoduleNameStringtoCabalStringMapunCabalStringMapparseWantedCompilerparseRawSnapshotLocationdefaultSnapshotLocation parseSnapNametoRawSLtoRawSnapshotLayergetGlobalHintsFilewarnMissingCabalFile initStorage hpackVersion ModuleNameId TreeEntryIdTreeIdtreeKey treeCabal treeCabalTypetreeName treeVersionHackageCabalId VersionIdversionVersion PackageNameIdBlobId UniqueModuleModuleNameNamePackageExposedModuleId!PackageExposedModuleSnapshotCachePackageExposedModuleModulePackageExposedModulePackageUniqueSnapshotCacheSnapshotCacheIdSnapshotCacheSha RepoCacheId RepoCacheTime RepoCacheUrl RepoCacheTypeRepoCacheCommitRepoCacheSubdir RepoCacheTreeArchiveCacheIdArchiveCacheTimeArchiveCacheUrlArchiveCacheSubdirArchiveCacheShaArchiveCacheSizeArchiveCacheTree TreeEntryTree TreeEntryPath TreeEntryBlob TreeEntryType UniqueHPackHPackId HPackTree HPackVersionHPackCabalBlobHPackCabalPath UniqueTree TreeCabal TreeCabalTypeTreeName TreeVersion CacheUpdateIdCacheUpdateTimeCacheUpdateSizeCacheUpdateShaUniquePreferredPreferredVersionsIdPreferredVersionsNamePreferredVersionsPreferred UniqueHackageHackageCabalNameHackageCabalVersionHackageCabalRevisionHackageCabalCabalHackageCabalTreeUniqueHackageTarballHackageTarballIdHackageTarballNameHackageTarballVersionHackageTarballShaHackageTarballSize UniqueSfp FilePathId FilePathPath UniqueVersionVersionVersionUniquePackageNamePackageNameName UniqueUrlTime UrlBlobId UrlBlobUrl UrlBlobBlob UrlBlobTime UniqueBlobSha unBlobKeyBlobShaBlobSize BlobContents migrateAllgetPackageNameByIdgetPackageNameId getVersionId storeBlob loadBlobByIdallBlobsSource"allHackageCabalRawPackageLocations allBlobsCountallHackageCabalCount getBlobKey getTreeForKeynormalizeParentsmakeTarRelativeRequireHackageIndexYesRequireHackageIndexNoRequireHackageIndexUsePreferredVersionsIgnorePreferredVersionsHackageTarballResult htrPackagehtrFreshPackageInfoDidUpdateOccurUpdateOccurredNoUpdateOccurredhackageIndexTarballLupdateHackageIndexforceUpdateHackageIndexgetHackageTypoCorrectionsgetHackagePackageVersionsgetHackageTarball fetchReposRaw fetchReposwithRepo PantryAppAddPackagesConfigapcDropapcFlags apcHiddens apcGhcOptions CompletedSL CompletedPLICompletePackageLocation cplCompletecplHasCabalFilewithPantryConfigdefaultCasaRepoPrefixdefaultCasaMaxPerRequestdefaultPackageIndexConfigdefaultDownloadPrefixgetLatestHackageVersiongetLatestHackageLocationgetLatestHackageRevision fetchPackagesunpackPackageLocationRawunpackPackageLocationloadCabalFileImmutableloadCabalFileRawImmutableloadCabalFileRaw loadCabalFileloadCabalFilePathfindOrGenerateCabalFilegpdPackageIdentifiergpdPackageName gpdVersion loadPackageloadPackageRawtryLoadPackageRawViaCasacompletePackageLocationcompleteSnapshotLocation loadSnapshotloadAndCompleteSnapshotloadAndCompleteSnapshot'loadAndCompleteSnapshotRawloadAndCompleteSnapshotRaw'addPackagesToSnapshotloadRawSnapshotLayerloadSnapshotLayergetPackageLocationNamepackageLocationIdentpackageLocationVersiongetRawPackageLocationIdentgetRawPackageLocationTreeKeygetPackageLocationTreeKeyhpackExecutableL runPantryApprunPantryAppWithrunPantryAppCleanloadGlobalHintspartitionReplacedDependencieswithSnapshotCache$fSemigroupSingleOrNot$fHasTermPantryApp$fHasStylesUpdatePantryApp$fHasProcessContextPantryApp$fHasPantryConfigPantryApp$fHasLogFuncPantryAppWarningParserMonoidParser CompanionDone withPeekD fromWordsD text-1.2.5.0Data.Text.InternalTextbytestring-0.11.3.1Data.ByteString.Internal ByteString&cryptonite-0.30-IZfEazaz9XYH7qnNzjXtaaCrypto.Hash.TypesDigestbase GHC.MaybeNothingcontainers-0.6.5.1Data.Map.InternalMapData.Set.InternalSetOSPackageMetadata,Distribution.Types.GenericPackageDescriptionGenericPackageDescription PCCabalFile phOriginal phGenerated phVersion pirForHashtoRawPLI toRawArchivetoAggregateReposghc-prim GHC.TypesTruehpackSafeFilePathparseVersionRangeparseModuleNametoRawPMosToRpms bsToBlobKeyPCHpack$fFromJSONWithJSONWarnings0Distribution.ModuleName ModuleName$Database.Persist.SqlBackend.Internal connRDBMSOptionalSubdirs OSSubdirs BuildFileBFCabalBFHpack AggregateRepoaRepo aRepoSubdirs PackageCabalPHpack cabalFileName rToSimpleRepoarToSimpleReposafeFilePathToPath parseTreeM withWriteLock(http-types-0.12.3-L3rcKlUfVN0BViQ440kXJlNetwork.HTTP.Types.StatusStatus statusCode+http-client-0.7.13.1-7Vmxdpd4hqC47mRFWxY9y4Network.HTTP.Client.RequestdefaultRequestsetUri parseRequest parseUrlThrowNetwork.HTTP.Client.Types BodyReader HttpExceptionHttpExceptionRequestInvalidUrlExceptionHttpExceptionContentStatusCodeExceptionRequestResponse)http-conduit-2.3.8-F9bPhIRb3neAJwQdoyc9zbNetwork.HTTP.SimplegetResponseBodygetResponseHeadersgetResponseStatussetRequestHeaderaddRequestHeaderNetwork.HTTP.Types.HeaderHeaderpartialContent206ok200hRange hCacheControl HeaderName withResponsehttpSinkhttpSinkCheckedhttpLib.hackage-security-0.6.2.3-3RSDM5zkqrLxqwnZfofSM*Hackage.Security.Client.Repository.HttpLibHttpLib wrapCustomExsetRequestHeadershpack CachedTree RdbmsActionsraSqlite raPostgresrdbmsAwareQueryexceptions-0.10.4Control.Monad.CatchthrowM hpackToCabalS hpackToCaballoadCachedTree generateHPack storeTreeloadPackageByIdloadHackageTreestoreArchiveCacheloadArchiveCachestoreRepoCacheunpackTreeToDir SqlBackend CachedTreeMap treeEntryTree treeEntryPath treeEntryBlob treeEntryType HackageCabalhackageCabalNamehackageCabalVersionhackageCabalTreehackageCabalRevisionhackageCabalCabal withStorageloadBlob loadBlobBySHA loadURLBlob storeURLBlobclearHackageRevisionsstoreHackageRevisionloadHackagePackageVersionsloadHackagePackageVersionloadLatestCacheUpdatestoreCacheUpdatestoreHackageTarballInfoloadHackageTarballInfo storeHPackloadCabalBlobKey unCachedTreeloadTreegetHPackBlobKeyByIdstoreHackageTreeloadHackageTreeKey loadRepoCachestorePreferredVersionloadPreferredVersionsinkHackagePackageNamescountHackageCabalsgetSnapshotCacheByHashgetSnapshotCacheIdstoreSnapshotModuleCacheloadExposedModulePackages rawParseGPD unpackTreecasaLookupTree casaLookupKeycasaBlobSourcewithArchiveLoc parseArchivefindWithPrefixstripCommonPrefix takeSubdir getArchiveKeygetArchivePackage getArchive foldArchivefoldTarfindCabalOrHpackFilefetchArchivesRaw fetchArchivesPackageDownload populateCacheloadOrDownloadBlobBySHAfuzzyLookupCandidates!getHackagePackageVersionRevisionsupdateHackageIndexInternalwithCachedTreegetHackageCabalFilegetHackageTarballKey osIsWindowswithRepoArchive runGitCommand runHgCommandcreateRepoArchive getRepos' getRepoKeygetRepo fetchTreeKeystryLoadPackageRawViaDbOrCasatryLoadPackageRawViaLocalDbloadSnapshotRawwarnUnusedAddPackagesConfig addAndCompletePackagesToSnapshot Data.EitherLeftRightpluraltraverseConcurrently_traverseConcurrentlyWith_ loadFromURLloadUrlViaCasaOrWithCheck loadWithCheck