jF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc d e f g h i j k l m n o p q r s t u v w x y z { | } ~         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                          !!"!#!$"%"&"'#(#)#*#+#,#-#.#/#0#1#2#3#4#5#6#7$8$9$:$;$<%=%>%?%@%A%B%C%D%E&F&G'H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V'W'X'Y'Z([(\(](^(_(`(a(b(c(d(e(f(g(h(i(j(k(l)m)n)o)p)q)r*s*t*u*v*w*x*y*z*{*|*}*~************++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------.//////00001111111111122222222222222222234566667777777778888888888888888888888E9Safe Map over a  in a monad. Map over a # in a monad, discarding the result.Filter elements of a  in a monad.:SafeConcatenate two parsers.Alternative parsers.Pure something. #Concatting the result of an action.   None !"*+7IN2An exception regarding verification of a download./A request together with some checks to perform.7Default to retrying thrice with a short constant delay. LMake sure that the hash digest for a finite stream of bytes is as expected..Throws WrongDigest (VerifiedDownloadException) 'A more explicitly type-guided sinkHash. CTurns a list of hash checks into a ZipSink that checks all of them.>Copied and extended version of Network.HTTP.Download.download.YHas the following additional features: * Verifies that response content-length header (if present) matches expected length * Limits the download to (close to) the expected # of bytes * Verifies that the expected # bytes were downloaded (not too few) * Verifies md5 if response includes content-md5 header * Verifies the expected hashespThrows VerifiedDownloadException. Throws IOExceptions related to file system operations. Throws HttpException.!      destinationcustom hook to observe progress Whether a download was performed         ;Safe<Safe+Does the version range have an upper bound?*Does the version range have a lower bound?=SafeMonadic .None CA template name of the format  foo.hsfiles.9An argument which accepts a template name of the format  foo.hsfiles or foo, ultimately normalized to  foo.hsfiles.An argument which accepts a  key:value pair for specifying parameters.$Parse a template name from a string.Make a template name./Get a text representation of the template name.Get the path of the template.NoneF Print an exception to stderr(Run an action, watching for file changesThe action provided takes a callback that is used to set the files to be watched. When any of those files are changed, we rerun the action again. !" !"!"  !"None#=Log running a process with its arguments, for debugging (-v).$rShow a process arg including speechmarks when necessary. Just for debugging purposes, not functionally important.#$#$#$#$>Safe+IN Exception running editor.Exception running pager.ARun pager, providing a function that writes to the pager's input.'Run pager to display a lazy ByteString. *Run pager to display a ByteString-Builder.!(Run pager to display contents of a file."Run pager to display a string.#Run editor to edit a file.$DRun editor, providing functions to write and read the file contents.%Run editor on a ByteString.&Run editor on a String.'Short-circuit first Just.()*+ !"#$%&',-./()*+ !"#$%&()*+ !"#$%&',-./?Safe 0123456789:;<1789:;< 0123456789:;<None +("Get the current working directory.)qParse a directory path. If it's relative, then the absolute version is yielded, based off the working directory.*lParse a file path. If it's relative, then the absolute version is yielded, based off the working directory.+WAppends a stringly-typed relative path to an absolute path, and then canonicalizes it.,WAppends a stringly-typed relative path to an absolute path, and then canonicalizes it.-Appends a stringly-typed relative path to an absolute path, and then canonicalizes it. If the path doesn't exist (and therefore cannot be canonicalized, = is returned)..Appends a stringly-typed relative path to an absolute path, and then canonicalizes it. If the path doesn't exist (and therefore cannot be canonicalized, = is returned)./NCollapse intermediate "." and ".." directories from path, then parse it with >0. (probably should be moved to the Path module)0NCollapse intermediate "." and ".." directories from path, then parse it with ?0. (probably should be moved to the Path module)@;Collapse intermediate "." and ".." directories from a path. OcollapseFilePath "./foo" == "foo" collapseFilePath "/bar/../baz" == "/baz" collapseFilePath "/../baz" == "/../baz" collapseFilePath "parent/foo/baz/../bar" == "parent/foo/bar" collapseFilePath "parent/foo/baz/../../bar" == "parent/bar" collapseFilePath "parent/foo/.." == "parent" collapseFilePath "/parent/foo/../../bar" == "/bar"(borrowed from Text.Pandoc.Shared)1(List objects in a directory, excluding "." and "..". Entries are not sorted.2-Remove a file. Bails out if it doesn't exist.3RRemove a file. Optimistically assumes it exists. If it doesn't, doesn't complain.4-Rename a file. Bails out if it doesn't exist.5RRename a file. Optimistically assumes it exists. If it doesn't, doesn't complain.7WRename a directory. Optimistically assumes it exists. If it doesn't, doesn't complain.82Make a directory tree, creating parents if needed.9+Move a file. Bails out if it doesn't exist.:PMove a file. Optimistically assumes it exists. If it doesn't, doesn't complain.;*Move a dir. Bails out if it doesn't exist.<OMove a dir. Optimistically assumes it exists. If it doesn't, doesn't complain.=-Remove a tree. Bails out if it doesn't exist.>;Remove tree, don't complain about non-existent directories.?Does the file exist?@Does the directory exist?A=Copies a file to another path. Bails out if it doesn't exist.BbCopies a file to another path. Optimistically assumes it exists. If it doesn't, doesn't complain.C.Copy a directory recursively. This just uses AB, so it is not smart about symbolic links or other special files.DDrop the root (either / on POSIX or C:\, D:\, etc. on Windows).%%&'()*+,A-./0@123456789:;<=>?@ABCSource directoryDestination directoryDBCD %&'()*+,-./0123456789:;<=>?@ABCD ()*1+,-.%&'23=>45679:;<?@ABC8D/0#%&'()*+,A-./0@123456789:;<=>?@ABCDBCDNone +4>INJ4Override the environment received by a child processQ#Get the environment variables from  EnvOverrideR$Get the list of directories searchedS Create a new  EnvOverrideTHelper conversion functionU+Read from the process, ignoring any output.VuRun the given command in the given directory. If it exits with anything but success, prints an error and then calls E to exit the program.WTry to produce a strict F from the stdout of a process.XProduce a strict F) from the stdout of a process. Throws a ! exception if the process fails.Y/Consume the stdout of a process feeding strict Fs to a consumer. If the process fails, spits out stdout and stderr as error log level. Should not be used for long-running processes or ones with lots of output; for that use sinkProcessStdoutLogStderr.G:Consume the stdout and stderr of a process feeding strict Fs to the consumers.ZcPerform pre-call-process tasks. Ensure the working directory exists and find the executable path.[6Check if the given executable exists on the given PATHH+Turn a relative path into an absolute path.ZNote: this function duplicates the functionality of makeAbsolute in recent versions of System.DirectoryP, and can be removed once we no longer need to support older versions of GHC.\)Find the complete path for the executable]4Load up an EnvOverride from the standard environment^@Augment the PATH environment variable with the given extra paths_Apply ^$ on the PATH value in the given Map. EFGHIJKLMNOPQRSTUVdirectory to run incommand to runcommand line argumentsWXYSink for stdoutGSink for stderrSink for stdoutZ[H\]^I_JK#EFGHIJKLMNOPQRSTUVWXYZ[\]^_XWYJKLMNOPQST[\]RZUV#EFGHI^_EFGHIJKLMNOPQRSTUVWXYGZ[H\]^I_JKNone+4>IN`Run the given command in the given directory, inheriting stdout and stderr. If it exits with anything but success, prints an error and then calls E to exit the program.aLike as System.Process.callProcess, but takes an optional working directory and environment override, and throws ProcessExitedUnsuccessfully if the process exits unsuccessfully. Inherits stdout and stderr.bLike as System.Process.callProcess, but takes an optional working directory and environment override, and throws ProcessExitedUnsuccessfully if the process exits unsuccessfully. Inherits stdout and stderr.`directory to run incommand to runcommand line argumentsab`ab`ab`ab@None(+L9Find the location of a file matching the given predicate.M>Find the location of a directory matching the given predicate.N9Find the location of a path matching the given predicate.O5Find files matching predicate below a root directory.L Start here.Predicate to match the file.#Do not ascend above this directory.Absolute file path.M Start here.!Predicate to match the directory.#Do not ascend above this directory.Absolute directory path.NChoose path type from pair. Start here.Predicate to match the path.#Do not ascend above this directory.Absolute path.ORoot directory to begin with.Predicate to match files.,Predicate for which directories to traverse.List of matching files.LMOLMNOANone&+NP2Write to the given file, with a binary-tagged tag.QRead from the given file. If the read fails, run the given action and write that back to the file. Always starts the file off with the version tag.RvEnsure that there are no lurking exceptions deep inside the parsed value... because that happens unfortunately. See 5https://github.com/commercialhaskell/stack/issues/554STUPQRVW XYZ[\]^UPQRSTUPQRVWBNoneF_Warning output from `.aMonoid used by `' to track expected fields and warnings.`:JSON parser that warns about unexpected fields in objects.bExtends .: warning to include field name.cExtends .:? warning to include field name.d` version of .:.e` version of .:?.f` version of .!=.gOTell warning parser about about an expected field, so it doesn't warn about it.h` version of i.j Convert a ` to a k.lLog JSON warnings.m Handle warnings in a sub-object.nHandle warnings in a  Traversable of sub-objects.oHandle warnings in a Maybe Traversable of sub-objects._paqrs`bcdefghjlmnotu=vwxyz{|}~i_p`bcdefghjlmno_paqrs`bcdefghjlmnotuCNone+7Download the given URL to the given location. If the file already exists, no download is performed. Otherwise, creates the parent directory, downloads to a temporary file, and on file download completion moves to the appropriate destination.&Throws an exception if things go wrongSame as B, but will download a file a second time if it is already present.Returns  if the file was downloaded,  otherwise+Download a JSON value and parse it using a  instance.YA convenience method for asking for the environment and then running an action with its . Useful for avoiding a MonadBaseControl constraint. destinationHWas a downloaded performed (True) or did the file already exist (False)? destination!  None+035CF cA package name.d A parse fail.h5Attoparsec parser for a package name from bytestring.iMake a package name.j9Convenient way to parse a package name from a bytestring.kMigration function.l6Produce a bytestring representation of a package name.m2Produce a string representation of a package name.n2Produce a string representation of a package name.o"Convert from a Cabal package name.p Convert to a Cabal package name.q&Parse a package name from a file path.r9An argument which accepts a template name of the format  foo.hsfiles.cdefghijklmnopqrcdefghijklmnopqrcdefghjklmnopqircdefghijklmnopqr None352s'Options for Docker repository or image.vDocker volume mount.xqAn uninterpreted representation of docker options. Configurations may be "cascaded" using mappend (left-biased).zDoes a docker:9 section exist in the top-level (usually project) config?{Is using Docker enabled?|Docker repository name (e.g. fpco/stack-build or fpco/stack-full:lts-2.8)}&Does registry require login for pulls?~&Optional username for Docker registry.&Optional password for Docker registry.Automatically pull new images.#Whether to run a detached containerLCreate a persistent container (don't remove it when finished). Implied by .?Container name to use, only makes sense from command-line with  or .Arguments to pass directly to  docker run!Volumes to mount in the container-Environment variables to set in the container!Location of image usage database.Docker configuration.Is using Docker enabled?;Exact Docker image tag or ID. Overrides docker-repo-*/tag.&Does registry require login for pulls?&Optional username for Docker registry.&Optional password for Docker registry.Automatically pull new images.#Whether to run a detached containerLCreate a persistent container (don't remove it when finished). Implied by .?Container name to use, only makes sense from command-line with  or .Arguments to pass directly to  docker run."Volumes to mount in the container..Environment variables to set in the container.!Location of image usage database.Docker enable argument name.Docker repo arg argument name.Docker image argument name.$Docker registry login argument name.'Docker registry username argument name.'Docker registry password argument name.Docker auto-pull argument name.Docker detach argument name.Docker run args argument name.Docker mount argument name.*Docker environment variable argument name.$Docker container name argument name.Docker persist argument name.#Docker database path argument name. For YAML.Show instance.For optparse-applicative."Left-biased combine Docker options3Decode uninterpreted docker options from JSON/YAML.7stuvwxyz{|}~2stuvwxyz{|}~7xyz{|}~vwstustuvwxyz{|}~ None+035CF  A flag name. A parse fail.2Attoparsec parser for a flag name from bytestring.Make a flag name.6Convenient way to parse a flag name from a bytestring.Migration function./Produce a string representation of a flag name./Produce a string representation of a flag name.Convert from a Cabal flag name.Convert to a Cabal flag name.  None+0A ghc-pkg package identifier. A parse fail.9Convenient way to parse a package name from a bytestring.)A parser for a package-version-hash pair..Get a string representation of GHC package id.None+035CA package version. A parse fail.8Attoparsec parser for a package version from bytestring.<Convenient way to parse a package version from a bytestring.Migration function.1Get a string representation of a package version.1Get a string representation of a package version.Convert to a Cabal version.Convert from a Cabal version.Make a package version.Display a version range-Check if a version is within a version range.BA modified intersection which also simplifies, for better display.@Returns the first two components, defaulting to 0 if not present7Get the next major version number for the given version" None+0C A pkg-ver combination. A parse fail.-Convert from a package identifier to a tuple.-Convert from a tuple to a package identifier.'Get the version part of the identifier.$Get the name part of the identifier.$A parser for a package-version pair.?Convenient way to parse a package identifier from a bytestring.Migration function.@Get a string representation of the package identifier; name-ver.>Get a Text representation of the package identifier; name-ver. None 0/Specifies a compiler and its version number(s).dNote that despite having this datatype, stack isn't in a hurry to support compilers other than GHC.UNOTE: updating this will change its binary serialization. The version number in the  BinarySchema instance for  MiniBuildPlan should be updated.Variety of compiler to use. None+035C (Information on a single package for the .Due to ambiguity in Cabal, it is unclear whether this refers to the executable name, the package name, or something else. We have to guess based on what's available, which is why we store this is an unwrapped F.$Executables provided by this packageIs there a library present?A simplified version of the % + cabal file.-A simplified package description that tracks:Package dependenciesBuild tool dependenciesProvided executables&It has fully resolved all conditionalsmodules exported by the libraryName of an executable.5when the test suite will pull in things we don't want+8The name of an LTS Haskell or Stackage Nightly snapshot.. Convert a +% into its short representation, e.g. lts-2.8, nightly-2015-03-05./$Parse the short representation of a +.n      !"#$%&'()*+,-./     G      !"#$%&'()*+,-./G%&'()* !"#$     +,-./4      !"#$%&'()*+,-./     None35;nMaybe have a docker base image name. (Although we will not be able to create any Docker images without this.)<JMaybe have a specific ENTRYPOINT list that will be used to create images.=]Maybe have some static project content to include in a specific directory in all the images.>/Maybe have a name for the image we are creating?3Image options. Currently only Docker image options.A*Maybe a section for docker image settings.0123456789:;<=>?@ABCDEFGHIJK0123456789:;<=>?@ABCDEFG?@A9:;<=>678012345KJIHBCDEFG0123456789:;<=>?@ABCDEFGHIJKNoneL#Mode for parsing escape characters.OParse arguments using P.PpA basic argument parser. It supports space-separated text, and string quotation with identity escaping: x -> x.QUse  on result of .`Check if command-line looks like it's being used as a script interpreter, and if so look for a -- progName ...- comment that contains additional arguments.LMNOPQLMNOPQLMNPOQLMNOPQNone+135>CFLNVR.How PVP bounds should be added to .cabal filesWRemote or inline Zd#Information for a file to download.i;Specialized bariant of GHC (e.g. libgmp4 or integer-simple)jStandard bindistk(Bindist that supports libgmp4 (centos66)l+Bindist built on Arch Linux (bleeding-edge)m Bindist that uses integer-simplenOther bindistsoA software control system.|)Newtype for non-orphan FromJSON instance.Docker options.See: See: See: See:  See:  See:  See:  See:  See: See:  Used for overriding the platform Used for overriding the platform#Used for overriding the GHC variantSee: See: See: See: ,Used to override the binary installation dirImage creation options.Template parameters.8Initialize SCM (e.g. git init) when making new projects?See -Additional paths to search for executables inDAdditional setup info (inline or remote) to use for installing toolsSee 0Class for environment values that can provide a .0Class for environment values that can provide a .4Class for environment values which have a GHCVariant2Class for environment values which have a Platform@Class for environment values which have access to the stack rootEHow we resolve which dependencies to install given a set of packages.^Use an official snapshot from the Stackage project, either an LTS Haskell or Stackage NightlyRequire a specific compiler version, but otherwise provide no build plan. Intended for use cases where end user wishes to specify all upstream dependencies manually, such as using a dependency solver.dA custom resolver based on the given name and URL. This file is assumed to be completely immutable.A project is a collection of packages. We can have multiple stack.yaml files, but only one of them may contain project information.Components of the package listJComponents of the package list referring to package/version combos, see: 'https://github.com/fpco/stack/issues/41Per-package flag overrides(How we resolve which dependencies to useNote that we use FilePath and not Path9s. The goal is: first parse the value raw, and then use canonicalizePath and  parseAbsDir.URL and commitIs this package a dependency? This means the local package will be treated just like an extra-deps: it will only be built as a dependency for others, and its test suite/benchmarks will not be run.,Useful modifying an upstream package, see:  5https://github.com/commercialhaskell/stack/issues/219 5https://github.com/commercialhaskell/stack/issues/386kDeprecated name meaning the opposite of peExtraDep. Only present to provide deprecation warnings to users.Value returned by $D.Top-level Stack configuration.Action to load the remaining .,The project root directory, if in a project.3Configuration after the environment has been setup.A superset of  adding information on how to build code. The reason for this breakdown is because we will need some of the information from ' in order to determine the values here.FHow we resolve which dependencies to install given a set of packages.&Compiler version wanted for this buildeLocal packages identified by a path, Bool indicates whether it is a non-dependency (the opposite of  ).Extra dependencies specified in configuration.tThese dependencies will not be installed to a shared location, and will override packages provided by the resolver. Location of the stack.yaml file.YNote: if the STACK_YAML environment variable is used, this may be different from bcRoot  / "stack.yaml"Per-package flag overrideshAre we loading from the implicit global stack.yaml? This is useful for providing better error messages.0The variant of GHC used to select a GHC bindist.[Either an actual resolver value, or an abstract description of one (e.g., latest nightly).#Parsed global command-line options. Log level Config monoid, for passing into  loadConfigResolver overrideWe're in a terminal?Override project stack.yaml'Force the code page to UTF-8 on Windows Usage of Maybe[ here is nothing more than a hack, to avoid some weird bug in optparse-applicative. See: 5https://github.com/commercialhaskell/stack/issues/8061Controls which version of the environment is used:include local project bin directory, GHC_PACKAGE_PATH, etc%include the GHC_PACKAGE_PATH variable9set the STACK_EXE variable to the current executable nameset the locale to C.UTF-8[Location of the package index. This ensures that at least one of Git or HTTP is available.Unique name for a package index%Information on a single package index#URL prefix for downloading packagesXGPG-verify the package index during download. Only applies to Git repositories for now.XRequire that hashes and package size information be available for packages in this index%The top-level Stackage configuration.~/.stack more often than not4Environment variables to be passed to external tools0Path containing local installations (mainly GHC)<How many concurrent connections are allowed when downloadingJHide the Template Haskell "Loading package ..." messages from the console=The platform we're building for, used in many directory names>The variant of GHC requested by the user. In most cases, use  or  MiniConfig=s version instead, which will have an auto-detected default.NURL for a JSON file containing information on the latest snapshots available. Information on package indices. This is left biased, meaning that packages in an earlier index will shadow those in a later index.YWarning: if you override packages in an index vs what's available upstream, you may correct your compiled snapshots, as different projects may have different definitions of what pkg-ver means! This feature is primarily intended for adding local packages, not overriding. Overriding is better accomplished by adding to your list of packages.TNote that indices specified in a later config file will override previous indices, not extend them.>Using an assoc list instead of a Map to keep track of priority nShould we use the system-installed GHC (on the PATH) if available? Can be overridden by command line options. }Should we automatically install GHC if missing or the wrong version is available? Can be overridden by command line options. 6Don't bother checking the GHC version or architecture. .On Windows: don't use a locally installed MSYS8Specifies which versions of the compiler are acceptable.,Directory we should install executables into-Require a version of stack within this range.CHow many concurrent jobs to run, defaults to number of capabilities-extra-include-dirs arguments-extra-lib-dirs arguments ConfigMonoid used to generate thisRun test suites concurrentlyParameters for templates.5Initialize SCM (e.g. git) when creating new projects._Additional GHC options to apply to either all packages (Nothing) or a specific package (Just).=Additional SetupInfo (inline or remote) to use to find tools.0How PVP upper bounds should be added to packages?Default logging level should be something useful but not crazy.2Directory containing the project's stack.yaml file2Directory containing the project's stack.yaml file VOnce peValidWanted is removed, this should just become the field name in PackageEntry.!Convert a Resolver into its Text4 representation, as will be used by directory names"Try to parse a Resolver from a Text1. Won't work for complex resolvers (like custom).#Parse a partial configuration. Used both to parse both a standalone config file and a project file, so that a sub-parser is not required, which would interfere with warnings for missing fields.$:Helper function to ask the environment and apply getConfig%>Get the URL to request the information on the latest snapshots&!Root for a specific package index'#Location of the 00-index.cache file(!Location of the 00-index.tar file)$Location of the 00-index.tar.gz file*Location of a package tarball,Per-project work dir-)File containing the installed cache, see Stack.PackageDump..Relative directory for the platform identifier/.Relative directory for the platform identifier0Path to .shake files.1(Where to unpack packages for local build2Directory containing snapshots3"Installation root for dependencies4Installation root for locals61Package database for installing dependencies into73Package database for installing local packages into8,Directory for holding flag cache information9%Where to store mini build plan caches:9Suffix applied to an installation root to get the bin dir;9Suffix applied to an installation root to get the doc dir<9Suffix applied to an installation root to get the hpc dir=CGet the extra bin directories (for the PATH). Puts more local first3Bool indicates whether or not to include the locals>aGet the minimal environment override, useful for just calling external processes like git or ghcA;A PackageEntry for the current directory, used as a defaultB!Render a GHC variant to a String.C(Render a GHC variant to a String suffix.D Parse GHC variant from a String.E"Parse JSON in existing object for dUParse VersionRange. RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG      qponmlkji hgfedcb!"a`_^]\[ZYXWV#|}~Ustuvwxyz{TS$%&'()*+,-./0123456789:;<=>?@qrRAopQPijklmnOBCDdefghNE`abcMZ[\]^_LKWXYJRSTUVFGIHwRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqNoner5Extensions for anything that can be a Haskell module.@Extensions used for Haskell modules. Excludes preprocessor ones.EExtensions for modules that are preprocessed by common preprocessors.s1The filename used for completed build indicators.t5The filename used for completed configure indicators.u1The filename used for completed build indicators.0Relative location of completed build indicators.v/Default shake thread count for parallel builds.wUser documentation directory.xOutput .o/.hi directory.y6The filename used for dirtiness check of source files.z3The filename used to mark tests as having succeeded{/The filename used to mark tests as having built|4The filename used to mark benchmarks as having built}0The filename used for dirtiness check of config.~2The filename used for modification check of .cabalDirectory for HPC work.,Relative location of directory for HPC work.$Package's build artifacts directory. Directory for project templates.%Relative location of build artifacts."Get a URL for a raw file on Github!Docker sandbox from project root.$Image staging dir from project root. Name of the stack program.,The filename used for the stack config file.*Environment variable used to override the  '~/.stack' location.+Just to avoid repetition and magic strings.9Implicit global directory used when outside of a project.Where .mix files go.Global config path. rstuvwxyPackage directory.zPackage directory{Package directory|Package directory}Package directory.~Package directory.Package directory. user/org name repo name branch namefilename Stack root.rstuvwxyz{|}~ustvrw}~yz{|x rstuvwxyz{|}~NoneMonadic environment.##None*3457>CL-The monad used for logging in the executable stack' before anything has been initialized.Monadic environment for ."The monad used for the executable stack.)Run a Stack action, using global options.Run a Stack action.9Taken from GHC: determine if we should use Unicode syntax,Run the logging monad, using global options.Run the logging monad.Convenience for getting a 7Replace Unicode characters with non-Unicode equivalents2Logging function takes the log level into account."With a sticky state, do the thing.RWrite a "sticky" line to the terminal. Any subsequent lines will overwrite this one, and that same line will be repeated below again. In other words, the line sticks at the bottom of the output forever. Running this function again will replace the sticky line with a new sticky line. When you want to get rid of the sticky line, run .yThis will print out the given message with a newline and disable any further stickiness of the line until a new call to  happens.+It might be better at some point to have a  runStickyA function that encompasses the logSticky->logStickyDone pairing. ,Takes the configured log level into account.!,Takes the configured log level into account.&"#$%&'()*+,-./0123 45!67  "#$%&'()*+,-./0123 45!67None!"47>CILN8Date and project path where Docker image hash last used.:Update last used time and project for a Docker image hash.?Get a list of Docker image hashes and when they were last used._Given a list of all existing Docker images, remove any that no longer exist from the database.8URun an action with the global database. This performs any needed migrations as well.9:;<=>?@ABCDE8F 9:;<=E8F F>F?@FABCDNone+0CIN;LA path resolved from the .cabal file, which is either main-is or an exposedinternalreferenced module.@A descriptor from a .cabal file indicating one of the following:=exposed-modules: Foo other-modules: Foo or main-is: Foo.hs Used for storage and comparison.>A location to install a package into, either snapshot or local/A single, fully resolved component of a package9Information on a locally available package of source codeThe PackageX info itself, after resolution with package flags, not including any tests or benchmarksCUsed for determining if we can use --enable-tests in a normal buildHUsed for determining if we can use --enable-benchmarks in a normal build7Executable components to build, Nothing if not a targetDirectory of the package.The .cabal file7are there files that have changed since the last build?current state of the filesall files used by this package4Second-stage build information: tests and benchmarksfPackage resolved with dependencies for tests and benchmarks, depending on which components are activeTest componentsBenchmark components\Datatype which tells how which version of a package to install and where to install it intoGWhere the package's source is located: local directory or package indexZUpstream packages could be installed in either local or snapshot databases; this is what  specifies.Package build configurationAre tests enabled?Are benchmarks enabled?Package config flags. GHC version host platform(Warning generated when reading a package/Modules found that are not listed in cabal filenFiles that the package depends on, relative to package directory. Argument is the location of the .cabal file!Files to get for a cabal package.nFiles that the package depends on, relative to package directory. Argument is the location of the .cabal fileSome package info.Name of the package.Version of the packageGet all files of the package. %Packages that the package depends on. A build tool name. #Original dependencies (not sieved). Flags used on package. 1does the package have a buildable library stanza?names of test suitesnames of benchmarksnames of executablesArgs to pass to GHC.&Does the package have exposed modules?&Does the package of build-type: Simple$All flags defined in the .cabal file%All exceptions thrown by the library.Is the given local a target5Maybe get the module name from the .cabal descriptor.3Maybe get the main name from the .cabal descriptor.Get the module path.Get the main path. Get the c file path.! Get the path.)Compares the package name.*Compares the package name.p      !"#$%&'()*+,-./b      !p/.     -,+*)('&%$#" !(       !"#$%&'()*+,-./None  (+035C:0iInformation on a compiled package: the library conf file (if relevant), and all of the executable paths.2&.conf file inside the package database3Full paths to executables42Configure options to be sent to Setup.hs configure6Options related to various paths. We separate these out since they do not have an impact on the contents of the compiled binary for checking if we can use an existing precompiled cache.;BBasic information used to calculate what the configure options areB:A complete plan of what needs to be built and how to do itE0Final actions to be taken (test, benchmark, etc)F4Text is reason we're unregistering, for display onlyG>Executables that should be installed after successful buildingH^The type of a task, either building local code or something from the package index (upstream)KDGiven the IDs of any missing packages, produce the configure optionsM4Dependencies for which we don't yet have an GhcPkgIdN.Produce the list of options given the missing GhcPkgIdsOA task to perform when buildingQthe package/version to be builtR+the task type, telling us how to build thisT+GhcPkgIds of already-installed dependenciesUQStored on disk to know whether the flags have changed or any files have changed.W"All options used for this package.XThe GhcPkgIds of all of the dependencies. Since Cabal doesn't take the complete GhcPkgId (only a PackageIdentifier) in the configure options, just using the previous value is insufficient to know if dependencies have changed.YThe components to be built. It's a bit of a hack to include this in here, as it's not a configure option (just a build option), but this is a convenient way to force compilation when the components change.ZAre haddocks to be built?GPackage dependency oracle._Options for the  FinalAction  DoBenchmarksa)Arguments passed to the benchmark programbDisable running of benchmarkscOptions for the  FinalAction DoTestse)Whether successful tests will be run gainf$Arguments passed to the test programgGenerate a code coverage reporthDisable running of testsiConfiguration for building.nBuild haddocks?o Build haddocks for dependencies?s0Install executables to user path after building?tFetch all packages immediatelyv1Watch files for changes and automatically rebuildw#Keep building/running after failurex7Force treating all local packages as having dirty filesyTurn on tests for local targetszAdditional test arguments{$Turn on benchmarks for local targets|Additional test arguments}9Commands (with arguments) to run after a successful build~-Only perform the configure step when building5Perform the configure step even if already configured%Ask Cabal to be verbose in its builds!Which subset of packages to buildcOnly install packages in the snapshot database, skipping packages intended for the local database.$Reason why a dependency was not usedH7For display purposes only, Nothing if package not found>Recommend adding to extra-deps, give a helpful version number?Path to the stack.yaml file Render a BaseConfigOpts to an actual list of optionsISame as -, but does not include directory path options,Get set of wanted package names from locals.&One-way conversion to serialized time.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZGJ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~HKL dependencieswanted?MI dependencieswanted?NOPQRSTUVWXYZ[\0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~89:OPQRST;<=>?@ABCDEFGcdefgh_`ab[\]^ijklmnopqrstuvwxyz{|}~HIJKLMNUVWXYZ45670123-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZGJ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~H KLMINOPQRSTUVWXYZ[\ENonecdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG      !0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None+4FGet the global package database]Run the ghc-pkg executableFCreate a package database in the given directory, if it doesn't exist.>Get the name to use for "ghc-pkg", given the compiler version.^IGet the necessary ghc-pkg flags for setting up the given package database_(Get the value of a field of the package.Get the id of the package e.g. *foo-0.0.0-9c293923c0685761dcff6f8c3ad8f8ec.Get the package key e.g. foo_9bTCpMF7G4UFWJJvtDrIdB.)NOTE: GHC > 7.10 only! Will always yield = otherwise.`Get the version of the package7Get the Haddock HTML documentation path of the package.?Finds dependencies of package, and all their dependencies, etc.$Get the dependencies of the package.:Get the version of Cabal from the global package database."Get the value for GHC_PACKAGE_PATH]^_package databasespackage identifier, or GhcPkgIdpackage databasespackage databases`package databasespackage databasesPackageIdentifier or GhcPkgIdpackage databasespackage databasespackage identifier or GhcPkgIdpackage databaseaJTJT]^_`aNone (+345FINU,-Read the raw, unresolved package information.?Read the raw, unresolved package information from a ByteString.)Reads and exposes the package information<Reads and exposes the package information, from a ByteStringConvenience wrapper around  readPackage9 that first finds the cabal file in the given directory.Print cabal file warnings.Check if the given name in the Package$ matches the name of the .cabal file#Resolve a parsed cabal file into a .bGenerate GHC options for the package's components, and a list of options which apply generally to the package, not one specific component.c$Generate GHC options for the target.d@Make the .o path from the .c file path for a component. Example: 7executable FOO c-sources: cbits/text_search.c Produces dist-dirbuildFOOFOO-tmpcbits/text_search.oExample:,> makeObjectFilePathFromC $(mkAbsDir "UserschrisRepos$hoogle") CLib $(mkAbsDir "UserschrisReposhoogle .stack-work%Cabal-x.x.x/dist") $(mkAbsFile "UserschrisReposhooglecbitstext_search.c") Just "UserschrisReposhoogle .stack-work Cabal-x.x.xdistbuildcbits<text_search.o" > makeObjectFilePathFromC $(mkAbsDir "UserschrisRepos/hoogle") (CExe "hoogle") $(mkAbsDir "UserschrisReposhoogle .stack-work%Cabal-x.x.x/dist") $(mkAbsFile "UserschrisReposhooglecbitstext_search.c") Just "UserschrisReposhoogle .stack-work Cabal-x.x.xdistbuildhoogle hoogle-tmpcbitstext_search.o" >Make the autogen dir.eMake the build dir.f@Make the component-specific subdirectory of the build directory.=Get all dependencies of the package (buildable targets only).HGet all build tool dependencies of the package (buildable targets only).g=Get all dependencies of the package (buildable targets only).h"This is a copy-paste from Cabal's  allBuildInfo function, but with the  buildableD test removed. The reason is that (surprise) Cabal is broken, see: ,https://github.com/haskell/cabal/issues/1725i(Get all files referenced by the package.j>Resolve globbing of files (e.g. data files) to absolute paths.k<This is a copy/paste of the Cabal library function, but with  ext == ext' Changed to isSuffixOf ext ext'So that this will work: > matchDirFileGlob_ "." "test package-dump *.txt" ["test package-dumpghc-7.8.txt","test package-dumpghc-7.10.txt"] l*Get all files referenced by the benchmark.m%Get all files referenced by the test.n+Get all files referenced by the executable.o(Get all files referenced by the library.p4Get all C sources and extra source files in a build.qGet the target's JS sources.VGet all dependencies of a package, including library, executables, tests, benchmarks.r.Make a map from a list of flag specifications.What is  flagManual for?s Generic a ResolveConditions using sensible defaults.t+Resolve the condition tree for the library.uGet the name of a dependency.v&Get the version range of a dependency.wTry to resolve the list of base names in the given directory by looking for unique instances of base names applied with the given extensions, plus find any of their module and TemplateHaskell dependencies.x.Get the dependencies of a Haskell module file.y6Parse a .dump-hi file into a set of modules and files.zTry to resolve the list of base names in the given directory by looking for unique instances of base names applied with the given extensions.{eFind a candidate for the given module-or-filename from the list of directories and given extensions.|pWarn the user that multiple candidates are available for an entry, but that we picked one anyway and continued.}gLog that we couldn't find a candidate, but there are possibilities for custom preprocessor extensions.IFor example: .erb for a Ruby file might exist in one of the directories.;Get the filename for the cabal file in the given directory.WIf no .cabal file is present, or more than one is present, an exception is thrown via ~.!Path for the package's build log.UResolve the file, if it can't be resolved, warn for the user (purely to be helpful).ZResolve the directory, if it can't be resolved, warn for the user (purely to be helpful).4bcdThe cabal directory.The name of the component.Dist directory.The path to the .c file.*The path to the .o file for the component.efghijklmnopqrsCompiler versioninstallation target platform enabled flagstuvwPackage component nameDirectories to look in. Base names. Extentions.xyzDirectories to look in. Base names. Extentions.{|}package directory2     2     /bcdefghijklmnopqrstuvwxyz{|}None !"(+047>CFIN Goffset in bytes into the 00-index.tar file for the .cabal file contents size in bytes of the .cabal file2Populate the package index caches and return them.7Require that an index be present, updating if it isn't.!Update all of the package indicesUpdate the index tarball/Update the index Git repo and the index tarball!Update the index tarball via HTTP Is the git executable installed?Delete the package index cache@Load the cached package URLs, or created the cache if necessary.(Return the number of blocks in an entry.$Git URLurl  None  +47FIN Contents of the .cabal file/Fetch packages into the cache without unpacking.Intended to work for the command line command.Ensure that all of the given package idents are unpacked into the build unpack directory, and return the paths to all of the subdirectories.4Resolve a set of package names and identifiers into  FetchPackage values.:Add the cabal files to a list of idents with their caches..Provide a function which will load up a cabal  ByteString from the package indices.Figure out where to fetch from.KDownload the given name,version pairs into the directory expected by cabal.JFor each package it downloads, it will optionally unpack it to the given Path (if present). Note that unpacking is not simply a matter of untarring, but also of grabbing the cabal file from the package index. The destinations should not include package identifiers.HReturns the list of paths unpacked, including package identifiers. E.g.: #fetchPackages [("foo-1.2.3", Just "somedest")] ==> ["somedest/foo-1.2.3"]  Since 0.1.0.0& destinationnames or identifiersunpack directory the dist rename directory, see: (https://github.com/fpco/stack/issues/157directory to unpack into, Nothing means no unpack the dist rename directory, see: (https://github.com/fpco/stack/issues/157  None+04F=Most recent Nightly and newest LTS version per major release.*Look up with packages provide which tools.set of shadowed dependenciesYDetermine the necessary packages to install to have the given set of packages available.EThis function will not provide test suite and benchmark dependencies.8This may fail if a target package is not present in the  BuildPlan.7Add in the resolved dependencies from the package index-Resolve all packages necessary to install for*Map from tool name to package providing it Download the  value from stackage.org. Load up a , preferably from cacheMSome hard-coded fixes for build plans, hopefully to be irrelevant over time. Load the %f for the given snapshot. Will load from a local copy if available, otherwise downloading from Github.Find the set of FlagNames necessary to get the given GenericPackageDescription to compile against the given  BuildPlanY. Will only modify non-manual flags, and will prefer default values for flags. Returns Nothing if no combination exists.Checks if the given package dependencies can be satisfied by the given set of packages. Will fail if a package is either missing or has a version outside of the version range.DFind a snapshot and set of flags that is compatible with the given  . Returns = if no such snapshot is found.-"is it shadowed by a local package?"required packages, and users of itCompiler versioncoresnon-core packages allow missingCompiler version"is it shadowed by a local package?locally available packages6package using dependencies, for constructing DepErrorsstack.yaml file locationNone &+4FINV5"Exceptions thrown by Stack.Docker.*Docker must be enabled to use the command.4Command must be run on host OS (not in a container).docker inspect failed.Image does not exist. Input to docker cleanup has invalid command.Invalid output from  docker images.Invalid output from  docker ps.Invalid output from docker inspect.Could not pull a Docker image.Installed version of docker below minimum version.Installed version of docker is prohibited.Invalid output from docker --version. Version of stack) on host is too old for version in image. Version of stack3 in container/image is too old for version on host.7Only LTS resolvers are supported for default image tag.?Can't determine the project root (where to put docker sandbox).docker --version failed.Invalid global database path.Parsed Config section of docker inspect output.Parsed result of docker inspect.Cleanup action. Options for .xIf Docker is enabled, re-runs the currently running OS command in a Docker container. Otherwise, runs the inner action.FThis takes an optional release action which should be taken IFF control is transfering away from the current process to the intra-container one. The main use for this is releasing a lock. After launching reexecution, the host process becomes nothing but an manager for the call into docker and thus may not hold the lock.If Docker is enabled, re-runs the OS command returned by the second argument in a Docker container. Otherwise, runs the inner action.0This takes an optional release action just like . Error if running in a container.7 if we are currently running inside a Docker container.?Run a command in a new Docker container, then exit the process.*Clean-up old docker images and containers."Inspect Docker image or container.1Inspect multiple Docker images and/or containers.=Pull latest version of configured Docker image from registry. Pull Docker image from registry.4Check docker version (throws exception if incorrect)$Remove the project's Docker sandbox.dRemove the contents of a directory, without removing the directory itself. This is used instead of FGZ to clear bind-mounted directories, since removing the root of the bind-mount won't work.Produce a strict HI) from the stdout of a process. Throws a E? exception if the process fails. Logs process's stderr using  $logError.NSubdirectories of the home directory to sandbox between GHC/Stackage versions.-Name of home directory within docker sandbox.$Interprets DockerOptsMonoid options.4Convenience function to decode ByteString to String..Convenience function constructing message for $log*.1Fail with friendly error if project root not set.2Environment variable that contains the sandbox ID.DEnvironment variable used to indicate stack is running in container."Command-line argument for "docker"Command-line argument for  docker pull.Command-line argument for docker cleanup.Command-line option for --internal-re-exec.'Show instance for StackDockerException.,Exception instance for StackDockerException.Parse Config section of docker inspect output.Parse docker inspect output.G Directory to remove contents of1Top-level directory names to exclude from removal,Top-level file names to exclude from removal$ None &+4>IN Stack image exceptions.JStages the executables & additional content in a staging directory under  '.stack-work'4Builds a Docker (OpenContainer) image extending the basew image specified in the project's stack.yaml. Then new image will be extended with an ENTRYPOINT specified for each  entrypoint listed in the config file. ,Stage all the Package executables in the usrlocal&bin subdirectory of a temp directory. `Add any additional files into the temp directory, respecting the (Source, Destination) mapping. 0Derive an image name from the project directory.dCreate a general purpose docker image from the temporary directory of executables & static content.IExtend the general purpose docker image with entrypoints (if specified).)The command name for dealing with images.1The command name for building a docker container.A parser for ImageOptsMonoid.#A parser for ImageDockerOptsMonoid.+Convert image opts monoid to image options.9Convert Docker image opts monoid to Docker image options.         None  !"(*>F/Need targets, e.g. `stack build` or allow none?9A view of a local package needed for resolving componentsqRaw command line input, without checking against any databases or list of locals. Does not deal with directoriesnEither a fully resolved component, or a component name that could be either an executable, test, or benchmarkRThe name of a component, which applies to executables, test suites, and benchmarksIf this function returns Nothing., the input should be treated as a directory.Same as parseRawTarget*, but also takes directories into account.%     current directorysnapshot extra depssnapshot extra deps need at least one targetusing implicit global?snapshot extra depscurrent directorycommand line targets                  !None4!Default  EnvSettings+ which includes locals and GHC_PACKAGE_PATH";Environment settings which do not embellish the environment#:Execute a process within the Stack configured environment.!"#!"#!"#!"#"None47&Determine missing extra-deps$ cabal files constraintsadditional arguments% temp dir constraints&modify stack.yaml?$%&$%&$% &#None47 'Method of initializing1Preferred snapshots2Overwrite existing files3>If True, include all .cabal files found in any sub directories!CSpecial directories that we don't want to traverse for .cabal files5Generate stack.yaml".Render a stack.yaml file with comments, see: 5https://github.com/commercialhaskell/stack/issues/226#Get the default resolver value6Turn an  into a .'()*+,-./01234!5"$# cabal filescabal descriptions%6'()*+,-./012345645/0123+,-.'()*6 '()*+,-./01234!5"$#%6$None +4>CFLNU7;An environment with a subset of BuildConfig used for setup.&+Get the latest snapshot resolver available.'Note that this will be Nothing on Windows, which is by design.(Get the default i0. On older Linux systems with libgmp4, returns k.)pGet the directory on Windows where we should install extra programs. For more information, see discussion at: >https://github.com/fpco/minghc/issues/43#issuecomment-997373838 Load the 7.9cLoad the configuration, using current directory, environment variables, and defaults as necessary.*MLoad the build configuration, adds build-specific values to config loaded by  loadConfig . values.:SResolve a PackageEntry into a list of paths, downloading and cloning as necessary.+MResolve a PackageLocation into a path, downloading and cloning as necessary.,!Get the stack root, e.g. ~/.stack-6Determine the extra config file locations which exist.Returns most local first.(Load and parse YAML from the given file./:Get the location of the project config file, if it exists.0Find the project config file location, respecting environment variables and otherwise traversing parents. If no config is found, we supply a default based on current directory.71&'2stack root, e.g. ~/.stack()890Config monoid from parsed command-line argumentsOverride stack.yaml*: project root+ project root,- stack root./Override stack.yaml0Override stack.yaml;34567789:;798;:71&'2()89*:+,-./0;34567%None+N85Exception that might occur when making a new project.<#Options for creating a new project.>Name of the project to create.?Name of the template to use.@4Nonce parameters specified just for this invocation.A,Create a new project with the given options.9/Download and read in a template's text content.:-Apply and unpack a template into a directory.;)Write files to the new project directory.<.Run any initialization functions, such as Git.CGet the set of templates.=*Parser the set of templates from the JSON.D<The default template name you can use if you don't have one.>&Default web root URL to download from.?*Default web URL to list the repo contents.8@ABCDEF<=>?@A9:;<BC=D>?GH <=>?@ABCD A<=>?@DCB8@ABCDEF<=>?@A9:;<BC=D>?GHJNone+I#Does not include the current actionJKLMNOPQRSTUIVWXYZ[\]^_`threads$keep going after one task has failedrun final actions concurrently?progress updatedabcTUIVWXYZ[\]^_` JKLMNOPQRSTUIVWXYZ[\]^_`abc&None&47EIGenerates the HTML coverage report and shows a textual coverage summary.EFdEFEFEFd'None+NGSettings for creating an Uploader. Since 0.1.0.0HThe computed value from a UploadSettings.%Typically, you want to use this with S. Since 0.1.0.0I8Whether the Hackage credentials were loaded from a file.This information is useful since, typically, you only want to save the credentials to a file if it wasn't already loaded from there. Since 0.1.0.0J)A source for getting Hackage credentials. Since 0.1.0.0K*Username and password to log into Hackage. Since 0.1.0.0L/Load Hackage credentials from the given source. Since 0.1.0.0M3Save the given credentials to the credentials file. Since 0.1.0.0NOLoad the Hackage credentials from the prompt, asking the user to type them in. Since 0.1.0.0O7Load the Hackage credentials from the JSON config file. Since 0.1.0.0P6Load the Hackage credentials from the given arguments. Since 0.1.0.0Q]Try to load the credentials from the config file. If that fails, ask the user to enter them. Since 0.1.0.0e5Lifted from cabal-install, Distribution.Client.UploadR Turn the given settings into an Uploader. Since 0.1.0.0S'Upload a single tarball with the given Uploader. Since 0.1.0.0T'Upload a single tarball with the given Uploader#. Instead of sending a file like S, this sends a lazy bytestring. Since 0.1.2.1UDefault value for UploadSettings.(Use setter functions to change defaults. Since 0.1.0.0VChange the upload URL. Default: " &https://hackage.haskell.org/packages/" Since 0.1.0.0W&How to get an HTTP connection manager. Default: newManager tlsManagerSettings Since 0.1.0.0X#How to get the Hackage credentials. Default:  fromAnywhere Since 0.1.0.0Y(Save new credentials to the config file. Default: True Since 0.1.0.0(GfghijHklmnIJopKqrsLMNtOPQeRuSTUVWXYvwxyGHIJKLMNOPQRSTUVWXYRHSTGUVWXYKLMIJQNOPGfghijHklmnIJopKqrsLMNtOPQeRuSTUVWXYvwxy(None +-345FNU`0If we got the desired GHC version from that fileb&Run a sanity check on the selected GHCc5Don't check for a compatible GHC version/architectured0Do not use a custom msys installation on WindowseUpgrade the global Cabal library in the database to the newest version. Only works reliably with a stack-managed installation.f8Message shown to user for how to resolve the missing GHCg*Location of the main stack-setup.yaml fileh>Alternate GHC binary distribution (requires custom GHCVariant)i-Default location of the stack-setup.yaml filej[Modify the environment variables (like PATH) appropriately, possibly doing installation tooz1Add the include and lib paths to the given ConfigkAEnsure GHC is installed and provide the PATHs to add if necessary{,Install the newest version of Cabal globally|4Get the version of the system compiler, if available}"Download the most recent SetupInfo~2Binary directories for the given installed packageBDownload 7z as necessary, and get a function for unpacking things.8Returned function takes an unpack directory and archive.Given a printf format string for the decimal part and a number of bytes, formats the bytes using an appropiate unit and returns the formatted string.bytesfmt "%.2" 512368"500.359375 KiB"#Perform a basic sanity check of GHCPGet map of environment variables to set to change the locale's encoding to UTF-8GZ[\]^_`abcdefghij8Message to give user when necessary GHC is not availablezk{|}e.g., ghc-7.8.4, msys2-20150512~already installedpackage to findwhich versions are acceptableOS KeylabelURL, content-length, and sha1 destinationZ[\]^_`abcdefghijkjkZ[\]^_`abcdefghi( Z[\]^_`abcdefghijzk{|}~)None&47 l2Determine whether we should haddock for a package.m5Determine whether to build haddocks for dependencies.nLCopy dependencies' haddocks to documentation directory. This way, relative  ../$pkg-$ver` links work and it's easy to upload docs to a web server or otherwise view them in a non-local-filesystem context. We copy instead of symlink for two reasons: (1) symlinks aren't reliably supported on Windows, and (2) the filesystem containing dependencies' docs may not be available where viewing the docs (e.g. if building in a Docker container).o7Generate Haddock index and contents for local packages.pNGenerate Haddock index and contents for local packages and their dependencies.q>Generate Haddock index and contents for all snapshot packages.;Generate Haddock index and contents for specified packages.Path of haddock index file./Path of local packages documentation directory.2Path of snapshot packages documentation directory. lmnopqlmnopqnopqlm lmnopq*None&07FQStored on disk to know whether the flags have changed or any files have changed.rModification times of files.=Directory containing files to mark an executable as installeds$Get all of the installed executablest&Mark the given executable as installedu*Mark the given executable as not installedv@Try to read the dirtiness cache for the given package directory.w@Try to read the dirtiness cache for the given package directory.x>Try to read the mod time of the cabal file from the last buildTry to load a cache.y3Write the dirtiness cache for this package's files.z;Write the dirtiness cache for this package's configuration.{See x|"Delete the caches for the project.Write to a cache.}7Loads the flag cache for the given installed extra-deps%Mark a test suite as having succeeded)Mark a test suite as not having succeeded&Check if the test suite already passed!Mark a test suite as having built%Mark a test suite as not having built%Check if the test suite already built"Mark a bench suite as having built&Mark a bench suite as not having built&Check if the bench suite already builtThe file containing information on the given package/configuration combination. The filename contains a hash of the non-directory configure options for quick lookup if there's a match.1Write out information about a newly built packageLCheck the cache for a precompiled package matching the given configuration.#rstuvwxyz{|}~library executablestarget packagerstuvwxyz{|}~vwxsr}|tu~yz{!rstuvwxyz{|}~+None47FN 7Use the build options and environment to parse targets.xFor every package in the snapshot which is referenced by a flag, give the user a warning and then add it to extra-deps.9Parse out the local package views for the current projectOCheck if there are any duplicate package names and, if so, throw an exception.7Upgrade the initial local package info to a full-blown  LocalPackage" based on the selected componentsYEnsure that the flags specified in the stack.yaml file and on the command line are used.All flags for a local package/Add in necessary packages to extra dependenciesOriginally part of  5https://github.com/commercialhaskell/stack/issues/272, this was then superseded by 5https://github.com/commercialhaskell/stack/issues/651Compare the current filesystem state to the cached information, and determine (1) if the files are dirty, and (2) the new cache values.NReturns entries to add to the build cache for any newly found unlisted modules)Gets list of Paths for files in a package)Get file modification time, if it exists. Create FileCacheInfo for a file.snapshot extra-depspackages referenced by a flag extra depssnapshot, for error messagesoriginal extra deps)package identifiers from the command line&all packages added on the command linelatest versions in indices new extradeps old cachefiles in package  ,None +04CFIN2A single line of input, not including line endings%Dump information for a single packageMCached information on whether a package has profiling libraries and haddocks.LCached information on whether package have profiling libraries and haddocks.ACall ghc-pkg dump with appropriate flags and stream to the given Sink, for a single databaseCreate a new, empty InstalledCacheLoad a InstalledCache@ from disk, swallowing any errors and returning an empty cache.Save a InstalledCache to diskKPrune a list of possible packages down to those whose dependencies are met.id uniquely identifies an item$There can be multiple items per name}Find the package IDs matching the given constraints with all dependencies installed. Packages not mentioned in the provided Map are allowed to be present too.+Add profiling information to the stream of  DumpPackages)Add haddock information to the stream of  DumpPackages+Convert a stream of bytes into a stream of  DumpPackagesVApply the given Sink to each section of output, broken by a single line containing ---Grab each key/value pairGeneral purpose utility/if Nothing, use globalextract the name from an idthe id of an itemget the dependencies of an item(choose the desired of two possible items input itemsrequire profiling?require haddock?allowed versionsentry in directoryname of library -None&47 Options for .Require profiling libraries?Require haddocks?HReturns the new InstalledMap and all of the locally registered packages.]Outputs both the modified InstalledMap and the Set of all installed packages in this databaseThe goal is to ascertain that the dependencies for a package are present, that it has profiling if necessary, and that it matches the version and location needed by the SourceMapCheck if a can be included in the set of installed packages or not, based on the package selections made by the user. This does not perform any dirtiness or flag change checks.*does not contain any installed information)if Just, profiling or haddock is required5to determine which installed things we should include$package database, Nothing for globalfrom parent databases 89: 89:.None47FNCexecutable to be installed, and location where the binary is placed'why a local package is considered dirty$Packages which count as dependenciesfDetermine which packages to unregister based on the given tasks and already registered local packages\Get all of the dependencies for a given package, including guessed build tool dependencies.Strip out anything from the Plan intended for the local database9&additional packages that must be builtlocally registeredload upstream package#is this being used by a dependency?#is this being used by a dependency?#is this being used by a dependency?#is this being used by a dependency? #is this being used by a dependency?    $      /None&47 $Temporary Setup.hs for simple buildsCompiled version of eeSetupHs For a dry runGet a compiled Setup exePerform the actual planWindows can't write over the current executable. Instead, we rename the current executable to something else and then do the copy."Perform the actual plan (internal)Generate the ConfigCacheCEnsure that the configuration for the package matches what is given 8Determine if all of the dependencies given are installed!Grab all output from the given Handlem and print it to stdout, stripping Template Haskell "Loading package" lines. Does work in a separate thread."[Find the Setup.hs or Setup.lhs in the given directory. If none exists, throw an exception.#Take the given list of package dependencies and the contents of the global package database, and construct a set of installed package IDs that:-Excludes the Cabal library (it's added later)1Includes all packages depended on by this packageIncludes all global packages, unless: (1) it's hidden, (2) it's shadowed by a depended-on package, or (3) one of its dependencies is not met.See: 5https://github.com/commercialhaskell/stack/issues/941 5https://github.com/commercialhaskell/stack/issues/944 5https://github.com/commercialhaskell/stack/issues/949($%&'()*+,-./0123Setup.hs input filetemporary directoryglobal packagesglobals4newConfigCachepackage directoryannouncecabal .cabal file5wAll dependencies' package ids to provide to Setup.hs. If Nothing, just provide global and snapshot package databases.6 78!exclude TH loading?convert paths to absolute?"project directory9#dependencies of the packageglobal packages$%&'()*+,-./0123456 78!"9#0None  &+04FNBuild.If a buildLock is passed there is an important contract here. That lock must protect the snapshot, and it must be safe to unlock it if there are no further modifications to the snapshot to be performed by this build.:VIf all the tasks are local, they don't mutate anything outside of our local directory.Get the BaseConfigOpts- necessary for constructing configure optionsIProvide a function for loading package information from the package index7Reset the build (remove Shake database and .gen files).;*callback after discovering all local files:;:1None4FOptions record for  stack dotInclude external dependenciesInclude dependencies on baseOLimit the depth of dependency resolution to (Just n) or continue until fixpoint%Package names to prune from the graph8Visualize the project's dependencies as a graphviz graph<Create the dependency graph, the result is a map from a package name to a tuple of dependencies and a version if available. This function mainly gathers the required arguments for resolveDependencies."pruneGraph dontPrune toPrune graph prunes all packages in graph with a name in toPrune3 and removes resulting orphans unless they are in  dontPrune=9Make sure that all unreachable nodes (orphans) are prunedLResolve the dependency graph up to (Just depth) or until fixpoint is reached>UGiven a SourceMap and a dependency loader, load the set of dependencies for a package?NResolve the direct (depth 0) external dependencies of the given local packagesUPrint a graphviz graph of the edges in the Map and highlight the given local packages@APrint the local nodes with a different style depending on optionsA Print nodes without dependenciesBprintDedges p ps" prints an edge from p to every psC+Print an edge between the two package namesD,Convert a package name to a graph node name.E!Print a node with no dependenciesF3Check if the package is wired in (shipped with) ghc<G=>? all locals@ABCDEF  <G=>?@ABCDEF2None+4F:Necessary information to load a package or its components.Module file paths.Command-line options for GHC.Launch a GHCi session for the given local project targets with the given options and configure it with the load paths and extensions of those targets.HFigure out the main-is file to load based on the targets. Sometimes there is none, sometimes it's unambiguous, sometimes it's ambiguous. Warns and returns nothing if it's ambiguous.iCreate a list of infos for each target containing necessary information to load that package/components.I=Make information necessary to load the given package in GHCi.HIHI3None4FLaunch a GHCi IDE for the given local project targets with the given options and configure it with the load paths and extensions of those targets.JMake the initial request.K:Execute a process within the Stack configured environment.Targets. GHC options.JKJK4None47git repository to use5None &4INLGiven the path to a local package, creates its source distribution tarball.While this yields a Ln, the name of the tarball, this tarball is not written to the disk and instead yielded as a lazy bytestring.M:Get the PVP bounds-enabled version of the given cabal fileNTraverse a data type.OSReturns a newline-separate list of paths, and the absolute path to the .cabal file. Poverride Config valueMNQORST PMNQORST6None3An argument which accepts a list of arguments e.g. --ghc-options="-X P.hs "this"".1An option which accepts a list of arguments e.g. --ghc-options="-X P.hs "this"".?An option which accepts a command and a list of arguments e.g. --exec "echo hello world"Parse from a string.7SafeEnable/disable flags for a Bool.Enable/disable flags for a Bool,, without a default case (to allow chaining  |s).Enable/disable flags for a  (Maybe Bool)."Enable/disable flags for any type.HEnable/disable flags for any type, without a default (to allow chaining  |s) Show an extra help option (e.g.  --docker-help shows help for all  --docker*5 args). To actually show have that help appear, use " before executing the main parser.Display extra help if extea help option passed in arguments. Since optparse-applicative doesn't allow an arbirary IO action for an US, this was the best way I found that doesn't require manually formatting the help. V   V8None+Command sum type for conditional arguments.Parser for bench arguments.Parser for build arguments.WParser for package:[-]flag0Command-line arguments parser for configuration.(Options parser configuration for Docker.$Parser for docker cleanup arguments.#Parser for arguments to `stack dot`Parser for exec command'Parser for global command-line options.Parse for a logging level.Parser for the resolverXGHC variant parser Parser for  solverCmdParser for test arguments. Parser for  stack new.YWcommandZXYWZX[KLMNOPQRSTUVWXYZ[\]]^_``abcdefgghijklmnopqrstuvwxyz{|}~G                                    !"#$%&'()*+,-../01234556789:;<==>?@@ABCDEEFGGHIIJKLMNOPQRSSTUVWXYZ[[\]^_`aabcdefghijkklmnoppqrrstuvwwxyz{|}~      !"#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIIJKLLMNOPQRRSTUVWXXYZ[\]^_``abccdefghhijklmnopqqrsttuvwxyyz{|}~                        ! " # $ # % & '!(!)!*"+","-#.#/#0#1#2#3#4#5#6#6#7#8#9#:#;#<$=$>$D$?$@%A%A%B%C%D%E%F%G%H&I&J'K'L'M'N'O'P'Q'R'S'T'U'V'W'X'Y'Z'['\'](^(^(_(`(a(b(c(d(e(f(g(h(i(j(k(l(m(n)o)p)q)r)s)t*u*v*w*x*y*z*{*|*}*~**************++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------.//////00001111111111122222222222222222234566667777777778888888888888888888888999::::     ;<<=>>>> >!>">#>$>%>&>'>(>)>*>+>,>->.>/>0?1?2?3?4?5?6?7?8?9?:?;?<?=>?@AB@ACDEFGHIJKLIMNOPQ@R@S@T@UAVAWAXAYAYAZA[A\]^_]^`]^abcdbcefghfgiBjBkBlBmBnBoBpBqBrBstuvBwtxyBzB{B|B}B~BlBBBBttttttttttttututututututututttttttttttxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxCCCCCCCC                                                  !"#$%&'()*+,%-./0123456789:;<=>?@@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~K                "### #!#"$#$$$%$&$'$($)$*$+$,$-$=$.$/$0$1$2$3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%DJEJFJGJHJHJIJJJKJLJMJNJOJOJPJPJQJRJSJTJTJUJVJWJXJYJZJ[&\']'K'^'_'`'a'L'b'c'd'N'e'O'f'g'h'i'j'k'l'm(n(o(p(q(r(s(t(u(v(w(w(x(y(z({(|(|(}(~((((((((((((((((((((((((((((f(((((())))***********+++++++++,,,,,,,,,,,,,,,,,--------........................................................///////// / / / // //////////////////// 0!01"1#1$1%1&1'1(1)1*1+1,1-2.2/303*12535455556575859:;<7=8>8?8@8ABstack_7HVfGlkxlA6BFWl1Gr7dfdStack.Types.VersionSystem.Process.RunSystem.Process.ReadNetwork.HTTP.Download.VerifiedStack.Types.TemplateNameStack.FileWatchSystem.Process.LogPath.IOStack.Types.PackageNameStack.Types.DockerStack.Types.FlagNameStack.Types.GhcPkgIdStack.Types.PackageIdentifierStack.Types.CompilerStack.Types.BuildPlanStack.Types.ImageData.Attoparsec.ArgsStack.Types.ConfigStack.ConstantsStack.Types.InternalStack.Types.StackTStack.Docker.GlobalDBStack.Types.PackageStack.Types.Build Stack.GhcPkg Stack.PackageStack.PackageIndex Stack.FetchStack.BuildPlan Stack.Docker Stack.ImageStack.Build.Target Stack.Exec Stack.Solver Stack.Init Stack.Config Stack.NewStack.Build.Coverage Stack.Upload Stack.SetupStack.Build.HaddockStack.Build.CacheStack.Build.SourceStack.PackageDumpStack.Build.InstalledStack.Build.ConstructPlanStack.Build.Execute Stack.Build Stack.Dot Stack.Ghci Stack.Ide Stack.Upgrade Stack.SDistOptions.Applicative.Args!Options.Applicative.Builder.Extra Stack.OptionsData.Set.MonadData.Attoparsec.CombinatorsData.IORef.RunOnceDistribution.Version.ExtraData.Maybe.ExtraSystem.Process.PagerEditor Paths_stack Path.FindData.Binary.VersionTaggedData.Aeson.ExtendedNetwork.HTTP.Download loadConfig Stack.TypesFS removeTreeS ByteStringControl.Concurrent.ExecuteCabal_96aI7pZyaxU3dsgngOxbdKDistribution.Version VersionRangestrea_1kUF85WuW2a4bnXucVgo6AData.Streaming.ProcessProcessExitedUnsuccessfullyproce_FLTz0SLwyG6LJUpZ52HjkUSystem.Process readProcessVerifiedDownloadExceptionWrongContentLengthWrongStreamLength WrongDigest LengthCheckCheckHexDigestCheckHexDigestStringCheckHexDigestByteStringCheckHexDigestHeader HashCheckhashCheckAlgorithmhashCheckHexDigestDownloadRequest drRequest drHashChecks drLengthCheck drRetryPolicydrRetryPolicyDefaultverifiedDownload TemplateNametemplateNameArgumenttemplateParamArgumentparseTemplateNameFromStringmkTemplateName templateName templatePathprintExceptionStderr fileWatch fileWatchPoll logProcessRunshowProcessArgDebugResolveExceptionResolveDirFailedResolveFileFailed getWorkingDirparseRelAsAbsDirparseRelAsAbsFile resolveDir resolveFileresolveDirMayberesolveFileMaybeparseCollapsedAbsFileparseCollapsedAbsDir listDirectory removeFileremoveFileIfExists renameFilerenameFileIfExists renameDirrenameDirIfExists createTreemoveFilemoveFileIfExistsmoveDirmoveDirIfExistsremoveTreeIfExists fileExists dirExistscopyFilecopyFileIfExistscopyDirectoryRecursivedropRootReadProcessException NoPathFoundExecutableNotFoundExecutableNotFoundAt EnvOverride eoTextMap eoStringListeoPath eoExeCacheeoExeExtension unEnvOverride envSearchPath mkEnvOverride envHelperreadProcessNull readInNulltryProcessStdoutreadProcessStdoutsinkProcessStdout preProcessdoesExecutableExistfindExecutablegetEnvOverride augmentPathaugmentPathMaprunIn callProcess callProcess' PackageNamePackageNameParseFailCabalFileNameParseFailCabalFileNameInvalidPackageNamepackageNameParser mkPackageNameparsePackageNameparsePackageNameFromStringpackageNameByteStringpackageNameStringpackageNameTextfromCabalPackageNametoCabalPackageNameparsePackageNameFromFilePathpackageNameArgumentDockerMonoidRepoOrImageDockerMonoidRepoDockerMonoidImageMountDockerOptsMonoiddockerMonoidExistsdockerMonoidEnabledockerMonoidRepoOrImagedockerMonoidRegistryLogindockerMonoidRegistryUsernamedockerMonoidRegistryPassworddockerMonoidAutoPulldockerMonoidDetachdockerMonoidPersistdockerMonoidContainerNamedockerMonoidRunArgsdockerMonoidMountdockerMonoidEnvdockerMonoidDatabasePath DockerOpts dockerEnable dockerImagedockerRegistryLogindockerRegistryUsernamedockerRegistryPassworddockerAutoPull dockerDetach dockerPersistdockerContainerName dockerRunArgs dockerMount dockerEnvdockerDatabasePathdockerEnableArgNamedockerRepoArgNamedockerImageArgNamedockerRegistryLoginArgNamedockerRegistryUsernameArgNamedockerRegistryPasswordArgNamedockerAutoPullArgNamedockerDetachArgNamedockerRunArgsArgNamedockerMountArgNamedockerEnvArgNamedockerContainerNameArgNamedockerPersistArgNamedockerDatabasePathArgName$fFromJSONMount $fShowMount $fReadMount$fMonoidDockerOptsMonoid $fFromJSON(,)FlagNameFlagNameParseFailflagNameParser mkFlagName parseFlagNameparseFlagNameFromStringflagNameString flagNameTextfromCabalFlagNametoCabalFlagNameGhcPkgId parseGhcPkgIdghcPkgIdParserghcPkgIdString VersionCheck MatchMinor MatchExact NewerMinorVersion versionParser parseVersionparseVersionFromString versionString versionTexttoCabalVersionfromCabalVersion mkVersionversionRangeText withinRangeintersectVersionRangestoMajorVersionnextMajorVersion checkVersionPackageIdentifiertoTuple fromTuplepackageIdentifierVersionpackageIdentifierNamepackageIdentifierParserparsePackageIdentifier parsePackageIdentifierFromStringpackageIdentifierStringpackageIdentifierTextCompilerVersion GhcVersion GhcjsVersion WhichCompilerGhcGhcjsparseCompilerVersioncompilerVersionName whichCompilerisWantedCompiler getGhcVersioncompilerExeNamehaddockExeName$fFromJSONCompilerVersion$fToJSONCompilerVersion$fNFDataCompilerVersion"$fHasStructuralInfoCompilerVersion$fBinaryCompilerVersionMiniPackageInfo mpiVersionmpiFlagsmpiPackageDeps mpiToolDepsmpiExes mpiHasLibrary MiniBuildPlanmbpCompilerVersion mbpPackages Component CompLibraryCompExecutable CompTestSuite CompBenchmarkDepInfo diComponentsdiRange SimpleDesc sdPackagessdToolssdProvidedExes sdModulesExeName unExeName Maintainer unMaintainer SystemInfosiCompilerVersionsiOSsiArchsiCorePackagessiCoreExecutables TestState ExpectSuccess ExpectFailure Don'tBuildPackageConstraintspcVersionRange pcMaintainerpcTests pcHaddockspcBuildBenchmarkspcFlagOverridespcEnableLibProfile PackagePlan ppVersion ppGithubPingsppUsers ppConstraintsppDesc BuildPlan bpSystemInfobpTools bpPackages bpGithubUsersSnapNameLTSNightlyrenderSnapName parseSnapNameImageDockerOptsMonoidimgDockerMonoidBaseimgDockerMonoidEntrypointsimgDockerMonoidAddimgDockerMonoidImageNameImageOptsMonoidimgMonoidDockerImageDockerOpts imgDockerBaseimgDockerEntrypoints imgDockerAddimgDockerImageName ImageOpts imgDocker imgArgNameimgDockerArgNameimgDockerBaseArgNameimgDockerAddArgNameimgDockerEntrypointsArgNameimgDockerImageNameArgName$fMonoidImageDockerOptsMonoid$fMonoidImageOptsMonoid$fFromJSON(,)0 EscapingModeEscaping NoEscaping parseArgs argsParserwithInterpreterArgs PvpBounds PvpBoundsNonePvpBoundsUpperPvpBoundsLower PvpBoundsBothSetupInfoLocationSetupInfoFileOrURLSetupInfoInline SetupInfo siSevenzExe siSevenzDllsiMsys2siGHCsVersionedDownloadInfo vdiVersionvdiDownloadInfo DownloadInfodownloadInfoUrldownloadInfoContentLengthdownloadInfoSha1 GHCVariant GHCStandardGHCGMP4GHCArchGHCIntegerSimple GHCCustomSCMGitProjectAndConfigMonoidConfigExceptionParseConfigFileExceptionParseResolverExceptionNoProjectConfigFoundUnexpectedTarballContentsBadStackVersionExceptionNoMatchingSnapshotNoSuchDirectoryParseGHCVariantExceptionVersionRangeJSONunVersionRangeJSON ConfigMonoidconfigMonoidDockerOptsconfigMonoidConnectionCountconfigMonoidHideTHLoadingconfigMonoidLatestSnapshotUrlconfigMonoidPackageIndicesconfigMonoidSystemGHCconfigMonoidInstallGHCconfigMonoidSkipGHCCheckconfigMonoidSkipMsysconfigMonoidCompilerCheckconfigMonoidRequireStackVersionconfigMonoidOSconfigMonoidArchconfigMonoidGHCVariantconfigMonoidJobsconfigMonoidExtraIncludeDirsconfigMonoidExtraLibDirsconfigMonoidConcurrentTestsconfigMonoidLocalBinPathconfigMonoidImageOptsconfigMonoidTemplateParametersconfigMonoidScmInitconfigMonoidGhcOptionsconfigMonoidExtraPathconfigMonoidSetupInfoLocationsconfigMonoidPvpBoundsHasBuildConfiggetBuildConfig HasConfig getConfig HasGHCVariant getGHCVariant HasPlatform getPlatform HasStackRoot getStackRootResolverResolverSnapshotResolverCompilerResolverCustomProjectprojectPackagesprojectExtraDeps projectFlagsprojectResolverPackageLocation PLFilePath PLHttpTarballPLGit PackageEntrypeExtraDepMaybe peValidWanted peLocation peSubdirs LoadConfiglcConfiglcLoadBuildConfig lcProjectRoot HasEnvConfig getEnvConfig EnvConfigenvConfigBuildConfigenvConfigCabalVersionenvConfigCompilerVersionenvConfigPackages BuildConfigbcConfig bcResolverbcWantedCompilerbcPackageEntries bcExtraDeps bcStackYamlbcFlagsbcImplicitGlobal bcGHCVariantAbstractResolverARLatestNightly ARLatestLTSARLatestLTSMajor ARResolverARGlobal GlobalOpts globalReExecglobalLogLevelglobalConfigMonoidglobalResolverglobalTerminalglobalStackYamlglobalModifyCodePage ExecOptsExtra ExecOptsPlainExecOptsEmbellished eoEnvSettings eoPackagesExecOptseoCmdeoArgseoExtra EnvSettingsesIncludeLocalsesIncludeGhcPackagePath esStackExe esLocaleUtf8 IndexLocationILGitILHttp ILGitHttp IndexName unIndexName PackageIndex indexName indexLocationindexDownloadPrefixindexGpgVerifyindexRequireHashesConfigconfigStackRoot configDockerconfigEnvOverrideconfigLocalProgramsconfigConnectionCountconfigHideTHLoadingconfigPlatformconfigGHCVariant0configLatestSnapshotUrlconfigPackageIndicesconfigSystemGHCconfigInstallGHCconfigSkipGHCCheckconfigSkipMsysconfigCompilerCheckconfigLocalBinconfigRequireStackVersion configJobsconfigExtraIncludeDirsconfigExtraLibDirsconfigConfigMonoidconfigConcurrentTests configImageconfigTemplateParams configScmInitconfigGhcOptionsconfigSetupInfoLocationsconfigPvpBounds indexNameTextdefaultLogLevelbcRoot bcWorkDir peExtraDep resolverNameparseResolverTextparseConfigMonoidJSON askConfigaskLatestSnapshotUrlconfigPackageIndexRootconfigPackageIndexCacheconfigPackageIndexconfigPackageIndexGzconfigPackageTarball workDirRelconfigProjectWorkDirconfigInstalledCacheplatformOnlyRelDirplatformVariantRelDirconfigShakeFilesDirconfigLocalUnpackDir snapshotsDirinstallationRootDepsinstallationRootLocalcompilerVersionDirpackageDatabaseDepspackageDatabaseLocalflagCacheLocalconfigMiniBuildPlanCache bindirSuffix docDirSuffix hpcDirSuffix extraBinDirsgetMinimalEnvOverrideminimalEnvSettingsgetWhichCompilerpackageEntryCurrDirghcVariantNameghcVariantSuffixparseGHCVariantparseDownloadInfoFromObject pvpBoundsTextparsePvpBounds$fFromJSONPvpBounds$fToJSONPvpBounds$fMonoidSetupInfo$fFromJSON(,)1$fFromJSON(,)2$fFromJSONGHCVariant $fToJSONSCM $fFromJSONSCM$fFromJSON(,)3$fExceptionConfigException$fShowConfigException$fFromJSONVersionRangeJSON$fFromJSON(,)4$fMonoidConfigMonoid$fHasBuildConfigBuildConfig$fHasConfigBuildConfig$fHasGHCVariantBuildConfig$fHasPlatformBuildConfig$fHasStackRootBuildConfig$fHasConfigConfig$fHasPlatformConfig$fHasStackRootConfig$fHasGHCVariantGHCVariant$fHasPlatformPlatform$fFromJSON(,)5$fToJSONResolver$fToJSONProject$fFromJSON(,)6$fToJSONPackageLocation$fFromJSON(,)7$fToJSONPackageEntry$fHasEnvConfigEnvConfig$fHasStackRootEnvConfig$fHasGHCVariantEnvConfig$fHasPlatformEnvConfig$fHasConfigEnvConfig$fHasBuildConfigEnvConfig$fFromJSONIndexName$fToJSONIndexName$fFromJSON(,)8haskellModuleExtsbuiltFileFromDirconfiguredFileFromDirbuiltConfigFileFromDirdefaultShakeThreads userDocsDirobjectInterfaceDirbuildCacheFiletestSuccessFile testBuiltFilebenchBuiltFileconfigCacheFileconfigCabalMod hpcDirFromDirhpcRelativeDirdistDirFromDir templatesDirdistRelativeDir rawGithubUrlprojectDockerSandboxDirimageStagingDir stackProgName stackDotYamlstackRootEnvVarwiredInPackagescabalPackageNameimplicitGlobalDirdotHpcglobalConfigPath HasSticky getStickyStickyunStickyHasSupportsUnicodegetSupportsUnicode HasReExec getReExec HasTerminal getTerminal HasLogLevel getLogLevelEnv envConfig envLogLevel envTerminal envReExec envManager envStickyenvSupportsUnicode$fHasStickyEnv$fHasSupportsUnicodeEnv$fHasReExecEnv$fHasTerminalEnv$fHasLogLevelLogLevel$fHasLogLevelEnv$fHasHttpManagerEnv$fHasEnvConfigEnv$fHasBuildConfigEnv$fHasConfigEnv$fHasGHCVariantEnv$fHasPlatformEnv$fHasStackRootEnv StackLoggingTStackTrunStackTGlobal runStackTrunStackLoggingTGlobalrunStackLoggingT newTLSManager logSticky logStickyDoneDockerImageLastUsedDockerImageProjectIdupdateDockerImageLastUsedgetDockerImagesLastUsedpruneDockerImagesLastUsed DotCabalPathDotCabalModulePathDotCabalMainPathDotCabalFilePathDotCabalCFilePathDotCabalDescriptorDotCabalModule DotCabalMain DotCabalFile DotCabalCFileModTime FileCacheInfo fciModTimefciSizefciHashInstallLocationSnapLocalNamedComponentCLibCExeCTestCBench LocalPackage lpPackage lpTestDeps lpBenchDepslpExeComponents lpTestBenchlpDir lpCabalFile lpDirtyFileslpNewBuildCachelpFiles lpComponentsLocalPackageTB lptbPackage lptbTests lptbBenchesPackageInstallInfo piiVersion piiLocation PackageSourcePSLocal PSUpstream SourceMap PackageConfigpackageConfigEnableTestspackageConfigEnableBenchmarkspackageConfigFlagspackageConfigCompilerVersionpackageConfigPlatformPackageWarningUnlistedModulesWarningGetPackageFilesgetPackageFiles CabalFileTypeAllFilesModulesGetPackageOptsgetPackageOptsPackage packageNamepackageVersion packageFiles packageDeps packageToolspackageAllDeps packageFlagspackageHasLibrary packageTestspackageBenchmarks packageExes packageOptspackageHasExposedModulespackageSimpleTypepackageDefinedFlagsPackageExceptionPackageInvalidCabalFilePackageNoCabalFileFoundPackageMultipleCabalFilesFoundMismatchedCabalNamelpWantedrenderComponentdotCabalModule dotCabalMaindotCabalModulePathdotCabalMainPathdotCabalCFilePathdotCabalGetPath$fHasSemanticVersionModTime$fHasStructuralInfoModTime$fNFDataFileCacheInfo $fHasStructuralInfoFileCacheInfo$fBinaryFileCacheInfo$fMonoidInstallLocation!$fPackageInstallInfoPackageSource $fEqPackage $fOrdPackage$fShowPackageWarning$fShowGetPackageFiles$fShowGetPackageOpts$fShowPackageException$fExceptionPackageExceptionPrecompiledCache pcLibrarypcExes ConfigureOptscoDirscoNoDirs InstalledLibrary ExecutableBaseConfigOpts bcoSnapDB bcoLocalDBbcoSnapInstallRootbcoLocalInstallRoot bcoBuildOptsPlan planTasks planFinalsplanUnregisterLocalplanInstallExesTaskTypeTTLocal TTUpstreamTaskConfigOpts tcoMissingtcoOptsTask taskProvidestaskTypetaskConfigOpts taskPresent ConfigCacheconfigCacheOptsconfigCacheDepsconfigCacheComponentsconfigCacheHaddock FileWatchOpts NoFileWatch FileWatch FileWatchPoll BenchmarkOptsbeoAdditionalArgs beoDisableRunTestOpts toRerunTeststoAdditionalArgs toCoverage toDisableRun BuildOpts boptsTargetsboptsLibProfileboptsExeProfile boptsHaddockboptsHaddockDeps boptsDryrunboptsGhcOptions boptsFlagsboptsInstallExes boptsPreFetchboptsBuildSubsetboptsFileWatchboptsKeepGoingboptsForceDirty boptsTests boptsTestOptsboptsBenchmarksboptsBenchmarkOpts boptsExecboptsOnlyConfigureboptsReconfigureboptsCabalVerbose BuildSubsetBSAllBSOnlySnapshotBSOnlyDependencies BadDependencyNotInBuildPlanCouldn'tResolveItsDependenciesDependencyMismatchConstructPlanExceptionDependencyCycleDetectedDependencyPlanFailuresUnknownPackage UnusedFlags UFNoPackageUFFlagsNotDefined UFSnapshot FlagSource FSCommandLine FSStackYamlStackBuildExceptionCouldn'tFindPkgIdCompilerVersionMismatchCouldn'tParseTargetsUnknownTargetsTestSuiteFailureConstructPlanExceptionsCabalExitedUnsuccessfullyExecutionFailureLocalPackageDoesn'tMatchTargetNoSetupHsFoundInvalidFlagSpecificationTargetParseExceptionDuplicateLocalPackageNamesdefaultBuildOpts taskLocation configureOptswantedLocalPackagesmodTime getGlobalDBcreateDatabase ghcPkgExeName findGhcPkgId findGhcPkgKeyfindGhcPkgHaddockHtmlfindTransitiveGhcPkgDependsfindGhcPkgDependsunregisterGhcPkgIdgetCabalPkgVer listGhcPkgDbsmkGhcPackagePathpackageIdentifierreadPackageUnresolvedreadPackageUnresolvedBS readPackage readPackageBSreadPackageDirprintCabalFileWarningcheckCabalFileNameresolvePackage autogenDirpackageDependenciespackageToolDependenciesresolvePackageDescriptiongetCabalFileName buildLogPathPackageDownloadpdSHA512pdUrlpdSize PackageCachepcOffsetpcSize pcDownloadupdateAllIndicesgetPackageCachesResolvedPackagerpCacherpIndex fetchPackagesunpackPackagesunpackPackageIdentsresolvePackagesresolvePackagesAllowMissingwithCabalFileswithCabalLoader SnapshotssnapshotsNightly snapshotsLtsToolMapBuildPlanExceptionUnknownPackagesSnapshotNotFoundresolveBuildPlan getToolMap getSnapshotsloadMiniBuildPlan findBuildPlanshadowMiniBuildPlanparseCustomMiniBuildPlan CleanupActionCleanupInteractiveCleanupImmediate CleanupDryRun CleanupOptsdcAction"dcRemoveKnownImagesLastUsedDaysAgo#dcRemoveUnknownImagesCreatedDaysAgo$dcRemoveDanglingImagesCreatedDaysAgo'dcRemoveStoppedContainersCreatedDaysAgo'dcRemoveRunningContainersCreatedDaysAgoreexecWithOptionalContainerexecWithOptionalContainerpreventInContainercleanuppullresetdockerOptsFromMonoid dockerCmdNamedockerPullCmdNamedockerCleanupCmdName reExecArgNamestageContainerImageArtifactscreateContainerImageFromStage imgCmdNameimgDockerCmdName imgOptsParserimgDockerOptsParserimgOptsFromMonoidimgDockerOptsFromMonoid NeedTargetsAllowNoTargets SimpleTarget STUnknown STNonLocal STLocalComps STLocalAllLocalPackageView lpvVersionlpvRoot lpvCabalFP lpvComponents lpvExtraDep RawTargetRTPackageComponent RTComponent RTPackageRTPackageIdentifierUnresolvedComponentResolvedComponent ComponentNameparseRawTarget parseTargetsdefaultEnvSettingsplainEnvSettingsexec cabalSolvergetCompilerVersionsolveExtraDepsMethodMethodSnapshotMethodResolver MethodSolverSnapPrefPrefNonePrefLTS PrefNightlyInitOptsioMethodforceOverwriteincludeSubDirsfindCabalFiles initProjectmakeConcreteResolver MiniConfigloadMiniConfigresolvePackageEntrypackagesParserNewOptsnewOptsProjectNamenewOptsTemplatenewOptsNonceParamsnew listTemplates getTemplatesdefaultTemplateNamegenerateHpcReportgenerateHpcMarkupIndexUploadSettingsUploaderFromFileHackageCredsSource HackageCreds loadCreds saveCreds fromPromptfromFile fromMemory fromAnywhere mkUploaderupload uploadBytesdefaultUploadSettings setUploadUrl setGetManagersetCredsSource setSaveCreds SetupOptssoptsInstallIfMissingsoptsUseSystemsoptsWantedCompilersoptsCompilerChecksoptsStackYamlsoptsForceReinstallsoptsSanityChecksoptsSkipGhcCheck soptsSkipMsyssoptsUpgradeCabalsoptsResolveMissingGHCsoptsStackSetupYamlsoptsGHCBindistURLdefaultStackSetupYamlsetupEnv ensureGHCshouldHaddockPackageshouldHaddockDepscopyDepHaddocksgenerateLocalHaddockIndexgenerateDepsHaddockIndexgenerateSnapHaddockIndexbuildCacheTimesgetInstalledExesmarkExeInstalledmarkExeNotInstalledtryGetBuildCachetryGetConfigCachetryGetCabalModwriteBuildCachewriteConfigCache writeCabalMod deleteCachestryGetFlagCachewriteFlagCachesetTestSuccessunsetTestSuccesscheckTestSuccess setTestBuiltunsetTestBuiltcheckTestBuilt setBenchBuiltunsetBenchBuiltcheckBenchBuiltwritePrecompiledCachereadPrecompiledCache loadSourceMapparseTargetsFromBuildOptsgetLocalPackageViewsloadLocalPackage localFlagsaddUnlistedToBuildCacheLine DumpPackage dpGhcPkgIddpPackageIdent dpLibDirs dpLibrariesdpHasExposedModules dpDependsdpHaddockInterfaces dpProfiling dpHaddock dpIsExposedInstalledCacheEntryinstalledCacheProfilinginstalledCacheHaddockinstalledCacheIdentInstalledCache ghcPkgDumpnewInstalledCacheloadInstalledCachesaveInstalledCache pruneDeps sinkMatching addProfiling addHaddockconduitDumpPackage eachSectioneachPairGetInstalledOptsgetInstalledProfilinggetInstalledHaddock InstalledMap getInstalled constructPlan ExecuteEnvpreFetch printPlanwithExecuteEnv executePlanwithSingleContextbuildmkBaseConfigOptswithLoadPackagecleanDotOptsdotIncludeExternaldotIncludeBasedotDependencyDepthdotPrunedotlistDependencies pruneGraphresolveDependencies printGraph GhciPkgInfo ghciPkgName ghciPkgOpts ghciPkgDirghciPkgModulesghciPkgModFiles ghciPkgMainIsGhciOpts ghciTargetsghciArgsghciGhcCommandghciNoLoadModulesghciAdditionalPackages ghciMainIsghci ghciSetupideupgradegetSDistTarball argsArgument argsOption cmdOptionparseArgsFromString boolFlagsboolFlagsNoDefaultmaybeBoolFlagsenableDisableFlagsenableDisableFlagsNoDefaultextraHelpOption execExtraHelp textOption textArgumentCommandBuildTestHaddockBenchInstallbenchOptsParserbuildOptsParserconfigOptsParserdockerOptsParserdockerCleanupOptsParser dotOptsParserghciOptsParserexecOptsParserglobalOptsParserinitOptsParserlogLevelOptsParserabstractResolverOptsParsersolverOptsParsertestOptsParser newOptsParserpvpBoundsOptionmapMconta_LKCPrTJwOTOLk4OU37YmeN Data.Set.BaseSetmapM_filterM appending alternatingpured concating sinkCheckHash sinkHashUsinghashChecksToZipSinkVerifyFileException WrongFileSizedisplayByteStringdisplayCheckHexDigestassertLengthSink$fExceptionVerifyFileException$$fExceptionVerifiedDownloadException$fShowVerifiedDownloadException$fIsStringCheckHexDigestrunOncehasUpperhasLower mapMaybeMbase Data.MaybemapMaybe fileWatchConfEditorExceptionPagerException pageWriterpageByteString pageBuilderpageFile pageStringeditFileeditReaderWritereditByteString editStringorElseEditorNotFoundEditorExitFailure PagerNotFoundPagerExitFailure$fExceptionEditorException$fShowEditorException$fExceptionPagerException$fShowPagerExceptioncatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameGHC.BaseNothingpath_BMpVqxC01XN5OKbZst69w9Path parseAbsFile parseAbsDircollapseFilePathresolveCheckParseignoreDoesNotExist$fShowResolveException$fExceptionResolveException System.ExitexitWithbytes_6elQVSg5cWdFrvRnfxTUrHData.ByteString.InternalsinkProcessStderrStdout makeAbsolutestripTrailingSlashT$fExceptionReadProcessException$fShowReadProcessException findFileUp findDirUp findPathUp findFilestaggedEncodeFiletaggedDecodeOrLoaddecodeFileOrFailDeepDecodeFileFailure BinarySchema$fExceptionDecodeFileFailure$fShowDecodeFileFailurebinar_IvYoLp9H6Xy3zEH13MmZwdData.Binary.ClassBinaryputgetbinar_L2c8rWEjOvY3gT7AvEFKetData.Binary.TaggedHasStructuralInfoHasSemanticVersiondeeps_LbCWUlehDDeLxurARKDH5oControl.DeepSeqNFDatarnf JSONWarning WarningParserWarningParserMonoid.:.:?..:..:?..!= tellJSONFieldwithObjectWarningsaeson_DIEa3Sufx1r590sbWNooBSData.Aeson.Types.Instances withObjectunWarningParserData.Aeson.Types.InternalParserlogJSONWarningsjsonSubWarningsjsonSubWarningsTjsonSubWarningsTTJSONUnrecognizedFieldswpmExpectedFields wpmWarnings$fShowJSONWarning$fMonoidWarningParserMonoid Data.AesoneitherDecodeStrict' eitherDecode'eitherDecodeStrict eitherDecode decodeStrict'decode' decodeStrictdecodeData.Aeson.Parser.Internaljson'jsonData.Aeson.Encode.ByteStringencode.!=fromJSON.=withBoolwithScientific withNumber withArraywithTextData.Aeson.Types.ClassgenericParseJSON genericToJSONgToJSONGToJSON gParseJSON GFromJSONtoJSONToJSON parseJSONFromJSONobjectSuccessErrorResultObjectArrayNullBoolNumberStringValuefromDotNetTime DotNetTimedownload redownloadghc-prim GHC.TypesTrueFalse downloadJSONliftHTTPhttpc_LRBIPVbNK3xDKW9H8oNYUANetwork.HTTP.Client.TypesManagerDownloadExceptionDownloadJSONExceptionRedownloadFailed$fExceptionDownloadExceptionmtl_KMpng31YRYc5JfMWFZ3FCUControl.Monad.Reader.Class MonadReaderaskNetwork.HTTP.Client.RequestparseUrlgetHttpManagerHasHttpManager $fFromJSONMap $fToJSONMap$fFromJSONPackageName$fToJSONPackageName$fHasStructuralInfoPackageName$fShowPackageName$fLiftPackageName$fShowPackageNameParseFail$fExceptionPackageNameParseFail$fFromJSONFlagName$fShowFlagName$fLiftFlagName $fOrdFlagName $fEqFlagName$fHasStructuralInfoFlagName$fShowFlagNameParseFail$fExceptionFlagNameParseFailGhcPkgIdParseFail$fToJSONGhcPkgId$fFromJSONGhcPkgId$fShowGhcPkgId$fHasStructuralInfoGhcPkgId$fNFDataGhcPkgId$fBinaryGhcPkgId$fHashableGhcPkgId$fExceptionGhcPkgIdParseFail$fShowGhcPkgIdParseFailVersionParseFail unVersion$fFromJSONVersionCheck$fToJSONVersionCheck$fFromJSONVersion$fToJSONVersion $fShowVersion $fLiftVersion$fHashableVersion$fHasStructuralInfoVersion$fShowVersionParseFail$fExceptionVersionParseFailPackageIdentifierParseFail$fFromJSONPackageIdentifier$fToJSONPackageIdentifier$fShowPackageIdentifier$$fHasStructuralInfoPackageIdentifier$fBinaryPackageIdentifier$fHashablePackageIdentifier$fNFDataPackageIdentifier%$fExceptionPackageIdentifierParseFail $fShowPackageIdentifierParseFailBuildPlanTypesExceptionParseSnapNameExceptionParseFailedExceptiondisplay simpleParsetestStateToText compToText$fNFDataMiniPackageInfo"$fHasStructuralInfoMiniPackageInfo$fBinaryMiniPackageInfo!$fHasSemanticVersionMiniBuildPlan $fHasStructuralInfoMiniBuildPlan$fNFDataMiniBuildPlan$fBinaryMiniBuildPlan$fFromJSONComponent$fToJSONComponent$fFromJSONDepInfo$fToJSONDepInfo$fMonoidDepInfo$fFromJSONSimpleDesc$fToJSONSimpleDesc$fMonoidSimpleDesc$fFromJSONExeName$fToJSONExeName$fHasStructuralInfoExeName$fFromJSONSystemInfo$fToJSONSystemInfo$fFromJSONTestState$fToJSONTestState$fFromJSONPackageConstraints$fToJSONPackageConstraints$fShowBuildPlanTypesException"$fExceptionBuildPlanTypesException$fFromJSONPackagePlan$fToJSONPackagePlan$fFromJSONBuildPlan$fToJSONBuildPlanSystem.EnvironmentwithArgsgetInterpreterArgssinkInterpreterArgshaskellFileExtshaskellPreprocessorExtsbuiltConfigRelativeFile LoggingEnvgetCanUseUnicodereplaceUnicode loggerFunc withSticky$fMonadLoggerStackLoggingT$fMonadLoggerStackTunStackLoggingT lenvLogLevel lenvTerminal lenvReExec lenvManager lenvStickylenvSupportsUnicodeunStackTstickyLoggerFunc$fHasSupportsUnicodeLoggingEnv$fHasReExecLoggingEnv$fHasTerminalLoggingEnv$fHasHttpManagerLoggingEnv$fHasLogLevelLoggingEnv$fHasStickyLoggingEnv $fMonadTransControlStackLoggingT $fMonadBaseControlbStackLoggingT$fMonadTransControlStackT$fMonadBaseControlbStackT withGlobalDBDockerImageProjectdockerImageProjectImageHashdockerImageProjectProjectPathdockerImageProjectLastUsedTimeDockerImageProjectPathKeyDockerImageProjectKeyunDockerImageProjectKeyDockerImageProjectImageHashDockerImageProjectProjectPathDockerImageProjectLastUsedTime migrateTables-TFCo:R:PersistEntityBackendDockerImageProject PkgDepsOracle LatestVersionconfigureOptsNoDirPkgDepsdefaultTestOptsdefaultBenchmarkOptsconfigureOptsDirs$fNFDataPrecompiledCache#$fHasStructuralInfoPrecompiledCache$$fHasSemanticVersionPrecompiledCache$fBinaryPrecompiledCache$fNFDataConfigureOpts $fHasStructuralInfoConfigureOpts$fBinaryConfigureOpts$fShowTaskConfigOpts$fHasSemanticVersionConfigCache$fHasStructuralInfoConfigCache$fNFDataConfigCache$fBinaryConfigCache$fShowConstructPlanException$fExceptionStackBuildException$fShowStackBuildExceptionghcPkgpackageDbFlagsfindGhcPkgFieldfindGhcPkgVersiontoFilePathNoTrailingSlashgeneratePkgDescOptsgenerateBuildInfoOptsmakeObjectFilePathFromCbuildDirgetBuildComponentDirpackageDescTools allBuildInfo'packageDescModulesAndFilesresolveGlobFilesmatchDirFileGlob_benchmarkFiles testFilesexecutableFiles libraryFilesbuildOtherSourcestargetJsSourcesflagMapmkResolveConditionsresolveConditionsdepNamedepRangeresolveFilesAndDepsgetDependencies parseDumpHI resolveFiles findCandidate warnMultiplelogPossibilitiesexcep_8GsEeHgaIks3pVGk6GaELJControl.Monad.CatchthrowMresolveFileOrWarnresolveDirOrWarnResolveConditionsrcFlagsrcCompilerVersionrcOSrcArch resolveOrWarn populateCache requireIndex updateIndexupdateIndexGitupdateIndexHTTPisGitInstalled deleteCacheentrySizeInBlocksPackageIndexExceptionGitNotAvailableMissingRequiredHashesPackageCacheMap$fFromJSONPackageDownload$fNFDataPackageDownload"$fHasStructuralInfoPackageDownload$fBinaryPackageDownload$fShowPackageIndexException $fExceptionPackageIndexException#$fHasSemanticVersionPackageCacheMap"$fHasStructuralInfoPackageCacheMap$fHasStructuralInfoPackageCache$fNFDataPackageCache$fBinaryPackageCachetfCabal getToFetchfetchPackages' PackageCaches ToFetchResult tfrToFetchtfrAlreadyUnpackedToFetch tfTarball tfDestDirtfUrltfSizetfSHA512FetchExceptionCouldn'tReadIndexTarballCouldn'tReadPackageTarballUnpackDirectoryAlreadyExistsCouldNotParsePackageSelectorsUnknownPackageNamesUnknownPackageIdentifierslookupPackageIdentifierExactfuzzyLookupCandidatesparMapM_$fShowFetchException$fExceptionFetchException rsVisitedaddDepsgetDepsbuildPlanFixes loadBuildPlancheckBuildPlan checkDepsDistribution.PackageDescriptionGenericPackageDescriptionCustomSnapshotcsCompilerVersion csPackagescsFlagsDepError deVersion deNeededBy DepErrors ResolveState rsUnknown rsShadowed rsToInstallrsUsedBytoMiniBuildPlandisplayDepErrors$fFromJSONCustomSnapshot$fMonoidDepError$fFromJSONSnapshots$fShowBuildPlanException$fExceptionBuildPlanExceptionStackDockerExceptionDockerMustBeEnabledExceptionOnlyOnHostExceptionInspectFailedExceptionNotPulledExceptionInvalidCleanupCommandExceptionInvalidImagesOutputExceptionInvalidPSOutputExceptionInvalidInspectOutputExceptionPullFailedExceptionDockerTooOldException DockerVersionProhibitedExceptionInvalidVersionOutputExceptionHostStackTooOldExceptionContainerStackTooOldExceptionResolverNotSupportedException#CannotDetermineProjectRootExceptionDockerNotInstalledExceptionInvalidDatabasePathException ImageConfigInspectgetInContainerrunContainerAndExitinspectinspects pullImagecheckDockerVersionremoveDirectoryContentsreadDockerProcesssandboxedHomeSubdirectories homeDirName decodeUtf8concatTfromMaybeProjectRootsandboxIDEnvVarinContainerEnvVar$fShowStackDockerException$fExceptionStackDockerException$fFromJSONImageConfig$fFromJSONInspectMicEnviiConfig iiCreatediiId iiVirtualSizeStackImageExceptionstageExesInDirsyncAddContentToDir imageNamecreateDockerImageextendDockerImageWithEntrypoint(StackImageDockerBaseUnspecifiedExceptionAssemble$fShowStackImageException$fExceptionStackImageExceptionparseRawTargetDirs RawTargetType HasIdentsNoIdentsRawInput unRawInput resolveIdentsresolveRawTarget isCompNamedsimplifyTargetsgetCabalConfig ignoredDirsrenderStackYamlgetDefaultResolver getSnapshots'getRecommendedSnapshotsgetLatestResolverdefaultStackGlobalConfiggetDefaultGHCVariantgetWindowsProgsDirloadBuildConfigresolvePackageLocationdetermineStackRootgetExtraConfigsloadYamlgetProjectConfigloadProjectConfigconfigFromConfigMonoid$fHasGHCVariantMiniConfig$fHasPlatformMiniConfig$fHasHttpManagerMiniConfig$fHasStackRootMiniConfig$fHasConfigMiniConfig NewException loadTemplate applyTemplatewriteTemplateFilesrunTemplateInitsparseTemplateSetdefaultTemplateUrldefaultTemplatesListFailedToLoadTemplateFailedToDownloadTemplateFailedToDownloadTemplatesBadTemplatesResponseBadTemplatesJSON AlreadyExistsMissingParameters$fShowNewException$fExceptionNewException acRemainingExecuteExceptionInconsistentDependencies ExecuteState esActions esExceptions esInAction esCompleted esFinalLock esKeepGoing ActionContextActionactionId actionDepsactionDoActionId ActionTypeATBuildATFinal runActions runActions'$fShowExecuteException$fExceptionExecuteException pathToHtmlpromptPassword usUploadUrl usGetManager usCredsSource usSaveCredsupload_HackageCredsExceptionsCouldn'tParseJSONgetCreds hcUsername hcPassword credsFile printBodyhandleIO!$fExceptionHackageCredsExceptions$fFromJSONHackageCreds$fToJSONHackageCreds addIncludeLib upgradeCabalgetSystemCompiler getSetupInfo extraDirssetup7zbytesfmt sanityCheckgetUtf8LocaleVarsCheckDependency ArchiveTypeTarBz2TarXzSevenZ ExtraDirsedBins edIncludeedLibSetupExceptionUnsupportedSetupComboMissingDependenciesUnknownCompilerVersion UnknownOSKeyGHCSanityCheckCompileFailedWantedMustBeGHCRequireCustomGHCVariantProblemWhileDecompressingSetupInfoMissingSevenz markInstalledunmarkInstalled listInstalled installDirgetInstalledTooldownloadAndInstallTooldownloadAndInstallGHC getGhcKeygetOSKeydownloadFromInfoinstallGHCPosixcheckDependencyinstallGHCWindowsinstallMsys2WindowschattyDownloadchunksOverTimeremoveHaskellEnvVars$fAlternativeCheckDependency$fApplicativeCheckDependency$fMonoidExtraDirs$fShowSetupException$fExceptionSetupExceptiongenerateHaddockIndexhaddockIndexFile localDocDir snapDocDir BuildCacheexeInstalledDir tryGetCache writeCacheprecompiledCacheFile flagCacheFile$fNFDataBuildCache$fHasSemanticVersionBuildCache$fHasStructuralInfoBuildCache$fBinaryBuildCacheconvertSnapshotToExtracheckDuplicateNamescheckFlagsUsedextendExtraDepscheckBuildCachegetPackageFilesSimplegetModTimeMaybecalcFcisplitComponents takeWhileCPackageDumpExceptionMissingSingleFieldCouldn'tParseFieldInstalledCacheInner isProfiling stripPrefixBS stripSuffixBS$fShowPackageDumpException$fExceptionPackageDumpException$fNFDataInstalledCacheEntry&$fHasStructuralInfoInstalledCacheEntry$fBinaryInstalledCacheEntry'$fHasSemanticVersionInstalledCacheInner&$fHasStructuralInfoInstalledCacheInner loadDatabase isAllowed LoadHelperlhIdlhDepslhPairwInstallwDirtywDepsmkUnregisterLocalpackageDepsWithTools stripLocalsCtxmbpbaseConfigOpts loadPackage combinedMaptoolToPackages ctxEnvConfig callStack extraToBuildlatestVersionswantedWwFinals AddDepRes ADRToInstallADRFound CombinedMap PackageInfoPIOnlyInstalled PIOnlySourcePIBothcombineSourceInstalled combineMapaddFinaladdDepaddDep'addDep''tellExecutablestellExecutablesUpstreamtellExecutablesPackageinstallPackagecheckNeedInstalladdPackageDepscheckDirtinessdescribeConfigDiffpsDirtypsWanted psPackage stripNonDeps markAsDep$fHasEnvConfigCtx$fHasBuildConfigCtx$fHasConfigCtx$fHasGHCVariantCtx$fHasPlatformCtx$fHasStackRootCtx $fMonoidW eeSetupHs eeSetupExe displayTask getSetupExewindowsRenameCopy executePlan'getConfigCache ensureConfig depsPresentprintBuildOutput getSetupHsaddGlobalPackages eeEnvOverrideeeConfigureLock eeInstallLock eeBuildOptseeBaseConfigOpts eeGhcPkgIds eeTempDir eeCabalPkgVer eeTotalWantedeeWantedeeLocals eeSourceMap eeGlobalDBeeGlobalPackages toActions announceTask singleBuild singleTest singleBenchextraBuildOptionsallLocalcreateDependencyGraphpruneUnreachablecreateDepLoaderlocalDependenciesprintLocalNodes printLeaves printEdges printEdgenodeName printLeaf isWiredInlibVersionFromInstalledfigureOutMainFilemakeGhciPkgInfoinitialRequestGHC.IOFilePath getCabalLbs gtraverseTgetSDistFileListreadLocalPackagenormalizeTarballPaths normalizePath dirsFromFilesoptpa_LCepxCGhyqd0e6cwQ0HMY5Options.Applicative.Builder abortOptionenableDisableFlagsNoDefault'readFlagghcVariantParseraddCoverageFlagsreadAbstractResolver