cfo       !"#$%&'()* + , - . / 0 1 23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW X Y Z [ \ ] ^ _ `abcdefghi j k l m n o pqrstuvwxyz{|}~      !"#$%&'()*+,-./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&uvwxyz{|}~''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((( ( ( ( ( ((((((((((((((((((( (!("(#($(%(&('((()(*(+(,(-(.(/(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+{+|+}+~++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---...........................////////////////////////////////////// / / / / /////////////////// /!/"/#/$/%/&/'/(/)/*/+/,/-/.///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/S0T0U1V1W1X1Y1Z1[2\2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s3t3u3v3w3x3y3z3{3|3}3~3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 3 3 3 3 3333333333333333333 3!3"3#4$4%4&5'5(5)5*5+5,5-5.5/50515253545556575859:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl6m6n6o6p6q7r7s7t7u7v7w7x7y7z7{7|7}7~77777777777777777777      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv8w8x8y8z8{8|8}8~9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 9 9 9 9 9999999999999999999 9!9":#:$:%:&:':(:):*:+:,:-:.:/: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:{:|:}:~::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=====================>?@ABBBBBCCCCCCCCCC C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D !D "D #D $D %D &D 'D (D )D *D +D ,E -E .E /E 0E 1E 2F 3F 4F 5F 6G 7G 8G 9G :G ;G <G =G >G ?G @G AG BG CG DG EG FG GH HH IH JH KH LH MH NH OH PI QI RI SI TI UI VI 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 { | } ~                  J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L M M M M M M N O O O O O O O O O O O O O O O O O O O O O O O O O O O O O P P P P P P        Q Q Q R R R R R R S S S S S S S S S S S !S "S #T $T %T &T 'T (T )T *T +T ,T -T .T /T 0T 1T 2T 3T 4T 5U 6U 7U 8U 9U :V ;V <V =V >V ?V @V AV BV CV DV EV FV GV HV IV JV KV LV MV NV OV PV QV RW SW TW UW VW WW XW YW ZW [W \W ]W ^W _W `W aW bW cW dW eW fW gW hW iW jW kW lW mW nW oX pX qX rX sX tY uZ vZ w[ x[ y[ z[ {[ |[ }[ ~[ \ \ \ \ \ \ \ \ ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ _ _ _ _ _ _ _ _ _ _ _ _ _ ` ` ` ` ` a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a b b b b b b b b b b b b c c c c c c c c c c d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d e e e e e e f f f f f f f f f g g g g g !g "g #g $h %h &h 'h (h )h *h +h ,h -h .h /i 0i 1i 2i 3i 4i 5i 6i 7i 8i 9i :i ;i <i =i >i ?i @i Ai Bi Ci Di Ei Fi Gj Hj Ij Jj Kj Lj Mj Nj Oj Pj Qj Rk Sk Tl Ul Vl Wl Xl Yl Zl [l \l ]l ^l _l `l am bn co do eo fp gq hq iq jq kr lr mr nr or pr qr rr sr tr ur vr wr xr ys zt {t |u }v ~v v w w w x y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y z { { { { { { { { { { { { { { { { { { { { { { { { { { | |~}None<QV! Initialization6The proxy must be specified at initialization because  http-client. does not allow to change the proxy once the   is created.  Create an   value from a preexisting  . Wrap custom exceptions*NOTE: The only other exception defined in  http-client is TimeoutTriggered but it is currently disabled 2https://github.com/snoyberg/http-client/issues/116 Set request headers Extract the response headers  Safen*+,-./01*+,-./10NoneK 4.The Reader+IO monad. This is different from a   because:NIt's not a transformer, it hardcodes IO for simpler usage and error messages.Instances of typeclasses like  b are implemented using classes defined on the environment, instead of using an underlying monad.7Avoid orphan messes< Applicative  .= =     <>Monadic  .? ?     >@(Strip trailing carriage return from TextD Path versionERWrite 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 F.FyThis will print out the given message with a newline and disable any further stickiness of the line until a new call to E happens.+It might be better at some point to have a  runStickyA function that encompasses the logSticky->logStickyDone pairing.                           ! " # $ % & ' ( ) * + , - . / 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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@A23456789:;<=>?@ABCDEFG:"ABC789D;<>=?@EF456G2323456789 None·W8Allows adjust global options depending on their context Note: This was being used to remove ambibuity between the local and global implementation of stack init --resolver option. Now that stack init has no local --resolver this is not being used anymore but the code is kept for any similar future use cases.X%Global options before subcommand nameY-Global options following any other subcommand\9If argument is True, hides the option from usage and helpW[ZYX\\WXYZ[WXYZ[ Noneð_Parser for a logging level.__None BCMake sure that a filename with spaces in it gets the proper quotes.`abcdef`abcdefCDEF`GH NoneNiPrint an exception to stderrI(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.ijkjki None-٢l9Find the location of a file matching the given predicate.m>Find the location of a directory matching the given predicate.J9Find the location of a path matching the given predicate.n5Find files matching predicate below a root directory.qNOTE: this skips symbolic directory links, to avoid loops. This may not make sense for all uses of file finding.VTODO: write one of these that traverses symbolic links but efficiently ignores loops.ofindInParents f path applies f to path and its Ks until it finds a  s or reaches the 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.JChoose path type from pair. Start here.Predicate to match the path.#Do not ascend above this directory.Absolute path.nRoot directory to begin with.Predicate to match files.,Predicate for which directories to traverse.List of matching files.lmnolmnoNone% p3Convert to FilePath but don't add a trailing slash.qNCollapse intermediate "." and ".." directories from path, then parse it with L0. (probably should be moved to the Path module)rNCollapse intermediate "." and ".." directories from path, then parse it with M0. (probably should be moved to the Path module)sAdd a relative FilePath to the end of a Path We can't parse the FilePath first because we need to account for ".." in the FilePath (#2895)N;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"(adapted from Text.Pandoc.Shared)tDrop the root (either / on POSIX or C:\, D:\, etc. on Windows).uIf given file in  q does not exist, ensure we have  r*. This is to be used in conjunction with O and P.Previously the idiom  forgivingAbsence (relsoveFile &)" alone was used, which relied on Q throwing Rm when path does not exist. As it turns out, this behavior is actually not intentional and unreliable, see  .https://github.com/haskell/directory/issues/44. This was fixed  in version 1.2.3.0 of  directoryg package (now it never throws). To make it work with all versions, we need to use the following idiom: 6forgivingAbsence (resolveFile &) >>= rejectMissingFilevSee u.w7Convert to a lazy ByteString using toFilePath and UTF8.x2Convert to a ByteString using toFilePath and UTF8. pqrstuvwxyz ptqrsuvxwyzNone{2Generate and execute a complicated options parser.|(Add a command to the options dispatcher.}@Add a command that takes sub-commands to the options dispatcher.S(Add a command to the options dispatcher.~&Generate a complicated options parser.TSubparser with --helpM argument. Borrowed with slight modification from Options.Applicative.Extra.UNon-hidden help option.{ numeric versionversion string hpack numeric version, as stringheaderTprogram description (displayed between usage and options listing in the help output)footercommon settings%optional handler for parser failure; V is called by defaultcommands (use |)|command stringtitle of commandfooter of command help2constructor to wrap up command in common data type common parsercommand parser}command stringtitle of commandfooter of command help common parsersub-commands (use |)Scommand stringtitle of commandfooter of command help2constructor to wrap up command in common data type common parsercommand parser~metavar for the sub-commandcommon settingscommands (use |){|}~|}{~None"#V Enable/disable flags for a  e.Enable/disable flags for a  e1, without a default case (to allow chaining with  ).Enable/disable flags for a ( q  e).Like , but parsing a  ."Enable/disable flags for any type.MEnable/disable flags for any type, without a default (to allow chaining with  ) Show an extra help option (e.g.  --docker-help shows help for all  --docker* args).'To actually have that help appear, use " before executing the main parser.<Display extra help if extra help option passed in arguments.GSince optparse-applicative doesn't allow an arbitrary IO action for an WS, this was the best way I found that doesn't require manually formatting the help.X, specialized to  .Y, specialized to  .Like  , but returning a  .Like Z, but accepting any  E e on the  . Default value Flag name Help suffix Flag name Help suffix Flag name Help suffix Default value Enabled valueDisabled valueName Help suffix Enabled valueDisabled valueName Help suffix Hide from the brief description?Program name, e.g. "stack"Option glob expression, e.g.  "docker*"Help option name, e.g.  "docker-help"Command line argumentsExtra help option name, e.g.  "docker-help"&Option parser for the relevant commandOption descriptionNone Parser for  solverCmdNone %+1<V[Write to the given file.\Read 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.None 9None"Concatenate two parsers.Alternative parsers.Pure something.#Concatting the result of an action.None%#Mode for parsing escape characters.Parse arguments using . Parse using  from a string.pA basic argument parser. It supports space-separated text, and string quotation with identity escaping: x -> x.None*F3An 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"None6N3Warning output from .]Monoid used by ' to track expected fields and warnings.:JSON parser that warns about unexpected fields in objects.Extends .: warning to include field name.Extends .:? warning to include field name. version of .:. version of .:?. version of .!=.ITell warning parser about an expected field, so it doesn't warn about it. version of ^. Convert a  to a _.Log JSON warnings. Handle warnings in a sub-object.Handle warnings in a  Traversable of sub-objects.Handle warnings in a Maybe Traversable of sub-objects.`abcdefghijklmnopqrstuvwxyz{|}~^]None&'168V8FYeah, it looks terrible to use a list here, but fusion should kick in9May throw a runtime exception if invariants are violated!None experimentalPOSIXNone1;=- Exceptions#Handy wrapper for orphan instances.5The GPG fingerprint.6A GPG signature. -./012345678 6758-./01234-./01234567# GPG Functions(c) FPComplete.com, 2015BSD3!Tim Dysinger <tim@fpcomplete.com> experimentalPOSIXNoneQVG)Sign a file path with GPG, returning the  Signature.H Verify the  Signature of a file path returning the  Fingerprint.Try to execute gpg2 but fallback to  (as a backup)`man gpg-agent` shows that you need GPG_TTY environment variable set to properly deal with interactions with gpg-agent. (Doesn't apply to Windows though)GHGH$None%Kj N"an absolute path on the filesystemOJa relative path on the filesystem, or relative to the template repositoryP a full URLQA template name.S9An argument which accepts a template name of the format  foo.hsfiles or foo, ultimately normalized to foo.TAn argument which accepts a  key:value pair for specifying parameters.U$Parse a template name from a string.VMake a template name.W/Get a text representation of the template name.XGet the path of the template.IJLKMPONQRSTUVWXQRMNOPYIJKLZSTUVWXIJKLMNOPQR%None6;=u dehgfijmlk ijklmndefghpodefghijklm&None;ttNone 16;=K|A package version.}0A Package upgrade; Latest or a specific version. A parse fail.(Attoparsec parser for a package version.1Convenient way to parse a package version from a  .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 presentlGiven a version range and a set of versions, find the latest version from the set that is within the range.7Get the next major version number for the given version+Get minor version (excludes any patchlevel)Current Stack version1Current Stack minor version (excludes patchlevel)uvwxyz{|}~|yz{uvwx}~uvwxyz{|}~'None-16KV+Information on the contents of a cabal fileTake the latest revision of the cabal file available. This isn't reproducible at all, but the running assumption (not necessarily true) is that cabal file revisions do not change semantics of the build.-Identify by contents of the cabal file itselfLIdentify by revision number, with 0 being the original and counting upward.TA SHA256 hash, stored in a static size for more efficient serialization with store.%A cryptographic hash of a Cabal file.A A combined with optionally specified Hackage cabal file revision.A pkg-ver combination.$Get the name part of the identifier.'Get the version part of the identifier. A parse fail. Generate a ) value from a base16-encoded SHA256 hash. Generate a # value from the contents of a file. Convert a # into a base16-encoded SHA256 hash. Convert a # into a base16-encoded SHA256 hash. Generate a ) value from a base16-encoded SHA256 hash. Convert a # into a base16-encoded SHA256 hash. Compute a $ value from a cabal file's contents.-Convert from a package identifier to a tuple.-Convert from a tuple to a package identifier.$A parser for a package-version pair.4Convenient way to parse a package identifier from a  .(Convenience function for parsing from a  .Parse a @Get a string representation of the package identifier; name-ver.eGet a string representation of the package identifier with revision; name-ver[@hashtype:hash[,size]].>Get a Text representation of the package identifier; name-ver.""(None-16;=K%Information on a single package indexSURL for the tarball or, in the case of Hackage Security, the root of the directory#URL prefix for downloading packagesXRequire that hashes and package size information be available for packages in this indexUnique name for a package index ZHackage Security provides a different JSON format, we'll have our own JSON parser for it.noffset in bytes into the 01-index.tar file for the .cabal file contents, and size in bytes of the .cabal fileCached information about packages in an index. We have a mapping from package name to a version map. Within the version map, we map from the version to information on an individual version. Each version has optional download information (about the package's tarball itself), and cabal file information. The cabal file information is a non-empty list of all cabal file revisions. Each file revision indicates the hash of the contents of the cabal file, and the offset into the index tarball.YIt's assumed that cabal files appear in the index tarball in the correct revision order.               )None16K;MCached information on whether a package has profiling libraries and haddocks.CLCached information on whether package have profiling libraries and haddocks. ;<=>?@ABCDE CDAB;<=>?@E;<=>?@ABCD*None"#1R#Does not include the current actionS*Actions which depend on the current action_threads$keep going after one task has failedrun final actions concurrently?progress updatedPQRSTUVWXYZ[\]^_[\]^YZPQRSTUVWX_PQRSTUVWXYZ[\]^+None -16;=FTh/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.kWhether the compiler version given is the wanted version (what the stack.yaml file, snapshot file, or --resolver argument request), or the actual installed GHC. Depending on the matching requirements, these values could be different.nVariety of compiler to use.hjikmlnopqrstuvwxyznopklmhij~}|{qrstuvwxyzhijklmnop,None&'+-13456;<=FTV^ =Most recent Nightly and newest LTS version per major release.8The name of an LTS Haskell or Stackage Nightly snapshot.[Either an actual resolver value, or an abstract description of one (e.g., latest nightly).EHow 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 Nightly.Require 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.NA custom resolver based on the given location (as a raw URL or filepath). If customContents is a Either Request FilePath, it represents the parsed location value (with filepaths resolved relative to the directory containing the file referring to the custom snapshot). Once it has been loaded from disk, it will be replaced with a  SnapshotHash- value, which is used to store cached files.Convert a Resolver into its TextJ representation for human presentation. When possible, you should prefer sdResolverNameF, as it will handle the human-friendly name inside a custom snapshot.Parse a Resolver from a Text Convert a % into its short representation, e.g. lts-2.8, nightly-2015-03-05.$Parse the short representation of a .GReturn the first 12 characters of the hash as a B64URL-encoded string. Return the raw bytes in the hash>Create a new SnapshotHash by SHA256 hashing the given contents/Create a new SnapshotHash from the given digest$directory config value was read from!!     -None- Parser for the resolver.None15Extensions 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. Name of the stack program, uppercased Name of the stack program.,The filename used for the stack config file.*Environment variable used to override the  '.stack-work' relative dir.*Environment variable used to override the  '~/.stack' location.&Option name for the global stack root.1Deprecated option name for the global stack root.Deprecated since stack-1.1.0.1TODO: Remove occurences of this variable and use / only after an appropriate deprecation period.DEnvironment variable used to indicate stack is running in container.Environment variable used to indicate stack is running in container. although we already have STACK_IN_NIX_EXTRA_ARGS that is set in the same conditions, it can happen that STACK_IN_NIX_EXTRA_ARGS is set to empty.+Just to avoid repetition and magic strings.LDeprecated implicit global project directory used when outside of a project.MImplicit global project directory used when outside of a project. Normally, getImplicitGlobalProjectDir should be used instead.&Deprecated default global config path.'Default global config path. Normally, getDefaultUserConfigPath should be used instead.?Deprecated default global config path. Note that this will be Nothing on Windows, which is by design.'Default global config path. Normally, getDefaultGlobalConfigPath1 should be used instead. Note that this will be Nothing on Windows, which is by design."Path where build plans are stored.7Path where binary caches of the build plans are stored.Environment variable that stores a variant to append to platform-specific directory names. Used to ensure incompatible binaries aren't shared between Docker builds and hostProvides --ghc-options for o&, and similarly, --ghcjs-options for p.JThe flag to pass to GHC when we want to force its output to be colorized.=The minimum allowed terminal width. Used for pretty-printing.=The maximum allowed terminal width. Used for pretty-printing.The default terminal width. Used for pretty-printing when we can't automatically detect it and when the user doesn't supply one. Stack root. Stack root. Stack root Stack root/None"#16;=r`"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.Installed version of docker* is out of range specified in config file.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.?Can't determine the project root (where to put docker sandbox).docker --version failed.-Using host stack-exe on unsupported platform. stack-exe option fails to parse.)Newtype for non-orphan FromJSON instance.'Options for Docker repository or image.Docker volume mount.Where to get the stack' executable to run in Docker containersDownload from official bindistHost's stack (linux-x86_64 only)Docker image's stack (versions must match)Executable at given pathqAn uninterpreted representation of docker options. Configurations may be "cascaded" using mappend (left-biased).,Should Docker be defaulted to enabled (does docker: section exist in the 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.1Location of container-compatible stack executable%Set in-container user to match host'sSee: (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 container LCreate 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.&1Location of container-compatible stack executable'%Set in-container user to match host's(.Require a version of Docker within this range.)Parse .*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.0Docker auto-pull argument name.1Docker detach argument name.2Docker run args argument name.3Docker mount argument name.4*Docker environment variable argument name.5$Docker container name argument name.6Docker persist argument name.7#Docker database path argument name.8#Docker database path argument name.9 Value for --docker-stack-exe=download: Value for --docker-stack-exe=host; Value for --docker-stack-exe=image<Docker set-user argument name=Docker require-version argument name>HArgument name used to pass docker entrypoint data (only used internally)?"Command-line argument for "docker"ACommand-line argument for  docker pull.BCommand-line argument for docker cleanup.CCommand-line option for --internal-re-exec-version.D#Platform that Docker containers runF For YAML.GShow instance.HFor optparse-applicative.I"Left-biased combine Docker optionsJParse VersionRange.K3Decode uninterpreted docker options from JSON/YAML.b     ('&%$#"! )*+,-./0123456789:;<=>?@ABCDk !"#$%&'(     KIE)HGFJML*+,-./0123456789:;<=>?@ABCD      !"#$%&'(0None{SParser to extract the stack command line embedded inside a comment after validating the placement and formatting rules for a valid interpreter specification.TxExtract stack arguments from a correctly placed and correctly formatted comment when it is being used as an interpreterSTST1None"#1} V=Nix can't be given packages and a shell file at the same timeW!Interprets NixOptsMonoid options.UVWXWXUVUV2None16}{[\]^_`[\]^_`[3None"#-136;=FKNTƕ!y(Information on a single package for the  which can be installed.Note that much of the information below (such as the package dependencies or exposed modules) can be conditional in the cabal file, which means it will vary based on flags, arch, and OS.{This must$ match the version specified within rpiDef.|EWhere to get the package from. This could be a few different things:%For a global package, it will be the GhcPkgId~. (If we end up needing to rebuild this because we've changed a dependency, we will take it from the package index with no  CabalFileInfo.For a dependency, it will be a PackageLocation.$For a project package, it will be a  Path Abs Dir.}!Flags to build this package with.~.GHC options to use when building this package. All packages which must be builtcopied registered before this package.VThe names of executables provided by this package, for performing build tool lookups.#Executables needed by this package.)Modules exposed by this package's librarykShould this package be hidden in the database. Affects the script interpreter's module name import parser.sA fully loaded snapshot combined , including information gleaned from the global database and parsing cabal files.Invariant: a global package may not depend upon a snapshot package, a snapshot may not depend upon a local or project, and all dependencies must be satisfied.Name of an executable.>Information on packages stored in a source control repository.(The type of a source control repository.A package archive, could be from a URL or a local file path. Local file path archives are assumed to be unchanging over time, and so are allowed in custom snapshots.Add in the possibility of getting packages from the index (including cabal file revisions). We have special handling of this case in many places in the codebase, and therefore represent it with a separate data type from .Grab the package from the package index with the given version and (optional) cabal file info to specify the correct revision.NWhere to get the contents of a package (including cabal file revisions) from.gA GADT may be more logical than the index parameter, but this plays more nicely with Generic deriving.Note that we use FilePath and not Path9s. The goal is: first parse the value raw, and then use canonicalizePath and  parseAbsDir.%Stored in a source control repositoryA definition of a snapshot. This could be a Stackage snapshot or something custom. It does not include information on the global package database, this is added later.It may seem more logic to attach flags, options, etc, directly with the desired package. However, this isn't possible yet: our definition may contain tarballs or Git repos, and we don't actually know the package names contained there. Therefore, we capture all of this additional information by package name, and later in the snapshot load step we will resolve the contents of tarballs and repos, figure out package names, and assigned values appropriately.GThe snapshot to extend from. This is either a specific compiler, or a  SnapshotDefT which gives us more information (like packages). Ultimately, we'll end up with a CompilerVersion.+The resolver that provides this definition.2A user-friendly way of referring to this resolver.'Where to grab all of the packages from.BPackages present in the parent which should not be included here.)Flag values to override from the defaultsPackages which should be hidden when registering. This will affect, for example, the import parser in the script command. We use a   instead of just a  D? to allow overriding the hidden settings in a parent snapshot.GHC options per packagecHints about which packages are available globally. When actually building code, we trust the package database provided by GHC itself, since it may be different based on platform or GHC install. However, when we want to check the compatibility of a snapshot with some codebase without installing GHC (e.g., during stack init), we would use this field.GA relative file path including a unique string for the given snapshot.[Modify the wanted compiler version in this snapshot. This is used when overriding via the compiler) value in a custom snapshot or stack.yaml file. We do _not_ need to modify the snapshot's hash for this: all binary caches of a snapshot are stored in a filepath that encodes the actual compiler version in addition to the hash. Therefore, modifications here will not lead to any invalid data.1Determined the desired compiler version for this .Cstuvwxyz{|}~Cyz{|}~vwxstustuvwx !"y z{|}~ 4None#=Log running a process with its arguments, for debugging (-v).$=Log running a process with its arguments, for debugging (-v).GThis logs one message before running the process and one message after.%rShow a process arg including speechmarks when necessary. Just for debugging purposes, not functionally important.#$%#$%5None1QV֏ &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.0Run pager to display a string.1Run editor to edit a file.2DRun editor, providing functions to write and read the file contents.3Run editor on a ByteString.4Run editor on a String.#Short-circuit first Just.&(')+*,-./01234,-./0)*+1234&'(&'()*+None1<QV9/An exception while trying to read from process.: :% createProcess exitCode stdout stderr>5Override the environment received by a child process.@Environment variables as mapA)Environment variables as association listB.List of directories searched for executables (PATH)D[""] on non-Windows systems, ["", ".exe", ".bat"] on WindowsF&Get the environment variables from an >.G&Get the list of directories searched (PATH).H'Modify the environment variables of an >.I Create a new >.JHelper conversion function.K+Read from the process, ignoring any output. Throws a 9 exception if the process fails.LTry to produce a strict   from the stdout of a process.MTry to produce strict  +s from the stderr and stdout of a process.NProduce a strict   from the stdout of a process. Throws a 9 exception if the process fails.OProduce strict  *s from the stderr and stdout of a process. Throws a 9 exception if the process fails.P/Consume the stdout of a process feeding strict  s 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. Throws a 9 if unsuccessful.R:Consume the stdout and stderr of a process feeding strict  s to the consumers. Throws a 9" if unsuccessful in launching, or # if the process itself fails.STLike sinkProcessStderrStdout, but receives Handles for stderr and stdout instead of $s. Throws a 9" if unsuccessful in launching, or # if the process itself fails.TcPerform pre-call-process tasks. Ensure the working directory exists and find the executable path. Throws a 9 if unsuccessful.U7Check if the given executable exists on the given PATH.V*Find the complete path for the executable. Throws a 9 if unsuccessful.WReset the executable cache.X Load up an > from the standard environment.YAAugment the PATH environment variable with the given extra paths.ZApply Y$ on the PATH value in the given Map. KOptional working directoryCommandCommand line argumentsLOptional directory to run inCommandCommand line argumentsMOptional directory to run inCommandCommand line argumentsNOptional directory to run inCommandCommand line argumentsOOptional directory to run inCommandCommand line argumentsPOptional directory to run inCommandCommand line argumentsSink for stdoutROptional directory to run inCommandCommand line argumentsSink for stderrSink for stdoutSOptional directory to run inCommandCommand line argumentsT)Optional directory to create if necessaryHow to override environment Command nameUHow to override environmentName of executableVHow to override environmentName of executable'Full path to that executable on success#$9:;<=>?B@ACDEFGHIJKLMNOPQRSTUVWXYZ#NOLMPRSQ$>?@ABCDEFIHJUVXGTK9:;<=YZW%&9:;<=>?@ABCDENone"#<FQV_@Cmd holds common infos needed to running a process in most casesadirectory to run inbcommand to rundcommand line argumentseKRun the given command in the given directory, inheriting stdout and stderr.GIf it exits with anything but success, prints an error and then calls ' to exit the program.gLike (P, but takes an optional working directory and environment override, and throws #, if the process exits unsuccessfully and a 9 if the executable is not found.Inherits stdout and stderr.hLike (P, but takes an optional working directory and environment override, and throws #, if the process exits unsuccessfully and a 9 if the executable is not found.Inherits stdout and stderr.kLike ~, but taking a _. Note that the  s provided by ) are not closed automatically.e!optional additional error messagef!optional additional error message#_`abcdefghijkefghijk#_`abcd_`abcd6Safel5Get the width, in columns, of the terminal if we can.ll*+7None"#+06;<=>?FKT"Monadic environment.'Cache of previously parsed cabal files.!TODO: This is really an ugly hack to avoid spamming the user with warnings when we parse cabal files multiple times and bypass performance issues. Ideally: we would just design the system such that it only ever parses a cabal file once. But for now, this is a decent workaround. See:  6https://github.com/commercialhaskell/stack/issues/3591.,7Replace Unicode characters with non-Unicode equivalents-2Logging function takes the log level into account..The length of a timestamp in the format "YYYY-MM-DD hh:mm:ss.". This definition is top-level in order to avoid multiple reevaluation at runtime./"With a sticky state, do the thing.With a , do the thing09Taken from GHC: determine if we should use Unicode syntax use time? terminal?terminal width overridereexec?qtrsuvwxyz{|}~}~uvwxyz{|qrstqrstuvwxyz{|}~None"#&'+-0134567;<=FKNTV^?0Class for environment values that can provide a .4Class for environment values which have a GHCVariant2Class for environment values which have a PlatformDocker host user infouidgidSupplemantal groupsFile creation mask }AData passed into Docker container for the Docker entrypoint's useUIDGIDCetc of host user, if we wish to perform UID/GID switch in container.How PVP bounds should be added to .cabal filesRemote or inline gBuild of the compiler distribution (e.g. standard, gmp4, tinfo6) | Information for a file to download.URL or absolute file path;Specialized bariant of GHC (e.g. libgmp4 or integer-simple)Standard bindist Bindist that uses integer-simpleOther bindistsHA variant of the platform, used to differentiate Docker builds from hostA software control system.AWhere do we get information on global packages for loading up a ?+Accept the hints in the snapshot definition8Look up the actual information in the installed compiler $STACK_ROOT , parent dirSee: See: .build options.Docker options.>Options for the execution environment (nix-shell or container)See: See: Deprecated in favour of fSee: 'configUrlsSee: See: See: See: See: See: See:  Used for overriding the platform Used for overriding the platform!Used for overriding the GHC buildSee: See: See: 'Allow users to override the path to gcc .Use Hpack executable (overrides bundled Hpack) See:  ,Used to override the binary installation dir Image creation options. Template parameters.8Initialize SCM (e.g. git init) when making new projects?See See configGhcOptionsAll-Additional paths to search for executables inDAdditional setup info (inline or remote) to use for installing toolsEOverride the default local programs dir, where e.g. GHC is installed.See See See See See See _The default template to use when none is specified. (If Nothing, the default default is used.)KAllow users other than the stack root owner to use the stack installation.See See See A project is a collection of packages. We can have multiple stack.yaml files, but only one of them may contain project information.!YA warning message to display to the user when the auto generated config may have issues."NPackages which are actually part of the project (as opposed to dependencies).NOTEb Stack has always allowed these packages to be any kind of package location, but in reality only  PLFilePath2 really makes sense. We could consider replacing [PackageLocation] with  [FilePath] to properly enforce this idea, though it will slightly break backwards compatibility if someone really did want to treat such things as non-deps.#WDependencies defined within the stack.yaml file, to be applied on top of the snapshot.$1Flags to be applied on top of the snapshot flags.%How we resolve which  SnapshotDef to use&/When specified, overrides which compiler to use13Should a package be treated just like an extra-dep? gi means, 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/386(Value returned by W.*Top-level Stack configuration.+Action to load the remaining C.,,The project root directory, if in a project.-/A single, fully resolved component of a package29A view of a local package needed for resolving components;3Configuration after the environment has been setup.>aThis is the version of Cabal that stack will use to compile Setup.hs files in the build process.Note that this is not necessarily the same version as the one that stack depends on as a library and which is displayed when running $stack list-dependencies | grep Cabal in the stack project.?>The actual version of the compiler to be used, as opposed to wantedCompilerL:, which provides the version specified by the build plan.A Cache for getLocalPackages.B(The fully resolved snapshot information.CA 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.FThese are the components which know nothing about local configuration.F Build plan wanted for this buildG0The variant of GHC used to select a GHC bindist.HLocal packagesI.Extra dependencies specified in configuration.tThese dependencies will not be installed to a shared location, and will override packages provided by the resolver.JExtra package databasesK Location of the stack.yaml file._Note: if the STACK_YAML environment variable is used, this may be different from projectRootL  / "stack.yaml"gFIXME MSS 2016-12-08: is the above comment still true? projectRootL is defined in terms of bcStackYamlLPer-package flag overridesMhAre we loading from the implicit global stack.yaml? This is useful for providing better error messages.N*Parsed global command-line options monoid.P%Expected re-exec in container versionQIData used when stack is acting as a Docker entrypoint (internal use only)R Log levelS#Whether to include timings in logs.T Config monoid, for passing into  loadConfigUResolver overrideVCompiler overrideWWe're in a terminal?XWhen to use ansi colorsYTerminal width overrideZOverride project stack.yaml^`FilePath is the directory containing the script file, used for resolving custom snapshot files._#Parsed global command-line options.a%Expected re-exec in container versionbIData used when stack is acting as a Docker entrypoint (internal use only)c Log leveld#Whether to include timings in logs.e Config monoid, for passing into  loadConfigfResolver overridegCompiler overridehWe're in a terminal?i When to use ansi terminal colorsjTerminal width overridekOverride project stack.yaml1Controls 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,if True, keep GHCRTS variable in environmentWhich build log files to dumpdon't dump any logfiles!dump logfiles containing warningsdump all logfiles;Which packages do ghc-options on the command line apply to?all local targets$all local packages, even non-targets every package%The top-level Stackage configuration.~/.stack more often than not-this allows to override .stack-work directory*Path to user configuration file (usually ~.stack config.yaml)Build configurationDocker configuration3Execution environment (e.g nix-shell) configuration4Environment variables to be passed to external tools9Non-platform-specific path containing local installations0Path 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 names5Variant of the platform, also used in directory names>The variant of GHC requested by the user. In most cases, use C or  MiniConfig=s version instead, which will have an auto-detected default.IOverride build of the compiler distribution (e.g. standard, gmp4, tinfo6)URLs for other files used by stack. TODO: Better document e.g. The latest snapshot file. A build plan name (e.g. lts5.9.yaml) is appended when downloading the build plan actually.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 prioritynShould 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 sandboxed 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 capabilitiesOptional gcc override path.Use Hpack executable (overrides bundled Hpack)-extra-include-dirs arguments-extra-lib-dirs argumentsRun test suites concurrentlyParameters for templates.5Initialize SCM (e.g. git) when creating new projects.5Additional GHC options to apply to specific packages.9Additional GHC options to apply to categories of packages=Additional SetupInfo (inline or remote) to use to find tools.0How PVP upper bounds should be added to packages'Force the code page to UTF-8 on WindowsSee .  r provides the default value.Rebuild on GHC options changes;Which packages to ghc-options on the command line apply to?KIgnore version ranges in .cabal files. Funny naming chosen to match cabal._The default template to use when none is specified. (If Nothing, the default default is used.)KAllow users other than the stack root owner to use the stack installation.!In memory cache of hackage index.7Dump logs of local non-dependencies when doing a build. s$ when a local project can be found,  r; when stack must fall back on the implicit global project.KAre we allowed to build local packages? The script command disallows this.-Should we save Hackage credentials to a file?eIgnore a revision mismatch when loading up cabal files, and fall back to the latest revision. See: 6https://github.com/commercialhaskell/stack/issues/3520?Default logging level should be something useful but not crazy.2Directory containing the project's stack.yaml fileRoot directory for the given 2,Package name for the given 'LocalPackageView&All components available in the given 2'Version for the given 'LocalPackageView2Parse 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.>Get the URL to request the information on the latest snapshots!Root for a specific package index#Location of the 01-index.cache file#Location of the 00-index.cache file!Location of the 01-index.tar fileLocation of the 00-index.tar file. This file is just a copy of the 01-index.tar file, provided for tools which still look for the 00-index.tar file.$Location of the 01-index.tar.gz fileLocation of a package tarball  ".stack-work"Per-project work dir)File containing the installed cache, see Stack.PackageDump.Relative directory for the platform identifierDirectory containing snapshots"Installation root for dependenciesInstallation root for locals$Installation root for compiler toolsHoogle directory.Get the hoogle database path.3GPath for platform followed by snapshot name followed by compiler name.6Relative directory for the platform and GHC identifierPRelative directory for the platform and GHC identifier without GHC bindist build4nRelative directory for the platform and GHC identifier without GHC bindist build (before parsing into a Path)This is an attempt to shorten stack paths on Windows to decrease our chances of hitting 260 symbol path limit. The idea is to calculate SHA1 hash of the path used on other architectures, encode with base 16 and take first 8 symbols of it.1Package database for installing dependencies into3Package database for installing local packages intoExtra package databases,Directory for holding flag cache informationWhere to store  caches9Suffix applied to an installation root to get the bin dir9Suffix applied to an installation root to get the doc dir+Where HPC reports and tix files get stored.CGet the extra bin directories (for the PATH). Puts more local first3Bool indicates whether or not to include the localsaGet the minimal environment override, useful for just calling external processes like git or ghc@Get the path for the given compiler ignoring any local binaries. 6https://github.com/commercialhaskell/stack/issues/10525;A PackageEntry for the current directory, used as a default6-Render a platform variant to a String suffix.!Render a GHC variant to a String.(Render a GHC variant to a String suffix. Parse GHC variant from a String.7"Parse JSON in existing object for OProvide an explicit list of package dependencies when running a custom Setup.hsThe compiler specified by the  MiniBuildPlan7. This may be different from the actual compiler used!fThe version of the compiler which will actually be used. May be different than that specified in the  MiniBuildPlan and returned by .For siGHCs and siGHCJSsI fields maps are deeply merged. For all fields the values from the last  SetupInfo win.()           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    CDEFGHIJKLM789:23456-./01;<=>?@AB     _`abcdefghijkNOPQRSTUVWXYZ[\]^()*+, !"#$%&'lmno{|}~wxyzpqrstuv    )(-89:;<=>?@ABC.      !"#$%&'DEFGH()*+,-./0123456789:;<=>?@ABC DEFGHIJKLMN OPQRSTUVWXYZ[\]^_ `abcdefghijklmnopqrstuvwxyz{|}~48None;<=Vv*Username and password to log into Hackage. Since 0.1.0.0wGLoad Hackage credentials, either from a save file or the command line. Since 0.1.0.0I5Lifted from cabal-install, Distribution.Client.Uploadx'Upload a single tarball with the given Uploader#. Instead of sending a file like y, this sends a lazy bytestring. Since 0.1.2.1y'Upload a single tarball with the given Uploader. Since 0.1.0.0x tar file nametar file contentsvwxyzyxzvwvJKLM9None +-16<KQVCBLA 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 local9Information on a locally available package of source codeThe PackageV info itself, after resolution with package flags, with tests and benchmarks disabled9Components to build, not including the library component.OComponents explicitly requested for build, that are marked "buildable: false".+Whether this package is wanted as a target.DUsed for determining if we can use --enable-tests in a normal build.JUsed for determining if we can use --enable-benchmarks in a normal build.This stores the H with tests and benchmarks enabled, if either is asked for by the user.Directory of the package.The .cabal fileNothing == not dirty, Just == dirty. Note that the Set may be empty if we forced the build to treat packages as dirty. Also, the Set may not include all modified files.current state of the filesall files used by this package Where this source code came fromGWhere the package's source is located: local directory or package indexFPackage which exist on the filesystem (as opposed to an index tarball)PPackage which is in an index, and the files do not exist on the filesystem yet.Package build configurationAre tests enabled?Are benchmarks enabled?Configured flags.Configured ghc options. 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.7GHC options based on cabal information and ghc-options.These options can safely have nubOrd< applied to them, as there are no multi-word options (see 7https://github.com/commercialhaskell/stack/issues/1255)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 package+The license the package was released under.Get all files of the package.%Packages that the package depends on.A build tool name.#Original dependencies (not sieved).Ghc options used on package.Flags used on package.Defaults for unspecified flags.1does the package have a buildable library stanza?#names and interfaces of test suitesnames of benchmarksnames of executablesArgs to pass to GHC.&Does the package have exposed modules?Package build-type.%If present: custom-setup dependenciesILibraries in a package. Since Cabal 2.0, internal libraries are a thing.hthe foreign library names, sub libraries get built automatically without explicit component name passing%All exceptions thrown by the library.5Maybe 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.Get the installed Version.Compares the package name.Compares the package name.~~~~:None -16;=Ku!!"iInformation on a compiled package: the library conf file (if relevant), and all of the executable paths.$&.conf file inside the package database%Full paths to executables&2Configure options to be sent to Setup.hs configure(Options 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 are3:A complete plan of what needs to be built and how to do it60Final actions to be taken (test, benchmark, etc)74Text is reason we're unregistering, for display only8>Executables that should be installed after successful building9^The type of a task, either building local code or something from the package index (upstream)<DGiven the IDs of any missing packages, produce the configure options>4Dependencies for which we don't yet have an GhcPkgId?.Produce the list of options given the missing GhcPkgIds@A task to perform when buildingBthe package/version to be builtC+the task type, telling us how to build thisE+GhcPkgIds of already-installed dependenciesF3indicates that the package can be built in one stepHWere any of the dependencies missing? The reason this is necessary is... hairy. And as you may expect, a bug in Cabal. See:  Chttps://github.com/haskell/cabal/issues/4728#issuecomment-337937673G. The problem is that Cabal may end up generating the same package ID for a dependency, even if the ABI has changed. As a result, without this field, Stack would think that a reconfigure is unnecessary, when in fact we _do_ need to reconfigure. The details here suck. We really need proper hashes for package identifiers.IwIs the build type of this package Configure. Check out ensureConfigureScript in Stack.Build.Execute for the motivationM6Stored on disk to know whether the flags have changed.O"All options used for this package.PThe 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.QThe 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.RAre haddocks to be built?T6Stored on disk to know whether the files have changed.VModification times of files.NPackage dependency oracle.y Render a BaseConfigOpts to an actual list of optionsOSame as y-, but does not include directory path options{,Get set of wanted package names from locals.|&One-way conversion to serialized time.y dependencieslocal non-extra-dep?O dependenciesis this a local, non-extra-dep? ~"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}^_`abcdefghijklmnopqr[\]WXYZ|~@ABCDEFGHIwx*+,-./012345678 9:;v<=>?TUVsMNOPQRSuyJKLtz{&'()"#$%}"#$%&'()*+,-./0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVNPWXYZ[\]^_`abcdefghijklmnopqr;None-1<N Get the global package databaseQRun 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.=Get the environment variable to use for the package DB paths.RIGet the necessary ghc-pkg flags for setting up the given package database(Get the value of a field of the package.SGet the version of the package:Get the version of Cabal from the global package database."Get the value for GHC_PACKAGE_PATHpackage databasespackage identifier, or GhcPkgIdSpackage databasespackage database<None 16<KNQV2A single line of input, not including line endings%Dump information for a single packageACall ghc-pkg dump with appropriate flags and stream to the given Sink, for a single databaseECall ghc-pkg describe with appropriate flags and stream to the given Sink, for a single databaseT%Call ghc-pkg 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  DumpPackages2Add debugging symbol 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 pairUGeneral purpose utilityif empty, use globalif empty, use globalTif empty, 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?require debugging symbols?allowed versionsVentry in directoryname of libraryWlibrary directoryname of libraryXYZ=None %+-6<]e.g. ghc-7.8.4, msys2-20150512e.g. ghcjs-0.1.0_ghc-7.10.22Binary directories for the given installed package>None0+Parser for test arguments. FIXME hide args?NoneParser for haddock arguments.@None|GHC variant parserANone1Parser for bench arguments. FIXME hiding optionsBNone<Default  EnvSettings, which includes locals and GHC_PACKAGE_PATH.INote that this also passes through the GHCRTS environment variable. See 6https://github.com/commercialhaskell/stack/issues/3444;Environment settings which do not embellish the environmentINote that this also passes through the GHCRTS environment variable. See 6https://github.com/commercialhaskell/stack/issues/3444:Execute a process within the Stack configured environment.*Execution will not return, because either:t1) On non-windows, execution is taken over by execv of the sub-process. This allows signals to be propagated (#527)2) On windows, an [ exception will be thrown.Like , but does not use execvZ on non-windows. This way, there is a sub-process, which is helpful in some cases (#1306)%This function only exits by throwing [.CNone$&'<>?FKQTV8Date 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.IGet the record of whether an executable is compatible with a Docker imageJSeet the record of whether an executable is compatible with a Docker image\URun an action with the global database. This performs any needed migrations as well.]^_`abcdefghhihjkhlmnophqhrshtuvwDNone  Output .o/.hi directory. 6The filename used for dirtiness check of source files. 3The filename used to mark tests as having succeeded !/The filename used to mark tests as having built "0The filename used for dirtiness check of config. #2The filename used for modification check of .cabal $Directory for HPC work. %,Relative location of directory for HPC work. &$Package's build artifacts directory. 'Package's working directory. ( Directory for project templates. )%Relative location of build artifacts. *!Docker sandbox from project root. +$Image staging dir from project root. Package directory. Package directory !Package directory "Package directory. #Package directory. $Package directory. * Project rootDocker sandbox + Project rootIndex of imageDocker sandbox   ! " # $ % & ' ( ) * + & ' ) + * " #  ! % $  (ENone"#1 ,)Exceptions thrown by Stack.Docker.Config. -7Only LTS resolvers are supported for default image tag. .Invalid global database path. /$Interprets DockerOptsMonoid options. 0-Show instance for StackDockerConfigException. 12Exception instance for StackDockerConfigException. , . - / / , - . 1 0 , - .FNone"#% 2#Interprets BuildOptsMonoid options. 2 3 4 5 2 3 4 5GNone +-6<>?NVJx=Directory containing files to mark an executable as installed 6$Get all of the installed executables 7&Mark the given executable as installed 8*Mark the given executable as not installed 9@Try to read the dirtiness cache for the given package directory. :@Try to read the dirtiness cache for the given package directory. ;>Try to read the mod time of the cabal file from the last build <3Write the dirtiness cache for this package's files. =;Write the dirtiness cache for this package's configuration. >See  ; ?"Delete the caches for the project. @7Loads the flag cache for the given installed extra-deps B%Mark a test suite as having succeeded C)Mark a test suite as not having succeeded D&Check if the test suite already passedyThe 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.jIt also returns an action yielding the location of the precompiled path based on the old binary encoding.We only pay attention to non-directory options. We don't want to avoid a cache hit just because it was installed in a different directory. E1Write out information about a newly built package FLCheck the cache for a precompiled package matching the given configuration.y dependencies E dependencieslibrary executables Ftarget package dependenciesTUV 6 7 8 9 : ; < = > ? @ A B C D E F 9 : ; 6 @ ? 7 8 A < = > B C D E FTUVHNone+<>?U G Options for  L. IRequire profiling libraries? JRequire haddocks? KRequire debugging symbols? LHReturns the new InstalledMap and all of the locally registered packages.z]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 SourceMap{Check 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. L*does not contain any installed informationz)if Just, profiling or haddock is required5to determine which installed things we should include$package database, Nothing for globalfrom parent databases ~ G H I J K L ~ G H I J K L|}~ G H I J KINone<4Passed to all the path printers as a source of info. PYPrint out useful path information in a human-readable format (and support others later).The paths of interest to a user. The first tuple string is used for a description that the optparse flag uses, and the second string as a machine-readable key and also for --foo: flags. The user can choose a specific path to list like  --stack-root7. But really it's mainly for the documentation aspect.!When printing output we generate PathInfoi and pass it to the function to generate an appropriate string. Trailing slashes are removed, see #506 P Q P Q None7;<=>?FKQTVW@Tags for each field of state in SGR (Select Graphics Rendition).It's a bit of a hack that  is included.P  ! 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 { | } ~  Q ] ^ _ _ \ Z [ W X Y c b ` a d h l p t x | e i m q u y } f j n r v z ~ g k o s w {  !    W X Y Z [ ] ^ _ _JNone;<= XUse after a label and before the rest of what's being labelled for consistent spacing indentingetc.For example this is used after Warning: in warning messages. Make a ! from each word in a   Wordwrap a   Style an  \r as an error. Should be used sparingly, not to style entire long messages. For example, it's used to style the Error:7 label for an error message, not the entire message.  Style an  \s as a warning. Should be used sparingly, not to style entire long messages. For example, it's used to style the Warning:7 label for an error message, not the entire message.  Style an  \? in a way to emphasize that it is a particularly good thing.  Style an  \o as a shell command, i.e. when suggesting something to the user that should be typed in directly as written.  Style an  \ as a filename. See   for directories.  Style an AsciDoc2 as a URL. For now using the same style as files.  Style an  \ as a directory name. See   for files.  Style an  \ in a way that emphasizes that it is related to a current thing. For example, could be used when talking about the current package we're processing when outputting the name of it.  Style an  \ as a module name Display a bulleted list of  \. Display a bulleted list of  \! with a blank line between each.L  ! W X Y Z [ \ ] ^ _ ` M ` ] ^ _ _ \ Z [ W X Y!   KNone"#%-1;<=NQV]/ A pair of package descriptions: one which modified the buildable values of test suites and benchmarks depending on whether they are enabled, and one which does not.HFields are intentionally lazy, we may only need one or the other value.VMSS 2017-08-29: The very presence of this data type is terribly ugly, it represents the fact that the Cabal 2.0 upgrade did _not_ go well. Specifically, we used to have a field to indicate whether a component was enabled in addition to buildable, but that's gone now, and this is an ugly proxy. We should at some point clean up the mess of Package, LocalPackage, etc, and probably pull in the definition of PackageDescription from Cabal with our additionally needed metadata. But this is a good enough hack for the moment. Odds are, you're reading this in the year 2024 and thinking "wtf?" Input to HA helper function that performs the basic character encoding necessary. 9Read the raw, unresolved package information from a file.  Read the  from the given . )Reads and exposes the package information Get  and $ reading info from given directory. Read  package .buildinfo ancillary files produced by some Setup.hs hooks. The file includes Cabal file syntax to be merged into the package description derived from the package's .cabal file.DNOTE: not to be confused with BuildInfo, an Stack-internal datatype. #Resolve a parsed cabal file into a @, which contains all of the info needed for stack to build the " given the current configuration.Generate GHC options for the package's components, and a list of options which apply generally to the package, not one specific component.Generate GHC options for the target. Since Cabal also figures out these options, currently this is only used for invoking GHCI (via stack ghci).@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" >KThe directory where generated files are put like .o or .hs (from .x files). Make the autogen dir.Make the build dir.@Make the component-specific subdirectory of the build directory. =Get all dependencies of the package (buildable targets only).\Note that for Cabal versions 1.22 and earlier, there is a bug where Cabal requires dependencies for non-buildable components to be present. We're going to use GHC version as a proxy for Cabal library version in this case for simplicity, so we'll check for GHC being 7.10 or earlier. This obviously makes our function a lot more fun to write... =Get all dependencies of the package (buildable targets only).This uses both the new  and old  information. Variant of 2 from Cabal that includes foreign libraries; see ,https://github.com/haskell/cabal/issues/4763(Get all files referenced by the package.>Resolve globbing of files (e.g. data files) to absolute paths.<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"] *Get all files referenced by the benchmark.%Get all files referenced by the test.+Get all files referenced by the executable.(Get all files referenced by the library.4Get all C sources and extra source files in a build.Get the target's JS sources. Evaluates the conditions of a , yielding a resolved ..Make a map from a list of flag specifications.What is  flagManual for? Generic a ResolveConditions using sensible defaults.+Resolve the condition tree for the library.Get the name of a dependency.&Get the version range of a dependency.Try 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..Get the dependencies of a Haskell module file.6Parse a .dump-hi file into a set of modules and files.Try 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  .fIf the directory contains a file named package.yaml, hpack is used to generate a .cabal file from it.5Generate .cabal file from package.yaml, if necessary. !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).  Extract the PackageIdentifier) given an exploded haskell package path.  directory holding the cabal fileprint warnings? load the raw bytes 'print warnings from cabal file parsing? print warnings?:Packages to omit from the "-package" / "-package-id" flags'Packages to add to the "-package" flagsThe cabal directory.The name of the component.Dist directory.The path to the .c file.*The path to the .o file for the component.Compiler versioninstallation target platform enabled flagsPackage component nameDirectories to look in. Base names. Extensions.Directories to look in. Base names. Extensions.package directory< <       LNone"#+1<1Stack image exceptions.?Unspecified parent docker container makes building impossible@Can't determine the project root (where to put image sandbox). 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.HExtend the general purpose docker image with entrypoints (if specified).1Fail with friendly error if project root not set. )The command name for dealing with images. 1The command name for building a docker container. +Convert image opts monoid to image options.  MNone "#+<>?V 2Determine whether we should haddock for a package. 5Determine whether to build haddocks for dependencies. 7Generate Haddock index and contents for local packages. NGenerate Haddock index and contents for local packages and their dependencies. >Generate Haddock index and contents for all snapshot packages.;Generate Haddock index and contents for specified packages.,Find first DumpPackage matching the GhcPkgIdPath of haddock index file./Path of local packages documentation directory.FPath of documentation directory for the dependencies of local packages2Path of snapshot packages documentation directory. >Available packages and their locations for the current projectBuild targets as determined by ` Packages that we want to generate haddocks for in any case (whether or not we are going to generate haddocks for dependencies) Local package dump Global dump informationSnapshot dump informationLocal dump information Global package dumpSnapshot package dump  NNone< [Checks if the installed executable will be available on the user's PATH. This doesn't use envSearchPath menvO because it includes paths only visible when running in the stack environment.  ONone"#&'01>?QVj 2An 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       PNone<NV]į Same as  , but works on a SinglePackageLocation. MResolve a PackageLocation into a path, downloading and cloning as necessary.SReturns the updated PackageLocation value with just a single subdir (if relevant). LParse the cabal files present in the given 'PackageLocationIndex FilePath'.  Load and parse cabal files into s   but supports   project root  project root project rootURLcommit lookup in index3project root, used for checking out necessary files 3project root, used for checking out necessary filesprint warnings? 3project root, used for checking out necessary filesprint warnings? 3project root, used for checking out necessary files          None1>? Download 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 wrong Same as  B, but will download a file a second time if it is already present.Returns  g if the file was downloaded,  f otherwise !Set the user-agent request header  destinationHWas a downloaded performed (True) or did the file already exist (False)?  destination%&'        '%&   QSigning Packages(c) FPComplete.com, 2015BSD3!Tim Dysinger <tim@fpcomplete.com> experimentalPOSIXNone<QVؓ \Sign a haskell package with the given url of the signature service and a path to a tarball. Sign a haskell package with the given url to the signature service, a package tarball path (package tarball name) and a lazy bytestring of bytes that represent the tarball bytestream. The function will write the bytes to the path in a temp dir and sign the tarball with GPG. BSign a haskell package given the url to the signature service, a PackageIdentifier( and a file path to the package on disk.    GPG Signatures for Stack(c) FPComplete.com, 2015BSD3!Tim Dysinger <tim@fpcomplete.com> experimentalPOSIXNoneڂGH  RNone%&'+-16<>?FKNQV] 2Populate 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 tarball via HTTP-Update the index tarball via Hackage SecurityDelete the package index cache CGet the known versions for a given package from the package caches.See   for performance notes. ;Load the package caches, or create the caches if necessary.vThis has two levels of caching: in memory, and the on-disk cache. So, feel free to call this function multiple times.[Clear the in-memory hackage index cache. This is needed when the hackage index is updated.(Return the number of blocks in an entry.urlbase URL        SNone+1<Vz5Exception that might occur when making a new project. #Options for creating a new project. Name of the project to create. 2Whether to create the project without a directory. Name of the template to use. 4Nonce parameters specified just for this invocation. ,Create a new project with the given options./Download and read in a template's text content.-Apply and unpack a template into a directory.5Check if we're going to overwrite any existing files.)Write files to the new project directory..Run any initialization functions, such as Git. GDisplay the set of templates accompanied with description if available. Get the set of templates.*Parser the set of templates from the JSON. <The default template name you can use if you don't have one. &Default web root URL to download from. @Default web URL to get a yaml file containing template metadata. *Default web URL to list the repo contents. QS                  S Q          TNone%+-1<>?FNQTUV!dContents of the .cabal file )/Fetch packages into the cache without unpacking *.Intended to work for the command line command. +Same as  ,, but for a single package. ,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.DDoes the configuration use a 00-index.tar.gz file for indices? See 6https://github.com/commercialhaskell/stack/issues/3520 .;Turn package identifiers and package names into a list of ResolvedPackageNs. Returns any unresolved names and identifier. These are considered unresolved even if the only mismatch is in the cabal file info (MSS 2017-07-17: old versions of this code had special handling to treat missing cabal file info as a warning, that's no longer necessary or desirable since all info should be present and checked). /:Add the cabal files to a list of idents with their caches. 0.Provide a function which will load up a cabal  ByteString from the package indices. Given package identifier and package caches, return list of packages with the same name and the same two first version number components found in the caches.!Try to come up with typo corrections for given package identifier using package caches. This should be called before giving up, i.e. when   cannot return anything."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 1)Internal function used to unpack tarball.Takes a path to a .tar.gz file, the name of the directory it should contain, and a destination folder to extract the tarball into. Returns unexpected entries, as pairs of paths and descriptions. *2when looking up by name, take from this build plan destinationnames or identifiers +unpack directory the dist rename directory, see: (https://github.com/fpco/stack/issues/157 ,unpack directory the dist rename directory, see: (https://github.com/fpco/stack/issues/157 -2when looking up by name, take from this build plan .2when looking up by name, take from this build plan"directory to unpack into, Nothing means no unpack# the dist rename directory, see: (https://github.com/fpco/stack/issues/157 # $ % & ' ( ) * + , - . / 0 1 * + , ) 1 - . # $ % & ' ( / 0$%&'()*+,-./012 # $ % & ' (3456789UNone"#%&'+-16<NV> 5 Convert a  into a  6Fully load up a  into a :Fully load up a  into a  7Given information on a  and a given set of additional packages and configuration values, calculates the new global and snapshot packages, as well as the new local packages.FThe new globals and snapshots must be a subset of the initial values.;Recalculate a y: based on updates to flags, hide values, and GHC options.<gEnsure that all of the dependencies needed by this package are available in the given Map of packages.=lLoad a snapshot from the given compiler version, using just the information in the global package database.>Find the package at the given :, grab any flags, hidden state, and GHC options from the ? (removing them from the ?5), and add the newly found package to the contained  .@MSome hard-coded fixes for build plans, hopefully to be irrelevant over time.AConvert a global y" to a snapshot one by creating a .BSplit the globals into those which have their dependencies met, and those that don't. This deals with promotion of globals to snapshot when another global has been upgraded already.C Calculate a y from the given  6Einstalled GHC we should query; if none provided, use the global hints3project root, used for checking out necessary files:+load a cabal file's contents from the indexEinstalled GHC we should query; if none provided, use the global hints3project root, used for checking out necessary files 7load from index project root/packages we want to add on top of this snapshotflags7overrides whether a package should be registered hidden GHC options packages in the snapshot to drop;roothide? GHC options<all available packagesBextra dependencies availableChidden? GHC options 5 6 7 5 6 7DEFGHIJKVNone &'+-1<VWe G|Map from tool name to package providing it. This accounts for both snapshot and local packages (deps and project packages).LFind the set of FlagNames necessary to get the given GenericPackageDescription to compile against the given  BuildPlan. Will only modify non-manual flags, and will prefer default values for flags. Returns the plan which produces least number of dep errorsMCheck whether with the given set of flags a package's dependency constraints can be satisfied against a given build plan or pool of packages.NChecks 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.O Combine two  >s for the same |.P&Given a bundle of packages (a list of GenericPackageDescriptions's) to build and an available package pool (snapshot) check whether the bundle's dependencies can be satisfied. If flags is passed as Nothing flag settings will be chosen automatically.QCompare  :, where GT means a better plan. KCheck a set of zs and a set of flags against a given snapshot. Returns how well the snapshot satisfies the dependencies of the packages. LiFind a snapshot and set of flags that is compatible with and matches as best as possible with the given s.N6package using dependencies, for constructing DepErrorsdependency constraintsAvailable package pool or index K3project root, used for checking out necessary files L3project root, used for checking out necessary files : ; < = > ? @ A B C D E F G H I J K L M C D E F : ; < = K > ? @ A B I H J L G M : ; < = > ? @ A C D E FWNone"#%+-1345<FKNTV]t U0parent directory for making a concrete resolving V;An environment with a subset of BuildConfig used for setup.RWIf deprecated path exists, use it and print a warning. Otherwise, return the new path. WGet the location of the implicit global project directory. If the directory already exists at the deprecated location, its location is returned. Otherwise, the new location is returned. X%This is slightly more expensive than  J (K   getBuildConfig)" and should only be used when no C is at hand. Y Download the  value from stackage.org. ZTurn an  into a .S+Get the latest snapshot resolver available.T Create a U value when we're not using any local configuration files (e.g., the script command)U9Get the default location of the local programs directory. [ Load the  V. ]oLoad the configuration, using current directory, environment variables, and defaults as necessary. The passed Maybe (Path Abs File)> is an override for the location of the project's stack.yaml.VMLoad the build configuration, adds build-specific values to config loaded by  loadConfig . values. ^Get packages from EnvConfig, downloading and cloning as necessary. If the packages have already been downloaded, this uses a cached value (WOCheck if there are any duplicate package names and, if so, throw an exception.XGet the stack root, e.g. ~/.stack), and determine whether the user owns it.'On Windows, the second value is always  g. _ _ dir throws  if dir" isn't owned by the current user.If dirh doesn't exist, its parent directory is checked instead. If the parent directory doesn't exist either,  (K dir) is thrown.YY dir returns  s (dir,  g) when dir6 exists and the current user owns it in the sense of Z.Z0Check whether the current user (determined with getEffectiveUserId#) is the owner for the given path.Will always return  g on Windows. ` g7 if we are currently running inside a Docker container. a g* if we are currently running inside a Nix.[6Determine the extra config file locations which exist.Returns most local first b8Load and parse YAML from the given config file. Throws  when there's a decoding error.\(Load and parse YAML from the given file. c:Get the location of the project config file, if it exists.]Find 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.^Get the location of the default stack configuration file. If a file already exists at the deprecated location, its location is returned. Otherwise, the new location is returned._Get the location of the default user configuration file. If a file already exists at the deprecated location, its location is returned. Otherwise, the new location is returned.``Get a fake configuration file location, used when doing a "no config" run (the script command). RQDescription of file for warning (if Nothing, no deprecation warning is displayed)Test for existenceNew pathDeprecated path((Path to use, whether it already exists) Z3root of project for resolving custom relative pathsT stack rootastack root, e.g. ~/.stackuser config file path, e.g. ~.stack config.yaml allow locals? \0Config monoid from parsed command-line argumentsOverride resolverProject config to use, if any ]0Config monoid from parsed command-line argumentsOverride resolverOverride stack.yamlXParsed command-line arguments[use config path cOverride stack.yaml]Override stack.yaml` stack root R U T S V W X Y Z [ \ ] ^ _ ` a b c d e V ] \ [ b d ^ W X Y Z _ ` a e c R S T U R S T U VbcdXNone+-1<`eExceptions thrown by  Stack.Nix.fECan't determine the project root (location of the shell file if any). orIf Nix is enabled, re-runs the currently running OS command in a Nix container. Otherwise, runs the inner action.g?Shell-escape quotes inside the string and enclose it in quotes.h1Fail with friendly error if project root not set. pCommand-line argument for "nix" o p q o p qefYNone t tZNone+<N} u-List the packages inside the current project. v(List the targets in the current project. u v u v[None&'+<Vwi;Apply changes to the global configuration, typically at ~.stack config.yaml.jApply changes to the project  stack.yaml.kroot directory of project w x y z { | } ~ w x y z ~ { } |lij w x y z\None+1< Exceptions during cleanup.  Options for  stack clean. ,Delete the "dist directories" as defined in .b for the given local packages. If no packages are given, all project packages should be cleaned. +Delete all work directories in the project. /Deletes build artifacts in the current project.Throws  .       ]None- *Command-line parser for the clean command.  ^None %&'-NV %How a package is intended to be built $Build all of the default components. Only build specific componentsm#Was a concrete component specified?n)Only if we're adding this as a dependency qRaw command line input, without checking against any databases or list of locals. Does not deal with directories nEither a fully resolved component, or a component name that could be either an executable, test, or benchmarkoSThe name of a component, which applies to executables, test suites, and benchmarksp2Raw target information passed on the command line. YDo we need any targets? For example, `stack build` will fail if no targets are provided.qSame as parseRawTarget*, but also takes directories into account. If this function returns Nothing., the input should be treated as a directory.r Convert a   into a s" (see description on the module).qcurrent directory+raw target information from the commandlinerglobalssnapshot local depsproject packages     stuvmnw   pxy  _None +;<=>?] 5Invoked at the beginning of running with "--coverage" iMove a tix file into a sub-directory of the hpc report directory. Deletes the old one if one is present.z;Get the directory used for hpc reports for the given pkgId.{nGet the tix file location, given the name of the file (without extension), and the package identifier string. VGenerates the HTML coverage report and shows a textual coverage summary for a package.|Module names which contain  E have a package name, and so they weren't built into the executable.   `None+<>?NV Like  <, but doesn't return values that aren't as commonly needed. 8Given the build commandline options, does the following:Parses the build targets. Loads the [ from the resolver, with extra-deps shadowing any packages that should be built locally. Loads up the  info. Builds a Q, which contains info for all the packages that will be involved in the build. All flags for a local package. _Get the configured options to pass from GHC, based on the build configuration and commandline.}7Upgrade the initial local package info to a full-blown  LocalPackage" based on the selected components~YEnsure that the flags specified in the stack.yaml file and on the command line are used.Compare 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 modulesGets list of Paths for files relevant to a set of components in a package. Note that the library component, if any, is always automatically added to the set of components.)Get file modification time, if it exists. Create FileCacheInfo for a file.Get  for package given its name.}@Should this be treated as part of $locals? False for extra-deps.See: Mhttps://github.com/commercialhaskell/stack/issues/3574#issuecomment-346512821~ local depssnapshot, for error messages old cachefiles in package   aNone"#%+016<>?KNV YLength of dpPath Length of package names combinedOA path where the packages later in the list depend on those that come earlier$Reason why a dependency was not usedSee description of 7For display purposes only, Nothing if package not found>Recommend adding to extra-deps, give a helpful version number?Warn about tools in the snapshot definition. States the tool name expected, the package name using it, and found packages. If the last value is Nothing, it means the tool was not found anywhere. For a Just value, it was found in at least two packages.Is this package being used as a library, or just as a build tool? If the former, we need to ensure that a library actually exists. See 6https://github.com/commercialhaskell/stack/issues/2195OState to be maintained during the calculation of local packages to unregister.Cexecutable to be installed, and location where the binary is placed'why a local package is considered dirty$Packages which count as dependenciesWarningsKWhich packages a given package depends on, along with the package's versionThis indicates that the package is already installed, and that we shouldn't build it from source. This is always the case for snapshot packages.This indicates that the package isn't installed, and we know where to find its source (either a hackage package or a local directory).yThis indicates that the package is installed and we know where to find its source. We may want to reinstall from source. ;Computes a build plan. This means figuring out which build @6s to take, and the interdependencies among the build @s. In particular:1) It determines which packages need to be built, based on the transitive deps of the current targets. For local packages, this is indicated by the < boolean. For extra packages to build, this comes from the  extraToBuild0 argument of type Set PackageNameJ. These are usually packages that have been specified on the commandline.H2) It will only rebuild an upstream package if it isn't present in the ., or if some of its dependencies have changed.i3) It will only rebuild a local package if its files are dirty or some of its dependencies have changed.fDetermine which packages to unregister based on the given tasks and already registered local packagesGiven a  and its  , adds a @' for running its tests and benchmarks.If  isAllInOne is  g, then this means that the build step will also build the tests. Otherwise, this indicates that there's a cyclic dependency and an additional build step needs to be done.LThis will also add all the deps needed to build the tests / benchmarks. If  isAllInOne is  gi (the common case), then all of these should have already been taken care of as part of the build step.Given a ?, adds all of the build tasks to build the package, if needed. 3 invokes this on all the target packages, setting  treatAsDep'= to False, because those packages are direct build targets. T invokes this while recursing into the dependencies of a package. As such, it sets  treatAsDep' to True, forcing this package to be marked as a dependency, even if it is directly wanted. This makes sense - if we left out packages that are deps, it would break the --only-dependencies build plan.Given a  and perhaps an ~ value, adds build @'s for the package and its dependencies.'Checks if we need to install the given , given the results of k. If dependencies are missing, the package is dirty, or it's not installed, then it needs to be installed.*Is the build type of the package Configure}Given a package, recurses into all of its dependencies. The results indicate which packages are missing, meaning that their 7s will be figured out during the build, after they've been built. The 2nd part of the tuple result indicates the packages that are already installed which will be used. The 3rd part of the tuple is an  . If it is K, then the parent package must be installed locally. Otherwise, if it is >, then it can either be installed locally or in the snapshot.\Get all of the dependencies for a given package, including guessed build tool dependencies.Strip out anything from the Plan intended for the local database;Is the given package/version combo defined in the snapshot?zGet the shortest reason for the package to be in the build plan. In other words, trace the parent dependencies back to a  package. &additional packages that must be builtlocally registeredload upstream packageTasks2Reasons why packages are dirty and must be rebuiltLocal package database dump[If true, we're doing a special initialBuildSteps build - don't unregister target packages.#is this being used by a dependency?#is this being used by a dependency?#is this being used by a dependency?   bNone"#+-<>?FQTV]]$Temporary Setup.hs for simple builds@Temporary SetupShim.hs, to provide access to initial-build-stepsCompiled version of eeSetupHsOStores which packages with custom-setup have already had their Setup.hs built.$Has an executable been built or not? TFetch the packages necessary for a build, for example in combination with a dry run. 8Print a description of build plan for human consumption. For a dry runGet a compiled Setup exe !Execute a function that takes an  . Perform 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 This sets up a context for executing build steps which need to run Cabal (via a compiled Setup.hs). In particular it does the following:HEnsures the package exists in the file system, downloading if necessary.<Opens a log file if the built output shouldn't go to stderr.ZEnsures that either a simple Setup.hs is built, or the package's custom setup is built.>Provides the user a function with which run the Cabal process.vGet the build status of all the package executables. Do so by testing whether their expected output file exists, e.g. .stack-workdist x86_64-osxCabal-1.22.4.0buildalphaalpha .stack-workdist x86_64-osxCabal-1.22.4.0buildalphaalpha.exe .stack-workdist x86_64-osxCabal-1.22.4.0buildalphaalpha.jsexe/ (NOTE: a dir)JCheck whether the given executable is defined in the given dist directory.MCheck if any unlisted files have been found, and add them to the build cache.8Determine if all of the dependencies given are installedfImplements running a package's tests. Also handles producing coverage reports if coverage is enabled.*Implements running a package's benchmarks.IStrip Template Haskell "Loading package" lines and making paths absolute.[Find the Setup.hs or Setup.lhs in the given directory. If none exists, throw an exception.History of this function:Normally it would do either all executables or if the user specified requested components, just build them. Afterwards, due to this Cabal bug  ,https://github.com/haskell/cabal/issues/2780;, we had to make Stack build all executables every time.In  6https://github.com/commercialhaskell/stack/issues/3229 this was flagged up as very undesirable behavior on a large project, hence the behavior below that we build all executables once (modulo success), and thereafter pay attention to user-wanted components.CDo the current executables satisfy Cabal's bugged out requirements?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 Setup.hs input fileSetupShim.hs input filetemporary directory global packagessnapshot packageslocal packages global packagessnapshot packageslocal packagesnewConfigCachepackage directoryannouncecabal .cabal file wAll dependencies' package ids to provide to Setup.hs. If Nothing, just provide global and snapshot package databases.Is this a final build?exclude TH loading?convert paths to absolute?package's root directorycompiler we're building withproject directorydependencies of the packageglobal packages   cNone %+16<NVlN Build.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.See  6https://github.com/commercialhaskell/stack/issues/1198. Get the BaseConfigOpts- necessary for constructing configure options IProvide a function for loading package information from the package indexPSet the code page for this process as necessary. Only applies to Windows. See: 5https://github.com/commercialhaskell/stack/issues/738 PQuery information about the build and print the result to stdout in YAML format.$Get the raw build information object *callback after discovering all local files  selectors    dNone%+-13<FTUV]^8 ;Should we use a system compiler installation, if available? 0If we got the desired GHC version from that file &Run a sanity check on the selected GHC 5Don't check for a compatible GHC version/architecture 0Do not use a custom msys installation on Windows Upgrade the global Cabal library in the database to the newest version. Only works reliably with a stack-managed installation. 8Message shown to user for how to resolve the missing GHC *Location of the main stack-setup.yaml file >Alternate GHC binary distribution (requires custom GHCVariant) 7Additional ghcjs-boot options, the default is "--clean" -Default location of the stack-setup.yaml file [Modify the environment variables (like PATH) appropriately, possibly doing installation too1Add the include and lib paths to the given Config UEnsure compiler (ghc or ghcjs) is installed and provide the PATHs to add if necessarybDetermine which GHC build to use depending on which shared libraries are available on the system. Encode an OpenBSD version (like "6.1") into a valid argument for CompilerBuildSpecialized, so "maj6-min1". Later version numbers are prefixed with "r". The result r must be such that "ghc-" ++ r is a valid package name, as recognized by parsePackageNameFromString. #Ensure Docker container-compatible stack executable is downloadedBInstall the newest version or a specific version of Cabal globally 4Get the version of the system compiler, if available"Download the most recent SetupInfoQCheck if given processes appear to be present, throwing an exception if missing.Unpack a compressed tarball using 7zip. Expects a single directory in the unpacked results, which is renamed to the destination directory.BDownload 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 GHCMGet map of environment variables to set to change the GHC's encoding to UTF-8nEnsure that the Stack executable download is in the same location as the currently running executable. See: 6https://github.com/commercialhaskell/stack/issues/3232 8Message to give user when necessary GHC is not availablealready installedpackage to findwhich versions are acceptableOS Key$Name of tool, used in error messagesPath to archive fileLName of directory expected in archive. If Nothing, expects a single folder.Destination directory.label%URL, content-length, sha1, and sha256 destination optional version acceptable platformsdestination directory&perform PATH-aware checking, see #3232!test the temp exe before renaming%location of the newly downloaded file                     eNone "#+<>?Kforce a download, even if the downloaded version is older than what we arespecific version to download &git hash at time of building, if known      !"#$%&'()fNone+-<>?FTV *aRuns the given inner command with an updated configuration that has the desired GHC on the PATH. Merge two separate maps, one defining constraints on package versions and the other defining package flagmap, into a single map of version and flagmap tuples. Given a resolver, user package constraints (versions and flags) and extra dependency constraints determine what extra dependencies are required outside the resolver snapshot and the specified extra dependencies.First it tries by using the snapshot and the input extra dependencies as hard constraints, if no solution is arrived at by using hard constraints it then tries using them as soft constraints or preferences.It returns either conflicting packages when no solution is arrived at or the solution in terms of src package flag settings and extra dependencies. Given a resolver (snpashot, compiler or custom resolver) return the compiler version, package versions and packages flags for that resolver. vFinds all directories with a .cabal file or an hpack package.yaml. Subdirectories can be included depending on the recurse parameter.+CSpecial directories that we don't want to traverse for .cabal files Perform some basic checks on a list of cabal files to be used for creating stack config. It checks for duplicate package names, package name and cabal file name mismatch and reports any issues related to those.+If no error occurs it returns filepath and GenericPackageDescriptionTs pairs as well as any filenames for duplicate packages not included in the pairs. Verify the combination of resolver, package flags and extra dependencies in an existing stack.yaml and suggest changes in flags or extra dependencies so that the specified packages can be compiled. Same as checkSnapBuildPLan", but set up a real GHC if needed.If we're using a Stackage snapshot, we can use the snapshot hints to determine global library information. This will not be available for custom and GHC resolvers, however. Therefore, we insist that it be installed first. Fortunately, the standard `stack solver` behavior only chooses Stackage snapshots, so the common case will not force the installation of a bunch of GHC versions., cabal filessrc constraintsdep constraintsadditional arguments-temp dir constraints stack.yaml file location#package dirs containing cabal filesK( resolver , src package constraints , extra dependency constraints )S(Conflicting packages (resulting src package specs, external dependency specs)) actually installed compiler.Directories to scanWhether to scan sub-directories modify stack.yaml? 3project root, used for checking out necessary files                /01gNone+<>?  2List of sub directories to search for .cabal files 6Use solver to determine required external dependencies 1Exclude conflicting or incompatible user packages !Overwrite existing stack.yaml ">If True, include all .cabal files found in any sub directories #Generate stack.yaml2.Render a stack.yaml file with comments, see: 5https://github.com/commercialhaskell/stack/issues/2263Get the default resolver value3 stack.yaml6Src package name: cabal dir, cabal package descriptiont( Resolver , Flags for src packages and extra deps , Extra dependencies , Src packages actually considered)4 stack.yaml6Src package name: cabal dir, cabal package descriptionw( SnapshotDef , Flags for src packages and extra deps , Extra dependencies , Src packages actually considered)5 stack.yaml6Src package name: cabal dir, cabal package description    !  " # #     ! "     ! "hNone"#+-< $ % & ' ( ) * + , - . . - $ % & ' ( ) * + , $ % & ' ( ) * + ,iNone"#$+1<NQUV^36@Function to get command and arguments to run in Docker container7Parsed Config section of docker inspect output.8Parsed result of docker inspect. /Cleanup action. 3 Options for  =. ;xIf Docker is enabled, re-runs the currently running OS command in a Docker container. Otherwise, runs the inner action.GThis takes an optional release action which should be taken IFF control is transferring 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.9If 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.:?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. @The Docker container "entrypoint": special actions performed when first entering a container, such as switching the UID/GID to the "outside-Docker" user's.?CMVar used to ensure the Docker entrypoint is performed exactly once@dRemove the contents of a directory, without removing the directory itself. This is used instead of Z to clear bind-mounted directories, since removing the root of the bind-mount won't work.AProduce a strict ) from the stdout of a process. Throws a 9? exception if the process fails. Logs process's stderr using logError.B-Name of home directory within docker sandbox.CDirectory where stack/ executable is bind-mounted in Docker containerD4Convenience function to decode ByteString to String.E.Convenience function constructing message for log*.F1Fail with friendly error if project root not set.GEnvironment variable that contained the old sandbox ID. | Use of this variable is deprecated, and only used to detect old images. AParse Config section of docker inspect output. BParse docker inspect output.:Project root (maybe)Action to run beforeAction to run after@Directory to remove contents of1Top-level directory names to exclude from removal,Top-level file names to exclude from removal+?@ABC / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @+ = 3 4 5 6 7 8 9 : / 0 1 2B?@A @ < > ; ?C7HIJ8KLMNO / 0 1 2 3 4 5 6 7 8 9 :jNone"#-< HiEnforce mutual exclusion of every action running via this function, on this path, on this users account.A lock file is created inside the given directory. Currently, stack uses locks per-snapshot. In the future, stack may refine this to an even more fine-grain locking approach. JSLoads global config, ignoring any configuration which would be loaded due to $PWD. MhSee issue #2010 for why this exists. Currently just used for the specific case of "stack clean --full". OJLoad the configuration. Convenience function used throughout this module. Q(Unlock a lock file, if the value is Just NAction to perform before the build. This will be run on the host OS even if Docker is enabled for builds. The build config is not available in this action, since that would require build tools to be installed on the host OS.mAction that uses the build config. If Docker is enabled for builds, this will be run in a Docker container.Action to perform after the build. This will be run on the host OS even if Docker is enabled for builds. The build config is not available in this action, since that would require build tools to be installed on the host OS. G H I J K L M N O P Q J I P L M K N O G H QkNonet R(Options parser configuration for Docker. S$Parser for docker cleanup arguments. R S R SlNone +1<FQTV0 TZSpecial exception to throw when you want to fail because of bad results of package check. VDirectories to package WPVP Bounds overrides X8Whether to ignore check of the package for common errors YWhether to sign the package ZThe URL of the signature server [Whether to build the tarball \LGiven the path to a local package, creates its source distribution tarball.While this yields a  n, the name of the tarball, this tarball is not written to the disk and instead yielded as a lazy bytestring.P:Get the PVP bounds-enabled version of the given cabal fileQTraverse a data type.R Read in a 3 config. This makes some default decisions about ; fields that might not be appropriate for other use-cases.SSReturns a newline-separate list of paths, and the absolute path to the .cabal file. ]sCheck package in given tarball. This will log all warnings and will throw an exception in case of critical errors.>Note that we temporarily decompress the archive to analyze it. ^ Version of  ]I that first saves lazy bytestring to temporary directory and then calls  ] on it. \Override Config valuePath to local packageDFilename, tarball contents, and option cabal file revision to uploadPoptional revision cabal file ]"The configuration of what to checkAbsolute path to tarballTAbsolute path to tarball ^ Tarball name!Tarball contents as a byte stringULocation of tarball/Perform actions given dir with tarball contentsV,Full path to find the file on the local disk,Path to use for the tar Entry in the archive T U V W X Y Z [ \ ] ^ \ ] ^ T U V W X Y Z [WX T U V W X Y Z [mNone0 a anNone1 b0Command-line arguments parser for configuration. b boNone"#3z c'Parser for global command-line options. d(Create GlobalOpts from GlobalOptsMonoid. c d e c d epNone4- f Parser for  stack new. f fqNoneN4 g h i j g h i jrNone4 k n m l o p u t s r q v o p q r s t u k l m n v k l m n o p q r s t usNone< yRun a Stack ScriptYThe Stackage project introduced the concept of hidden packages, to deal with conflicting module names. However, this is a relatively recent addition (at time of writing). See:  <http://www.snoyman.com/blog/2017/01/conflicting-module-namest. To kick this thing off a bit better, we're included a blacklist of packages that should never be auto-parsed in.Zscript filename y ytNone< z Parser for stack hpc report. z { z {uNone? |8Parser for arguments to `stack sdist` and `stack upload` |EWhether to sign by default `stack upload` does, `stack sdist` doesn't | |vNone@ }Parser for exec command (Parser for extra options to exec command ~metavar } ~  } ~ wNoneA| #Parser for CLI-only build arguments  xNoneVB8 Hoogle command.  yNone "#+1<NJ :Necessary information to load a package or its components. Module file paths. C files. Command-line options for GHC. Launch a GHCi session for the given local package targets with the given options and configure it with the load paths and extensions of those targets.[Figure 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.\=Make information necessary to load the given package in GHCi." "    zNoneM' Parser for GHCI options  {None+<Nl DInformation about a package in the dependency graph, when available. The package version. +The license the package was released under. The normal dot options. /Separator between the package name and details. .Print dependency licenses instead of versions. Options record for  stack dot Include external dependencies Include dependencies on base OLimit the depth of dependency resolution to (Just n) or continue until fixpoint %Package names to prune from the graph 'stack TARGETs to trace dependencies for ,Flags to apply when calculating dependencies 9Like the "--test" flag for build, affects the meaning of  . :Like the "--bench" flag for build, affects the meaning of  . 8Visualize the project's dependencies as a graphviz graph]Create the dependency graph and also prune it as specified in the dot options. Returns a set of local names and and a map from package names to dependencies.^Create the dependency graph, the result is a map from a package name to a tuple of dependencies and payload 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 pruned LResolve 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 packageaNResolve the direct (depth 0) external dependencies of the given local packages UPrint a graphviz graph of the edges in the Map and highlight the given local packagesbAPrint the local nodes with a different style depending on optionsc Print nodes without dependenciesdprintDedges p ps" prints an edge from p to every pse+Print an edge between the two package namesf,Convert a package name to a graph node name.g!Print a node with no dependenciesh3Check if the package is wired in (shipped with) ghc  all locals     |Noneo #Parser for arguments to `stack dot` 2Parser for arguments to `stack list-dependencies`.  i                    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-. / 0 1 2 3 3 4 5 6 6 7 8 9 9 : ; ; < = = > ? @ A B B C D E F G H I J K 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 l m n o p q r s t u v w w x y z { | } ~                                                   !""""""""""""""""""""""""""##$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%&      !"#'$'%'&'''(')'*'*'+','-'-'.'/'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(r(s(t(u(v(w(x(x(y(z({(|(}(~(~((((((((((((((((((((((((((((((((((((((((((((((((((()))))))))))))))))))))************************++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,, , , , , ,,,,,,,,,,,,,,,,,,, ,!,",#,$,%,&,',(,),*,+,,,-,.,/-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/b/c/d/e/f/g/g/h/i/j/k/l/m/m/n/o/p/q/r/s/t/u/v/w/x/y/z/{/|/}/~////////////////////////////////////////////////////////////001111112222222222222222222222223333333333333333333333333333333333333333333333333333333333 3 3 3 3 333333333333333333333 3!3"3#3$3%3&3'3(3)3*3+3,3-3.3/303132333435363738393:3;3<3=3>3?3@3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z3[3\3]3^3_3`3a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4~44555555555555555555566666777777777777777777777777777777777        !"#$%&'()*+,-./0123456789:;<==>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkklmnopqrsstuvwxyz{||}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 9 9 9 9 9999999999999999999 9!9"9#9$9%9&9'9(9)9*9+9,9-9.9/909192939495969798999:9;9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U:V:V:W:X:Y:Y:Z:[:\:\:]:^:_:`:a:b:c:d:d:e:f:g:h:i:j:k:l:l:m:n:o:o:p:q:r:s:t:u:v:w:x:y:z:{:{:|:}:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< < < = = = = = = = = = = = = = = = = = = = = = > ? @ A B B B B B C C C !C "C #C $C %C &C 'C (C )C *C +C ,C -C .C /C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C :C ;C <C =C >C ?C @C AC BC CC DC EC FD GD HD ID JD KD LD MD ND OD PD QDD RD SE TE UE VE WE XE YF ZF [F \F ]G ^G _G `G aG bG cG dG eG fG gG hG iG jG kG lG mG nH oH oH pH qH rH sH tH uH vI wI xI yI zI {I |I } ~                                                        J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L M M M M M M N O O O O O O O O O O O O O O O O O O O O O O O O O O O O !O "P #P $P %P &P 'P ( ) * + , - . /Q 0Q 1Q 2R 3R 4R 5R 6R 7R 8S 9S 9S :S ;S <S =S >S ?S @S AS BS CS DT ET ET FT GT HT IT JT KT LT MT NT OT PT QT RT ST TT UU VU WU XU YU ZV [V \V ]V ^V _V _V `V aV bV cV dV eV fV gV hV iV jV kV lV mV nV oV pV qW rW sW tW uW vW wW xW yW zW {W |WW }W ~W W W W W W W W W W W W W W W X X X XXY Z Z [ [ [ [ [ [ [ [ \ \ \ \ \ \ \ \ ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ _ _ _ _ _ _ _ _ _ _ _ _ _ `` ` ` ` a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a b b b b b b b b b b b b c c c c c c c c c c d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d e e e e e e f !f "f #f $f %f &f 'f (f )g *g *g +g ,g -g .g /g 0h 1h 1h 2h 3h 4h 5h 6h 7h 8h 9h :i ;i <i =i >i ?i ?i @i Ai Bi Ci Di Ei Fi Gi Hi Ii Ji Ki Li Mi Ni Oi Pi Qj Rj Sj Tj Uj Vj Wj Xj Yj Zj [j \k ]k ^l _l _l `l al bl cl dl el fl gl hl il jm kn lo mo no op pq qq rq sq tr ur vr wr xr yr yr zr {r |r }r ~r r r s t t u v v v w w w x y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y z { { { { { { { { { { { { { { { { { { { { { { { { { { | | }  }  } } }                                    ! " # " $ " % " & " ' " ( " ) " * " + " , " - " . " / " 0 " 1  2 3 4 5 6 5 7 5 8 5 9 5 : 5 ; 5 < 5 =  > ? @ 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 d f  g h i j k l m n m o m p m q m r m s m t m u m v m w m x y z y { y | y } y ~                                 5 m m m m m m m m          m m y                                                   ! " ! # $ % & ' & ( ) * + , - . / 0 y 1 2 3 4 5 4 6 4 7 4 8 9 : 9 ; < = < > < ? < @ < A B C B C 9 D  E  F  G  H I J K L B M N O N P N Q N R m S m T m U m V m W  X  X Y  Z  Z [  \  \ ]  ^  ^ _  `  ` a b c d e f g h i j i k i l i m i n o p o q o r s t u v w N x N x y z  { | } ~ | }  | }                                                                              ! " # $ %& %' %( %) %* %+ %, %- %. %/ %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 <c <d ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez e{ e| e} e~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e                   !"#$%&%'()*+,-./01  /0234456789:;<=>?@ABCDEFEGHIJKLMNOijklmPP"Q"Q"R"#S#TUVU'W'X'(')'Y'W'Z*[*\*]*]*^*_*`*a*b*c,,d,e,f,g,h.i.j2k2l2m2n2n2o2p2q23r3s3t3u3v3w3w3x3y5z | }{|} ~667777788888:::;;;<<<<<<< BCCCCCCCCCCCCCCCCC CCCCCCCC !CCCGGHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIKKKKKKKKKKKKKKKKKKK K K K K KKKKKKKKKKKKKKKKKKKKK K!K"K#K$K%K&K'K(K)K*K*K+K,K-L.L/L0L1L2L3L4L5L6M7M8M9M:M;M<O=O>O?O@OAPBRCRDRERFRGRHRIRJRKRLRMSNSOSPSQSRSSSTSUSVSWSXSYSZS[S\S]S^S_S`SaSbScSdSdSeSfSgShTiTjTkTlTmTnToTpTqTrTsTsTtTuTvTvTwTxTyTzT{T|T}T~TTTTUUUUU UUUUUUUUUUUUVVVVVVWWWWWWWWWWWWWWWWW vWWXXXX6[[[[^^^^^^^^^^^^^___```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*a*aaaaaa-aaaaaaaaaaabbbbbbb b b b b bbbbbbbbbbbbbbbb bbbbb b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0c1c2c3c4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCd dDdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVeWeXe eYeZe[e[e\e\e]e^e_f`fafbfcfdfefffgghgigjgkiliminioipiqirisitiuiviwixiyizi{i6i|imi}i~iniiiilllllllllssyy{{{{{{{{{{{{$stack-1.6.3.1-Lx3ZSkZ5nhFFvhJafO580BStack.Types.VersionStack.Ghci.Script Text.PrettyPrint.Leijen.Extended Stack.PreludeSystem.Process.RunSystem.Process.ReadNetwork.HTTP.DownloadStack.Types.Config Paths_stackStack.Options.UtilsStack.Options.LogLevelParserStack.FileWatch Path.Find Path.ExtraOptions.Applicative.Complicated!Options.Applicative.Builder.ExtraStack.Options.SolverParserData.Store.VersionTaggedData.IORef.RunOnceData.Attoparsec.CombinatorsData.Attoparsec.ArgsOptions.Applicative.ArgsData.Aeson.ExtendedStack.StaticBytesStack.Types.CompilerBuildStack.Options.GhcBuildParserStack.Types.FlagNameStack.Types.GhcPkgIdStack.Types.ImageStack.Types.NixStack.Types.PackageNameStack.Types.Config.BuildStack.Options.PackageParserStack.Types.Sig Stack.Sig.GPGStack.Types.TemplateNameStack.Types.UrlsStack.Config.UrlsStack.Types.PackageIdentifierStack.Types.PackageIndexStack.Types.PackageDumpControl.Concurrent.ExecuteStack.Types.CompilerStack.Types.ResolverStack.Options.ResolverParserStack.ConstantsStack.Types.DockerData.Attoparsec.InterpreterStack.Config.NixStack.Types.VersionIntervalsStack.Types.BuildPlanSystem.Process.LogSystem.Process.PagerEditorSystem.TerminalStack.Types.Runner Stack.UploadStack.Types.PackageStack.Types.Build Stack.GhcPkgStack.PackageDumpStack.Setup.InstalledStack.Options.TestParserStack.Options.HaddockParserStack.Options.GhcVariantParserStack.Options.BenchParser Stack.ExecStack.Docker.GlobalDBStack.Constants.ConfigStack.Config.DockerStack.Config.BuildStack.Build.CacheStack.Build.Installed Stack.PathStack.PrettyPrint Stack.Package Stack.ImageStack.Build.HaddockPath.CheckInstallNetwork.HTTP.Download.VerifiedStack.PackageLocationStack.Sig.SignStack.PackageIndex Stack.New Stack.FetchStack.SnapshotStack.BuildPlan Stack.Config Stack.NixStack.Options.NixParser Stack.IDEStack.ConfigCmd Stack.CleanStack.Options.CleanParserStack.Build.TargetStack.CoverageStack.Build.SourceStack.Build.ConstructPlanStack.Build.Execute Stack.Build Stack.Setup Stack.Upgrade Stack.Solver Stack.InitStack.SetupCmd Stack.Docker Stack.RunnersStack.Options.DockerParser Stack.SDistStack.Options.BuildMonoidParserStack.Options.ConfigParserStack.Options.GlobalParserStack.Options.NewParserStack.Options.CompletionStack.Options.ScriptParser Stack.ScriptStack.Options.HpcReportParserStack.Options.SDistParserStack.Options.ExecParserStack.Options.BuildParser Stack.Hoogle Stack.GhciStack.Options.GhciParser Stack.DotStack.Options.DotParser5Hackage.Security.Client.Repository.HttpLib.HttpClientSystem.Process.InternalcreateProcess_ loadConfig loadSourceMap Stack.SigdistRelativeDirFS removeTreeS ByteString Cabal-2.0.1.0Distribution.Version VersionRangeDistribution.ModuleName ModuleName0annotated-wl-pprint-0.7.0-8APeXc1MGYdCeWTvpg0wB3!Text.PrettyPrint.Annotated.Leijen noAnnotateannotategroupnest linebreaklinealignhangindentfill fillBreakenclosebracketsanglesparensbracesdquotessquotes softbreaksoftline<+>vcathcatfillCatcatvsephsepfillSepsep punctuate encloseSepDoc&resourcet-1.2.0-7ePVvUqxgJMFbQSybg64t7%Control.Monad.Trans.Resource.Internal ResourceT/streaming-commons-0.1.19-KhD4JvhVgSxK3Slb4NunGaData.Streaming.ProcessProcessExitedUnsuccessfullyprocess-1.6.1.0System.Process readProcess)http-client-0.5.10-A3hW3qIXjLJ8sr3T66d7vRNetwork.HTTP.Client.Request parseRequest parseUrlThrow)http-conduit-2.3.0-AjtJ8zeYoBwDKFTXo3faMdNetwork.HTTP.SimplehttpJSON(microlens-0.4.8.3-Hhd1pyfmRF65YkTRK2Yote Lens.Microto-microlens-mtl-0.1.11.1-KZnNnb3QwjxFFbphNgbEBELens.Micro.Mtlviewversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName HasLogFunclogFuncLRIOunRIO NoLogging runNoLoggingmapLeft fromFirst mapMaybeA forMaybeA mapMaybeM forMaybeMstripCR runConduitRes runResourceT liftResourceTwithSystemTempDir logSticky logStickyDonerunRIO$fMonadLoggerNoLogging$fMonadUnliftIONoLogging$fMonadUnliftIORIO$fMonadLoggerIORIO$fMonadLoggerRIO$fFunctorNoLogging$fApplicativeNoLogging$fMonadNoLogging$fMonadIONoLogging $fFunctorRIO$fApplicativeRIO $fMonadRIO $fMonadIORIO$fMonadReaderRIO$fMonadThrowRIOGlobalOptsContextOuterGlobalOptsOtherCmdGlobalOptsBuildCmdGlobalOptsGhciCmdGlobalOptshideMods$fShowGlobalOptsContext$fEqGlobalOptsContextlogLevelOptsParser GhciScriptcmdAddcmdCdGhc cmdModulescriptToLazyByteStringscriptToBuilder scriptToFile$fMonoidGhciScript$fShowGhciCommandprintExceptionStderr fileWatch fileWatchPoll findFileUp findDirUp findFiles findInParentstoFilePathNoTrailingSepparseCollapsedAbsDirparseCollapsedAbsFileconcatAndColapseAbsDirdropRootrejectMissingFilerejectMissingDirpathToLazyByteStringpathToByteString pathToTexttryGetModificationTimecomplicatedOptions addCommandaddSubCommandscomplicatedParserPathCompleterOpts pcoAbsolute pcoRelative pcoRootDir pcoFileFilter pcoDirFilter boolFlagsboolFlagsNoDefaultmaybeBoolFlagsfirstBoolFlagsenableDisableFlagsenableDisableFlagsNoDefaultextraHelpOption execExtraHelp textOption textArgument optionalFirst absFileOption relFileOption absDirOption relDirOption eitherReader'defaultPathCompleterOpts fileCompleterfileExtCompleter dirCompleterpathCompleterWithunescapeBashArgsolverOptsParserversionedEncodeFileversionedDecodeOrLoadversionedDecodeFilestoreVersionConfigrunOnce appending alternatingpured concating EscapingModeEscaping NoEscaping parseArgsparseArgsFromString argsParser$fShowEscapingMode$fEqEscapingMode$fEnumEscapingMode argsArgument argsOption cmdOption JSONWarningJSONUnrecognizedFieldsJSONGeneralWarningWithJSONWarnings WarningParser.:.:?..:..:?..!= tellJSONFieldwithObjectWarningsunWarningParserlogJSONWarningsjsonSubWarningsjsonSubWarningsTjsonSubWarningsTTnoJSONWarnings$fIsStringJSONWarning$fShowJSONWarning$fMonoidWithJSONWarnings$fFunctorWithJSONWarnings$fIsStringWarningParserMonoid$fMonoidWarningParserMonoid$fGenericWithJSONWarnings$fGenericWarningParserMonoid StaticBytes DynamicBytesStaticBytesExceptionNotEnoughBytes TooManyBytesBytes128Bytes64Bytes32Bytes16Bytes8 toStaticExact toStaticPadtoStaticTruncatetoStaticPadTruncate fromStatic$fByteArrayAccessBytes8$fByteArrayAccessBytes16$fByteArrayAccessBytes32$fByteArrayAccessBytes64$fByteArrayAccessBytes128$fExceptionStaticBytesException$fDynamicBytesVector$fDynamicBytesVector0$fDynamicBytesVector1$fDynamicBytesByteString $fShowBytes8$fStaticBytesBytes128$fStaticBytesBytes64$fStaticBytesBytes32$fStaticBytesBytes16$fStaticBytesBytes8 $fEqBytes8 $fOrdBytes8$fGenericBytes8$fNFDataBytes8$fHashableBytes8 $fDataBytes8 $fStoreBytes8 $fShowBytes16 $fEqBytes16 $fOrdBytes16$fGenericBytes16$fNFDataBytes16$fHashableBytes16 $fDataBytes16$fStoreBytes16 $fShowBytes32 $fEqBytes32 $fOrdBytes32$fGenericBytes32$fNFDataBytes32$fHashableBytes32 $fDataBytes32$fStoreBytes32 $fShowBytes64 $fEqBytes64 $fOrdBytes64$fGenericBytes64$fNFDataBytes64$fHashableBytes64 $fDataBytes64$fStoreBytes64$fShowBytes128 $fEqBytes128 $fOrdBytes128$fGenericBytes128$fNFDataBytes128$fHashableBytes128$fDataBytes128$fStoreBytes128$fShowStaticBytesException$fEqStaticBytesException CompilerBuildCompilerBuildStandardCompilerBuildSpecializedcompilerBuildNamecompilerBuildSuffixparseCompilerBuild$fFromJSONCompilerBuild$fShowCompilerBuildghcBuildParserFlagNameFlagNameParseFailflagNameParser mkFlagName parseFlagNameparseFlagNameFromStringflagNameString flagNameTextfromCabalFlagNametoCabalFlagName$fShowFlagNameParseFail$fExceptionFlagNameParseFail$fFromJSONKeyFlagName$fFromJSONFlagName$fShowFlagName$fLiftFlagName $fOrdFlagName $fEqFlagName$fDataFlagName$fGenericFlagName$fHashableFlagName$fStoreFlagName$fNFDataFlagName$fToJSONKeyFlagNameGhcPkgId parseGhcPkgIdghcPkgIdParserghcPkgIdString$fExceptionGhcPkgIdParseFail$fShowGhcPkgIdParseFail$fToJSONGhcPkgId$fFromJSONGhcPkgId$fShowGhcPkgId$fStoreGhcPkgId$fNFDataGhcPkgId$fHashableGhcPkgId $fEqGhcPkgId $fOrdGhcPkgId$fDataGhcPkgId$fGenericGhcPkgIdImageOptsMonoidimgMonoidDockersImageDockerOpts imgDockerBaseimgDockerEntrypoints imgDockerAddimgDockerImageNameimgDockerExecutables ImageOpts imgDockers imgArgNameimgDockerOldArgNameimgDockersArgNameimgDockerBaseArgNameimgDockerAddArgNameimgDockerEntrypointsArgNameimgDockerImageNameArgNameimgDockerExecutablesArgName$fFromJSONWithJSONWarnings$fMonoidImageOptsMonoid$fFromJSONWithJSONWarnings0$fShowImageDockerOpts$fShowImageOpts$fShowImageOptsMonoid$fGenericImageOptsMonoid NixOptsMonoidnixMonoidDefaultEnablenixMonoidEnablenixMonoidPureShellnixMonoidPackagesnixMonoidInitFilenixMonoidShellOptions nixMonoidPathnixMonoidAddGCRootsNixOpts nixEnable nixPureShell nixPackages nixInitFilenixShellOptions nixAddGCRootsnixEnableArgNamenixPureShellArgNamenixPackagesArgNamenixInitFileArgNamenixShellOptsArgNamenixPathArgNamenixAddGCRootsArgName$fMonoidNixOptsMonoid $fShowNixOpts$fEqNixOptsMonoid$fShowNixOptsMonoid$fGenericNixOptsMonoid PackageNamePackageNameParseFailCabalFileNameParseFailCabalFileNameInvalidPackageNamepackageNameParser mkPackageNameparsePackageNameparsePackageNameFromStringpackageNameStringpackageNameTextfromCabalPackageNametoCabalPackageNameparsePackageNameFromFilePathpackageNameArgument$fShowPackageNameParseFail$fExceptionPackageNameParseFail$fFromJSONKeyPackageName$fFromJSONPackageName$fShowPackageName$fLiftPackageName$fEqPackageName$fOrdPackageName$fDataPackageName$fGenericPackageName$fHashablePackageName$fNFDataPackageName$fStorePackageName$fToJSONPackageName$fToJSONKeyPackageName FileWatchOpts NoFileWatch FileWatch FileWatchPollBenchmarkOptsMonoidbeoMonoidAdditionalArgsbeoMonoidDisableRun BenchmarkOptsbeoAdditionalArgs beoDisableRunHaddockOptsMonoidhoMonoidAdditionalArgs HaddockOptshoAdditionalArgsTestOptsMonoidtoMonoidRerunTeststoMonoidAdditionalArgstoMonoidCoveragetoMonoidDisableRunTestOpts toRerunTeststoAdditionalArgs toCoverage toDisableRun BuildSubsetBSAllBSOnlySnapshotBSOnlyDependenciesBuildOptsMonoidbuildMonoidTracebuildMonoidProfilebuildMonoidNoStripbuildMonoidLibProfilebuildMonoidExeProfilebuildMonoidLibStripbuildMonoidExeStripbuildMonoidHaddockbuildMonoidHaddockOptsbuildMonoidOpenHaddocksbuildMonoidHaddockDepsbuildMonoidHaddockInternal!buildMonoidHaddockHyperlinkSourcebuildMonoidInstallExesbuildMonoidInstallCompilerToolbuildMonoidPreFetchbuildMonoidKeepGoingbuildMonoidForceDirtybuildMonoidTestsbuildMonoidTestOptsbuildMonoidBenchmarksbuildMonoidBenchmarkOptsbuildMonoidReconfigurebuildMonoidCabalVerbosebuildMonoidSplitObjsbuildMonoidSkipComponents BuildCommandBuildTestHaddockBenchInstall BuildOptsCLIboptsCLITargetsboptsCLIDryrunboptsCLIGhcOptions boptsCLIFlagsboptsCLIBuildSubsetboptsCLIFileWatch boptsCLIExecboptsCLIOnlyConfigureboptsCLICommandboptsCLIInitialBuildSteps BuildOptsboptsLibProfileboptsExeProfile boptsLibStrip boptsExeStrip boptsHaddockboptsHaddockOptsboptsOpenHaddocksboptsHaddockDepsboptsHaddockInternalboptsHaddockHyperlinkSourceboptsInstallExesboptsInstallCompilerTool boptsPreFetchboptsKeepGoingboptsForceDirty boptsTests boptsTestOptsboptsBenchmarksboptsBenchmarkOptsboptsReconfigureboptsCabalVerboseboptsSplitObjsboptsSkipComponentsdefaultBuildOptsdefaultBuildOptsCLIdefaultTestOptsdefaultHaddockOptsdefaultBenchmarkOpts$fMonoidTestOptsMonoid$fMonoidHaddockOptsMonoid$fMonoidBenchmarkOptsMonoid$fFromJSONWithJSONWarnings1$fMonoidBuildOptsMonoid$fFromJSONWithJSONWarnings2$fEqBuildCommand$fShowBuildCommand$fShowBuildSubset$fEqBuildSubset $fEqTestOpts$fShowTestOpts$fShowTestOptsMonoid$fGenericTestOptsMonoid$fEqHaddockOpts$fShowHaddockOpts$fShowHaddockOptsMonoid$fGenericHaddockOptsMonoid$fEqBenchmarkOpts$fShowBenchmarkOpts$fShowBuildOpts$fShowBenchmarkOptsMonoid$fGenericBenchmarkOptsMonoid$fShowBuildOptsMonoid$fGenericBuildOptsMonoid$fShowFileWatchOpts$fEqFileWatchOpts$fShowBuildOptsCLIreadFlag SigExceptionGPGFingerprintExceptionGPGNotFoundExceptionGPGSignExceptionGPGVerifyExceptionSigInvalidSDistTarBallSigNoProjectRootExceptionSigServiceException Fingerprint Signature mkFingerprint$fShowSignature$fIsStringFingerprint$fToJSONFingerprint$fFromJSONFingerprint$fShowFingerprint$fFromJSONAeson$fShowSigException$fExceptionSigException$fOrdSignature $fEqSignature$fEqFingerprint$fOrdFingerprint $fOrdAeson $fEqAesongpgSign gpgVerify TemplateInfoauthor description TemplatePathAbsPathRelPathUrlPath TemplateNametemplateNameArgumenttemplateParamArgumentparseTemplateNameFromStringmkTemplateName templateName templatePath$fFromJSONTemplateName$fFromJSONTemplateInfo$fEqTemplatePath$fOrdTemplatePath$fShowTemplatePath$fOrdTemplateName$fEqTemplateName$fShowTemplateName$fEqTemplateInfo$fOrdTemplateInfo$fShowTemplateInfo UrlsMonoidurlsMonoidLatestSnapshoturlsMonoidLtsBuildPlansurlsMonoidNightlyBuildPlansUrlsurlsLatestSnapshoturlsLtsBuildPlansurlsNightlyBuildPlans$fMonoidUrlsMonoid $fShowUrls$fShowUrlsMonoid$fGenericUrlsMonoidurlsFromMonoid VersionCheck MatchMinor MatchExact NewerMinorIntersectingVersionRangegetIntersectingVersionRangeVersion UpgradeToSpecificLatest versionParser parseVersionparseVersionFromString versionString versionTexttoCabalVersionfromCabalVersion mkVersionversionRangeText withinRangeintersectVersionRangestoMajorVersionlatestApplicableVersionnextMajorVersion checkVersion minorVersion stackVersionstackMinorVersion$fShowVersionParseFail$fExceptionVersionParseFail$fFromJSONKeyVersion$fFromJSONVersion$fToJSONVersion $fShowVersion $fLiftVersion$fHashableVersion $fMonoidIntersectingVersionRange$fFromJSONVersionCheck$fToJSONVersionCheck $fEqVersion $fOrdVersion $fDataVersion$fGenericVersion$fStoreVersion$fNFDataVersion$fShowUpgradeTo$fShowIntersectingVersionRange$fShowVersionCheck$fEqVersionCheck$fOrdVersionCheck CabalFileInfo CFILatestCFIHash CFIRevision StaticSHA256 CabalHashPackageIdentifierRevisionpirIdent pirRevisionPackageIdentifierpackageIdentifierNamepackageIdentifierVersionmkStaticSHA256FromTextmkStaticSHA256FromFilemkStaticSHA256FromDigeststaticSHA256ToTextstaticSHA256ToBase16staticSHA256ToRawmkCabalHashFromSHA256computeCabalHash showCabalHashtoTuple fromTuplepackageIdentifierParserparsePackageIdentifier parsePackageIdentifierFromStringparsePackageIdentifierRevisionpackageIdentifierStringpackageIdentifierRevisionStringpackageIdentifierTexttoCabalPackageIdentifierfromCabalPackageIdentifier%$fExceptionPackageIdentifierParseFail $fShowPackageIdentifierParseFail$fFromJSONPackageIdentifier$fToJSONPackageIdentifier$fShowPackageIdentifier$fStorePackageIdentifier$fHashablePackageIdentifier$fNFDataPackageIdentifier$fHashableCabalFileInfo$fNFDataCabalFileInfo$fStoreCabalFileInfo#$fFromJSONPackageIdentifierRevision!$fToJSONPackageIdentifierRevision$fShowPackageIdentifierRevision $fStorePackageIdentifierRevision#$fHashablePackageIdentifierRevision!$fNFDataPackageIdentifierRevision$fEqPackageIdentifier$fOrdPackageIdentifier$fGenericPackageIdentifier$fDataPackageIdentifier$fGenericStaticSHA256$fShowStaticSHA256$fEqStaticSHA256$fNFDataStaticSHA256$fDataStaticSHA256$fOrdStaticSHA256$fHashableStaticSHA256$fStoreStaticSHA256$fGenericCabalHash$fShowCabalHash $fEqCabalHash$fNFDataCabalHash$fDataCabalHash$fOrdCabalHash$fStoreCabalHash$fHashableCabalHash$fGenericCabalFileInfo$fShowCabalFileInfo$fEqCabalFileInfo$fOrdCabalFileInfo$fDataCabalFileInfo$fEqPackageIdentifierRevision$fOrdPackageIdentifierRevision"$fGenericPackageIdentifierRevision$fDataPackageIdentifierRevision PackageIndex indexName indexLocation indexTypeindexDownloadPrefixindexRequireHashesHackageSecurityhsKeyIdshsKeyThreshold IndexTypeITHackageSecurity ITVanilla IndexName unIndexNameHSPackageDownloadunHSPackageDownloadPackageDownloadpdSHA256pdUrlpdSize OffsetSize PackageCache indexNameText$fNFDataOffsetSize$fStoreOffsetSize$fFromJSONPackageDownload$fNFDataPackageDownload$fStorePackageDownload$fMonoidPackageCache$fFromJSONHSPackageDownload$fFromJSONIndexName$fToJSONIndexName$fFromJSONHackageSecurity$fGenericOffsetSize$fEqOffsetSize$fShowOffsetSize$fDataOffsetSize$fShowPackageDownload$fGenericPackageDownload$fEqPackageDownload$fDataPackageDownload$fGenericPackageCache$fEqPackageCache$fShowPackageCache$fDataPackageCache$fStorePackageCache$fNFDataPackageCache$fShowIndexName $fEqIndexName$fOrdIndexName$fHashableIndexName$fStoreIndexName$fShowHackageSecurity$fEqHackageSecurity$fOrdHackageSecurity$fShowIndexType $fEqIndexType$fOrdIndexType$fShowPackageIndexInstalledCacheEntryinstalledCacheProfilinginstalledCacheHaddockinstalledCacheSymbolsinstalledCacheIdentInstalledCacheInnerInstalledCacheinstalledCacheVC$fStoreInstalledCacheEntry$fEqInstalledCacheEntry$fGenericInstalledCacheEntry$fShowInstalledCacheEntry$fDataInstalledCacheEntry$fStoreInstalledCacheInner$fGenericInstalledCacheInner$fEqInstalledCacheInner$fShowInstalledCacheInner$fDataInstalledCacheInner ActionContext acRemaining acDownstreamActionactionId actionDepsactionDoActionId ActionTypeATBuild ATBuildFinalATFinal runActions$fShowExecuteException$fExceptionExecuteException$fShowActionType$fEqActionType$fOrdActionType$fShowActionId $fEqActionId $fOrdActionIdCompilerVersion GhcVersion GhcjsVersionCVTypeCVWantedCVActual WhichCompilerGhcGhcjsactualToWantedwantedToActualparseCompilerVersioncompilerVersionTextcompilerVersionString whichCompilerisWantedCompiler getGhcVersioncompilerExeNamehaddockExeName$fFromJSONKeyCompilerVersion$fFromJSONCompilerVersion$fToJSONCompilerVersion$fNFDataCompilerVersion$fStoreCompilerVersion$fShowWhichCompiler$fEqWhichCompiler$fOrdWhichCompiler$fGenericCompilerVersion$fShowCompilerVersion$fEqCompilerVersion$fOrdCompilerVersion$fDataCompilerVersion SnapshotHash SnapshotssnapshotsNightly snapshotsLtsSnapNameLTSNightlyAbstractResolverARLatestNightly ARLatestLTSARLatestLTSMajor ARResolverARGlobal ResolverWithResolverSnapshotResolverCompilerResolverCustomResolverLoadedResolverIsLoadedLoaded NotLoadedresolverRawNameparseCustomLocationparseResolverTextreadAbstractResolverrenderSnapName parseSnapNametrimmedSnapshotHashsnapshotHashToBSsnapshotHashFromBSsnapshotHashFromDigest$fNFDataSnapName$fStoreSnapName$fFromJSONResolverWith$fToJSONResolverWith$fShowBuildPlanTypesException"$fExceptionBuildPlanTypesException$fFromJSONSnapshots$fNFDataSnapshotHash$fStoreSnapshotHash$fNFDataResolverWith$fStoreResolverWith$fGenericSnapName$fShowSnapName$fDataSnapName $fEqSnapName$fGenericResolverWith$fShowResolverWith$fDataResolverWith$fEqResolverWith$fFunctorResolverWith$fFoldableResolverWith$fTraversableResolverWith$fShowAbstractResolver$fShowSnapshots$fGenericSnapshotHash$fShowSnapshotHash$fDataSnapshotHash$fEqSnapshotHashabstractResolverOptsParsercompilerOptsParserreadCompilerVersionhaskellModuleExtsstackProgNameUpper stackProgName stackDotYamlstackWorkEnvVarstackRootEnvVarstackRootOptionNamedeprecatedStackRootOptionNameinContainerEnvVarinNixShellEnvVarwiredInPackagesghcjsBootPackagescabalPackageName"implicitGlobalProjectDirDeprecatedimplicitGlobalProjectDirdefaultUserConfigPathDeprecateddefaultUserConfigPath!defaultGlobalConfigPathDeprecateddefaultGlobalConfigPath buildPlanDirbuildPlanCacheDirplatformVariantEnvVarcompilerOptionsCabalFlagghcColorForceFlagminTerminalWidthmaxTerminalWidthdefaultTerminalWidthStackDockerExceptionDockerMustBeEnabledExceptionOnlyOnHostExceptionInspectFailedExceptionNotPulledExceptionInvalidCleanupCommandExceptionInvalidImagesOutputExceptionInvalidPSOutputExceptionInvalidInspectOutputExceptionPullFailedExceptionDockerTooOldException DockerVersionProhibitedExceptionBadDockerVersionExceptionInvalidVersionOutputExceptionHostStackTooOldExceptionContainerStackTooOldException#CannotDetermineProjectRootExceptionDockerNotInstalledException(UnsupportedStackExeHostPlatformExceptionDockerStackExeParseExceptionVersionRangeJSONunVersionRangeJSONDockerMonoidRepoOrImageDockerMonoidRepoDockerMonoidImageMountDockerStackExeDockerStackExeDownloadDockerStackExeHostDockerStackExeImageDockerStackExePathDockerOptsMonoiddockerMonoidDefaultEnabledockerMonoidEnabledockerMonoidRepoOrImagedockerMonoidRegistryLogindockerMonoidRegistryUsernamedockerMonoidRegistryPassworddockerMonoidAutoPulldockerMonoidDetachdockerMonoidPersistdockerMonoidContainerNamedockerMonoidRunArgsdockerMonoidMountdockerMonoidEnvdockerMonoidDatabasePathdockerMonoidStackExedockerMonoidSetUser dockerMonoidRequireDockerVersion DockerOpts dockerEnable dockerImagedockerRegistryLogindockerRegistryUsernamedockerRegistryPassworddockerAutoPull dockerDetach dockerPersistdockerContainerName dockerRunArgs dockerMount dockerEnvdockerDatabasePathdockerStackExe dockerSetUserdockerRequireDockerVersionparseDockerStackExedockerEnableArgNamedockerRepoArgNamedockerImageArgNamedockerRegistryLoginArgNamedockerRegistryUsernameArgNamedockerRegistryPasswordArgNamedockerAutoPullArgNamedockerDetachArgNamedockerRunArgsArgNamedockerMountArgNamedockerEnvArgNamedockerContainerNameArgNamedockerPersistArgNamedockerDatabasePathArgNamedockerStackExeArgNamedockerStackExeDownloadValdockerStackExeHostValdockerStackExeImageValdockerSetUserArgName!dockerRequireDockerVersionArgNamedockerEntrypointArgName dockerCmdNamedockerHelpOptNamedockerPullCmdNamedockerCleanupCmdName reExecArgNamedockerContainerPlatform$fFromJSONDockerStackExe$fFromJSONMount $fShowMount $fReadMount$fMonoidDockerOptsMonoid$fFromJSONVersionRangeJSON$fShowStackDockerException$fExceptionStackDockerException$fShowDockerStackExe$fShowDockerOpts$fShowDockerMonoidRepoOrImage$fShowDockerOptsMonoid$fGenericDockerOptsMonoidinterpreterArgsParsergetInterpreterArgsStackNixException)NixCannotUseShellFileAndPackagesExceptionnixOptsFromMonoid nixCompiler$fShowStackNixException$fExceptionStackNixExceptionVersionIntervalstoVersionRangefromVersionRangewithinIntervalsunionVersionIntervalsintersectVersionIntervals $fNFDataBound $fStoreBound$fNFDataVersionInterval$fStoreVersionInterval$fNFDataVersionIntervals$fStoreVersionIntervals$fGenericBound $fShowBound $fEqBound $fDataBound$fGenericVersionInterval$fShowVersionInterval$fEqVersionInterval$fDataVersionInterval$fGenericVersionIntervals$fShowVersionIntervals$fEqVersionIntervals$fDataVersionIntervals ModuleInfo miModules unModuleNameLoadedPackageInfo lpiVersion lpiLocationlpiFlags lpiGhcOptionslpiPackageDepslpiProvidedExes lpiNeededExeslpiExposedModuleslpiHideLoadedSnapshotlsCompilerVersion lsGlobals lsPackagesExeName unExeNameReporepoUrl repoCommitrepoType repoSubdirsSubdirsDefaultSubdirsExplicitSubdirsRepoTypeRepoGitRepoHgArchive archiveUrlarchiveSubdirs archiveHashPackageLocationIndexPLIndexPLOtherPackageLocation PLFilePath PLArchivePLRepo SnapshotDefsdParent sdResolversdResolverName sdLocationssdDropPackagessdFlagssdHidden sdGhcOptions sdGlobalHints snapshotDefVC sdRawPathNamesetCompilerVersionloadedSnapshotVCfromCabalModuleName moduleInfoVCsdWantedCompilerVersion$fNFDataArchive$fStoreArchive$fNFDataRepoType$fStoreRepoType$fFromJSONSubdirs$fNFDataSubdirs$fStoreSubdirs $fNFDataRepo $fStoreRepo$fToJSONPackageLocation$fNFDataPackageLocation$fStorePackageLocation$fToJSONPackageLocationIndex$fNFDataPackageLocationIndex$fStorePackageLocationIndex$fNFDataSnapshotDef$fStoreSnapshotDef$fNFDataComponent$fStoreComponent$fMonoidDepInfo$fNFDataDepInfo$fStoreDepInfo$fNFDataLoadedPackageInfo$fStoreLoadedPackageInfo$fNFDataLoadedSnapshot$fStoreLoadedSnapshot$fMonoidModuleInfo$fNFDataModuleInfo$fStoreModuleInfo$fGenericArchive $fShowArchive $fEqArchive $fOrdArchive $fDataArchive$fFunctorArchive$fGenericRepoType$fShowRepoType $fEqRepoType $fOrdRepoType$fDataRepoType$fGenericSubdirs $fShowSubdirs $fEqSubdirs $fDataSubdirs $fGenericRepo $fShowRepo$fEqRepo $fOrdRepo $fDataRepo $fFunctorRepo$fGenericPackageLocation$fShowPackageLocation$fEqPackageLocation$fOrdPackageLocation$fDataPackageLocation$fFunctorPackageLocation$fGenericPackageLocationIndex$fShowPackageLocationIndex$fEqPackageLocationIndex$fOrdPackageLocationIndex$fDataPackageLocationIndex$fFunctorPackageLocationIndex$fShowSnapshotDef$fEqSnapshotDef$fDataSnapshotDef$fGenericSnapshotDef $fShowExeName $fEqExeName $fOrdExeName$fHashableExeName$fIsStringExeName$fGenericExeName$fStoreExeName$fNFDataExeName $fDataExeName$fGenericComponent$fShowComponent $fEqComponent$fOrdComponent$fDataComponent$fEnumComponent$fBoundedComponent$fGenericDepInfo $fShowDepInfo $fEqDepInfo $fDataDepInfo$fShowModuleName$fEqModuleName$fOrdModuleName$fGenericModuleName$fStoreModuleName$fNFDataModuleName$fDataModuleName$fGenericLoadedPackageInfo$fShowLoadedPackageInfo$fEqLoadedPackageInfo$fDataLoadedPackageInfo$fFunctorLoadedPackageInfo$fGenericLoadedSnapshot$fShowLoadedSnapshot$fDataLoadedSnapshot$fEqLoadedSnapshot$fShowModuleInfo$fEqModuleInfo$fOrdModuleInfo$fGenericModuleInfo$fDataModuleInfologCreateProcesswithProcessTimeLogshowProcessArgDebugEditorExceptionEditorNotFoundEditorExitFailurePagerException PagerNotFoundPagerExitFailure pageWriterpageByteString pageBuilderpageFile pageStringeditFileeditReaderWritereditByteString editString$fExceptionPagerException$fShowPagerException$fExceptionEditorException$fShowEditorExceptionReadProcessException ProcessFailed NoPathFoundExecutableNotFoundExecutableNotFoundAt EnvOverride eoTextMap eoStringListeoPath eoExeCacheeoExeExtensions eoPlatform unEnvOverride envSearchPathmodifyEnvOverride mkEnvOverride envHelperreadProcessNulltryProcessStdouttryProcessStderrStdoutreadProcessStdoutreadProcessStderrStdoutsinkProcessStdoutlogProcessStderrStdoutsinkProcessStderrStdoutsinkProcessStderrStdoutHandle preProcessdoesExecutableExistfindExecutable resetExeCachegetEnvOverride augmentPathaugmentPathMap$fExceptionReadProcessException$fShowReadProcessException$fShowInvalidPathException$fExceptionInvalidPathExceptionCmdcmdDirectoryToRunIncmdCommandToRuncmdEnvOverridecmdCommandLineArgumentsrunCmdrunCmd' callProcess callProcess'callProcessInheritStderrStdoutcallProcessObserveStdoutcreateProcess'getTerminalWidth$fStorableWindowWidth$fEqWindowWidth$fOrdWindowWidth$fShowWindowWidth ColorWhen ColorNever ColorAlways ColorAuto LogOptions logUseColor logTermWidth logUseUnicode logUseTime logMinLevellogVerboseFormatStickyunSticky HasRunnerrunnerLRunner runnerReExecrunnerLogOptionsrunnerTerminal runnerStickyrunnerParsedCabalFiles terminalLreExecLstickyL logOptionsL withRunner$fHasLogFuncRunner$fHasRunnerRunner$fShowColorWhen$fGenericColorWhen HasEnvConfig envConfigLHasBuildConfig buildConfigL HasConfigconfigL HasGHCVariant ghcVariantL HasPlatform platformLplatformVariantL DockerUserduUidduGidduGroupsduUmaskDockerEntrypointdeUser PvpBoundspbType pbAsRevision PvpBoundsType PvpBoundsNonePvpBoundsUpperPvpBoundsLower PvpBoundsBothSetupInfoLocationSetupInfoFileOrURLSetupInfoInline SetupInfo siSevenzExe siSevenzDllsiMsys2siGHCssiGHCJSssiStackGHCDownloadInfogdiConfigureOptsgdiConfigureEnvgdiDownloadInfoVersionedDownloadInfo vdiVersionvdiDownloadInfo DownloadInfodownloadInfoUrldownloadInfoContentLengthdownloadInfoSha1downloadInfoSha256 GHCVariant GHCStandardGHCIntegerSimple GHCCustomPlatformVariantPlatformVariantNoneSCMGitProjectAndConfigMonoidGlobalInfoSourceGISSnapshotHints GISCompilerWhichSolverCmd IsInitCmd IsSolverCmdIsNewCmdConfigExceptionParseConfigFileExceptionParseCustomSnapshotExceptionNoProjectConfigFoundUnexpectedArchiveContentsUnableToExtractArchiveBadStackVersionExceptionNoMatchingSnapshotResolverMismatchResolverPartialNoSuchDirectoryParseGHCVariantException BadStackRoot3Won'tCreateStackRootInDirectoryOwnedByDifferentUserUserDoesn'tOwnDirectoryFailedToCloneRepo4ManualGHCVariantSettingsAreIncompatibleWithSystemGHCNixRequiresSystemGhc NoResolverWhenUsingNoLocalConfigInvalidResolverForNoLocalConfigDuplicateLocalPackageNames ConfigMonoidconfigMonoidStackRootconfigMonoidWorkDirconfigMonoidBuildOptsconfigMonoidDockerOptsconfigMonoidNixOptsconfigMonoidConnectionCountconfigMonoidHideTHLoadingconfigMonoidLatestSnapshotUrlconfigMonoidUrlsconfigMonoidPackageIndicesconfigMonoidSystemGHCconfigMonoidInstallGHCconfigMonoidSkipGHCCheckconfigMonoidSkipMsysconfigMonoidCompilerCheckconfigMonoidRequireStackVersionconfigMonoidArchconfigMonoidGHCVariantconfigMonoidGHCBuildconfigMonoidJobsconfigMonoidExtraIncludeDirsconfigMonoidExtraLibDirsconfigMonoidOverrideGccPathconfigMonoidOverrideHpackconfigMonoidConcurrentTestsconfigMonoidLocalBinPathconfigMonoidImageOptsconfigMonoidTemplateParametersconfigMonoidScmInitconfigMonoidGhcOptionsByNameconfigMonoidGhcOptionsByCatconfigMonoidExtraPathconfigMonoidSetupInfoLocationsconfigMonoidLocalProgramsBaseconfigMonoidPvpBoundsconfigMonoidModifyCodePageconfigMonoidExplicitSetupDepsconfigMonoidRebuildGhcOptionsconfigMonoidApplyGhcOptionsconfigMonoidAllowNewerconfigMonoidDefaultTemplateconfigMonoidAllowDifferentUserconfigMonoidDumpLogsconfigMonoidSaveHackageCreds"configMonoidIgnoreRevisionMismatchProjectprojectUserMsgprojectPackagesprojectDependencies projectFlagsprojectResolverprojectCompilerprojectExtraPackageDBs LoadConfiglcConfiglcLoadBuildConfig lcProjectRootNamedComponentCLibCExeCTestCBenchLocalPackageView lpvCabalFPlpvGPDlpvLoc LocalPackages lpProjectlpDependencies EnvConfigenvConfigBuildConfigenvConfigCabalVersionenvConfigCompilerVersionenvConfigCompilerBuildenvConfigPackagesRefenvConfigLoadedSnapshot BuildConfigbcConfig bcSnapshotDef bcGHCVariant bcPackagesbcDependenciesbcExtraPackageDBs bcStackYamlbcFlagsbcImplicitGlobalGlobalOptsMonoidglobalMonoidReExecVersionglobalMonoidDockerEntrypointglobalMonoidLogLevelglobalMonoidTimeInLogglobalMonoidConfigMonoidglobalMonoidResolverglobalMonoidCompilerglobalMonoidTerminalglobalMonoidColorWhenglobalMonoidTermWidthglobalMonoidStackYaml StackYamlLoc SYLDefault SYLOverride SYLNoConfig GlobalOptsglobalReExecVersionglobalDockerEntrypointglobalLogLevelglobalTimeInLogglobalConfigMonoidglobalResolverglobalCompilerglobalTerminalglobalColorWhenglobalTermWidthglobalStackYamlEvalOptsevalArg evalExtra ExecOptsExtra ExecOptsPlainExecOptsEmbellished eoEnvSettings eoPackages eoRtsOptionseoCwdSpecialExecCmdExecCmdExecGhc ExecRunGhcExecOptseoCmdeoArgseoExtra EnvSettingsesIncludeLocalsesIncludeGhcPackagePath esStackExe esLocaleUtf8 esKeepGhcRtsDumpLogs DumpNoLogsDumpWarningLogs DumpAllLogsApplyGhcOptions AGOTargets AGOLocals AGOEverythingHpackExecutable HpackBundled HpackCommandConfigconfigStackRoot configWorkDirconfigUserConfigPath configBuild configDocker configNixconfigEnvOverrideconfigLocalProgramsBaseconfigLocalProgramsconfigConnectionCountconfigHideTHLoadingconfigPlatformconfigPlatformVariantconfigGHCVariant0configGHCBuild configUrlsconfigPackageIndicesconfigSystemGHCconfigInstallGHCconfigSkipGHCCheckconfigSkipMsysconfigCompilerCheckconfigLocalBinconfigRequireStackVersion configJobsconfigOverrideGccPathconfigOverrideHpackconfigExtraIncludeDirsconfigExtraLibDirsconfigConcurrentTests configImageconfigTemplateParams configScmInitconfigGhcOptionsByNameconfigGhcOptionsByCatconfigSetupInfoLocationsconfigPvpBoundsconfigModifyCodePageconfigExplicitSetupDepsconfigRebuildGhcOptionsconfigApplyGhcOptionsconfigAllowNewerconfigDefaultTemplateconfigAllowDifferentUserconfigPackageCacheconfigDumpLogsconfigMaybeProjectconfigAllowLocalsconfigSaveHackageCreds configRunnerconfigIgnoreRevisionMismatchdefaultLogLevel readColorWhen stackYamlL projectRootLlpvRootlpvName lpvComponents lpvVersionparseConfigMonoidconfigMonoidSystemGHCNameconfigMonoidInstallGHCNameaskLatestSnapshotUrlconfigPackageIndexRootconfigPackageIndexCacheconfigPackageIndexCacheOldconfigPackageIndexconfigPackageIndexOldconfigPackageIndexGzconfigPackageTarballworkDirLgetProjectWorkDirconfigInstalledCacheplatformOnlyRelDir snapshotsDirinstallationRootDepsinstallationRootLocalbindirCompilerTools hoogleRoothoogleDatabasePathplatformGhcRelDirplatformGhcVerOnlyRelDiruseShaPathOnWindowspackageDatabaseDepspackageDatabaseLocalpackageDatabaseExtraflagCacheLocalconfigLoadedSnapshotCache bindirSuffix docDirSuffix hpcReportDir extraBinDirsgetMinimalEnvOverrideminimalEnvSettingsgetCompilerPathparseProjectAndConfigMonoidghcVariantNameghcVariantSuffixparseGHCVariantparsePvpBoundsexplicitSetupDeps stackRootLwantedCompilerVersionLactualCompilerVersionLpackageIndicesL buildOptsLbuildOptsMonoidHaddockLbuildOptsMonoidTestsLbuildOptsMonoidBenchmarksLbuildOptsMonoidInstallExesLbuildOptsInstallExesLbuildOptsHaddockL globalOptsLglobalOptsBuildOptsMonoidL configUrlsL cabalVersionLloadedSnapshotLwhichCompilerL envOverrideLshouldForceGhcColorFlagappropriateGhcColorFlag$fFromJSONApplyGhcOptions$fFromJSONDumpLogs$fToJSONProject$fExceptionConfigException$fShowConfigException $fToJSONSCM $fFromJSONSCM$fFromJSONGHCVariant$fMonoidSetupInfo$fFromJSONWithJSONWarnings3$fFromJSONWithJSONWarnings4$fFromJSONPvpBounds$fToJSONPvpBounds$fMonoidConfigMonoid$fHasLogFuncConfig$fHasRunnerConfig$fHasLogFuncBuildConfig$fHasLogFuncLoadConfig$fHasLogFuncEnvConfig$fMonoidGlobalOptsMonoid$fFromJSONKeyGhcOptionKey$fFromJSONGhcOptions$fHasRunnerEnvConfig$fHasRunnerBuildConfig$fHasRunnerLoadConfig$fHasEnvConfigEnvConfig$fHasBuildConfigEnvConfig$fHasBuildConfigBuildConfig$fHasConfigEnvConfig$fHasConfigBuildConfig$fHasConfigLoadConfig$fHasConfigConfig$fHasGHCVariantEnvConfig$fHasGHCVariantBuildConfig$fHasGHCVariantGHCVariant$fHasPlatformEnvConfig$fHasPlatformBuildConfig$fHasPlatformLoadConfig$fHasPlatformConfig$fHasPlatform(,)$fShowHpackExecutable$fReadHpackExecutable$fEqHpackExecutable$fOrdHpackExecutable$fShowApplyGhcOptions$fReadApplyGhcOptions$fEqApplyGhcOptions$fOrdApplyGhcOptions$fEnumApplyGhcOptions$fBoundedApplyGhcOptions$fShowDumpLogs$fReadDumpLogs $fEqDumpLogs $fOrdDumpLogs$fEnumDumpLogs$fBoundedDumpLogs$fShowEnvSettings$fEqEnvSettings$fOrdEnvSettings$fShowSpecialExecCmd$fEqSpecialExecCmd$fShowExecOptsExtra$fShowExecOpts$fShowEvalOpts$fShowStackYamlLoc$fFunctorStackYamlLoc$fFoldableStackYamlLoc$fTraversableStackYamlLoc$fShowNamedComponent$fEqNamedComponent$fOrdNamedComponent$fShowPackageEntry $fShowProject $fShowSCM$fShowGHCVariant$fShowDownloadInfo$fShowVersionedDownloadInfo$fShowGHCDownloadInfo$fShowSetupInfo$fShowSetupInfoLocation$fShowPvpBoundsType$fReadPvpBoundsType$fEqPvpBoundsType$fOrdPvpBoundsType$fEnumPvpBoundsType$fBoundedPvpBoundsType$fShowPvpBounds$fReadPvpBounds $fEqPvpBounds$fOrdPvpBounds$fShowConfigMonoid$fGenericConfigMonoid$fReadDockerUser$fShowDockerUser$fReadDockerEntrypoint$fShowDockerEntrypoint$fShowGlobalOptsMonoid$fGenericGlobalOptsMonoid$fShowGlobalOpts$fEqGhcOptionKey$fOrdGhcOptionKey HackageCreds loadCreds uploadBytesuploaduploadRevision$fFromJSON(->)$fToJSONHackageCreds$fShowHackageCreds InstalledLibrary Executable InstalledMap DotCabalPathDotCabalModulePathDotCabalMainPathDotCabalFilePathDotCabalCFilePathDotCabalDescriptorDotCabalModule DotCabalMain DotCabalFile DotCabalCFileModTime FileCacheInfo fciModTimefciSizefciHashInstalledPackageLocation InstalledTo ExtraGlobalInstallLocationSnapLocal LocalPackage lpPackage lpComponents lpUnbuildablelpWanted lpTestDeps lpBenchDeps lpTestBenchlpDir lpCabalFile lpForceDirty lpDirtyFileslpNewBuildCachelpFiles lpLocation PackageSourcePSFilesPSIndex SourceMap PackageConfigpackageConfigEnableTestspackageConfigEnableBenchmarkspackageConfigFlagspackageConfigGhcOptionspackageConfigCompilerVersionpackageConfigPlatformPackageWarningUnlistedModulesWarningGetPackageFilesgetPackageFiles CabalFileTypeAllFilesModules BuildInfoOptsbioOptsbioOneWordOptsbioPackageFlagsbioCabalMacrosGetPackageOptsgetPackageOptsPackage packageNamepackageVersionpackageLicense packageFiles packageDeps packageToolspackageAllDepspackageGhcOptions packageFlagspackageDefaultFlagspackageLibraries packageTestspackageBenchmarks packageExes packageOptspackageHasExposedModulespackageBuildTypepackageSetupDepsPackageLibraries NoLibraries HasLibrariesPackageExceptionPackageInvalidCabalFilePackageNoCabalFileFoundPackageMultipleCabalFilesFoundMismatchedCabalNameMismatchedCabalIdentifierpackageIdentifierpackageDefinedFlags piiVersion piiLocationpiiPackageLocationrenderComponentrenderPkgComponentsrenderPkgComponent exeComponentstestComponentsbenchComponentsisCLibisCExeisCTestisCBench modTimeVC testSuccessVCdotCabalModule dotCabalMaindotCabalModulePathdotCabalMainPathdotCabalCFilePathdotCabalGetPathinstalledPackageIdentifierinstalledVersion$fShowPackageException$fExceptionPackageException$fMonoidInstallLocation$fNFDataFileCacheInfo$fStoreFileCacheInfo$fShowGetPackageFiles $fEqPackage $fOrdPackage$fShowGetPackageOpts$fShowPackageLibraries$fShowBuildInfoOpts$fShowPackageConfig$fShowInstallLocation$fEqInstallLocation$fShowInstalledPackageLocation$fEqInstalledPackageLocation $fOrdModTime $fShowModTime$fGenericModTime $fEqModTime$fNFDataModTime$fStoreModTime $fDataModTime$fGenericFileCacheInfo$fShowFileCacheInfo$fEqFileCacheInfo$fDataFileCacheInfo$fEqDotCabalDescriptor$fOrdDotCabalDescriptor$fShowDotCabalDescriptor$fEqDotCabalPath$fOrdDotCabalPath$fShowDotCabalPath$fShowInstalled $fEqInstalled$fShowPackageSource$fShowLocalPackage $fShowPackagePrecompiledCache pcLibrarypcExes ConfigureOptscoDirscoNoDirsBaseConfigOpts bcoSnapDB bcoLocalDBbcoSnapInstallRootbcoLocalInstallRoot bcoBuildOptsbcoBuildOptsCLI bcoExtraDBsPlan planTasks planFinalsplanUnregisterLocalplanInstallExesTaskTypeTTFilesTTIndexTaskConfigOpts tcoMissingtcoOptsTask taskProvidestaskTypetaskConfigOpts taskPresent taskAllInOnetaskCachePkgSrctaskAnyMissingtaskBuildTypeConfig CachePkgSrcCacheSrcUpstream CacheSrcLocal ConfigCacheconfigCacheOptsconfigCacheDepsconfigCacheComponentsconfigCacheHaddockconfigCachePkgSrc BuildCachebuildCacheTimes UnusedFlags UFNoPackageUFFlagsNotDefined UFSnapshot FlagSource FSCommandLine FSStackYamlStackBuildExceptionCouldn'tFindPkgIdCompilerVersionMismatchCouldn'tParseTargetsUnknownTargetsTestSuiteFailureTestSuiteTypeUnsupportedConstructPlanFailedCabalExitedUnsuccessfullySetupHsBuildFailureExecutionFailureLocalPackageDoesn'tMatchTargetNoSetupHsFoundInvalidFlagSpecificationTargetParseException SolverGiveUpSolverMissingCabalInstallSomeTargetsNotBuildableTestSuiteExeMissingCabalCopyFailedLocalPackagesPresent buildCacheVC toCachePkgSrc configCacheVCttPackageLocation taskIsTarget taskLocation configureOpts isStackOptwantedLocalPackagesmodTimeprecompiledCacheVC$fExceptionStackBuildException$fShowStackBuildException$fStoreBuildCache$fNFDataBuildCache$fNFDataCachePkgSrc$fStoreCachePkgSrc$fNFDataConfigureOpts$fStoreConfigureOpts$fShowTaskConfigOpts$fNFDataConfigCache$fStoreConfigCache$fNFDataPrecompiledCache$fStorePrecompiledCache$fShowFlagSource$fEqFlagSource$fOrdFlagSource$fShowUnusedFlags$fEqUnusedFlags$fOrdUnusedFlags$fShowPkgDepsOracle$fEqPkgDepsOracle$fHashablePkgDepsOracle$fStorePkgDepsOracle$fNFDataPkgDepsOracle$fGenericBuildCache$fEqBuildCache$fShowBuildCache$fDataBuildCache$fGenericCachePkgSrc$fEqCachePkgSrc$fShowCachePkgSrc$fDataCachePkgSrc$fShowTaskType$fShowBaseConfigOpts$fShowConfigureOpts$fEqConfigureOpts$fGenericConfigureOpts$fDataConfigureOpts $fShowTask $fShowPlan$fGenericConfigCache$fEqConfigCache$fShowConfigCache$fDataConfigCache$fShowPrecompiledCache$fEqPrecompiledCache$fGenericPrecompiledCache$fDataPrecompiledCache getGlobalDBcreateDatabase ghcPkgExeNameghcPkgPathEnvVarfindGhcPkgFieldunregisterGhcPkgIdgetCabalPkgVermkGhcPackagePathLine DumpPackage dpGhcPkgIddpPackageIdent dpLicense dpLibDirs dpLibrariesdpHasExposedModulesdpExposedModules dpDependsdpHaddockInterfaces dpHaddockHtml dpProfiling dpHaddock dpSymbols dpIsExposed ghcPkgDumpghcPkgDescribenewInstalledCacheloadInstalledCachesaveInstalledCache pruneDeps sinkMatching addProfiling addHaddock addSymbolsconduitDumpPackage eachSectioneachPair$fShowPackageDumpException$fExceptionPackageDumpException$fShowDumpPackage$fEqDumpPackage ExtraDirsedBins edIncludeedLibTool ToolGhcjs toolStringtoolNameString parseToolText markInstalledunmarkInstalled listInstalledgetCompilerVersion extraDirs installDirtempInstallDir$fMonoidExtraDirs$fShowExtraDirs$fGenericExtraDirstestOptsParserhaddockOptsParserghcVariantParserbenchOptsParserdefaultEnvSettingsplainEnvSettingsexec execSpawn execObserveDockerImageLastUsedDockerImageExeIdDockerImageProjectIdupdateDockerImageLastUsedgetDockerImagesLastUsedpruneDockerImagesLastUsedgetDockerImageExesetDockerImageExe*$fToBackendKeySqlBackendDockerImageProject!$fPersistEntityDockerImageProject#$fPersistFieldSqlDockerImageProject $fPersistFieldDockerImageProject&$fToBackendKeySqlBackendDockerImageExe$fPersistEntityDockerImageExe$fPersistFieldSqlDockerImageExe$fPersistFieldDockerImageExe $fShowKey $fReadKey$fEqKey$fOrdKey$fPathPieceKey$fToHttpApiDataKey$fFromHttpApiDataKey$fPersistFieldKey$fPersistFieldSqlKey $fToJSONKey $fFromJSONKey $fShowKey0 $fReadKey0$fEqKey0 $fOrdKey0$fPathPieceKey0$fToHttpApiDataKey0$fFromHttpApiDataKey0$fPersistFieldKey0$fPersistFieldSqlKey0 $fToJSONKey0$fFromJSONKey0$fShowDockerImageProject$fShowDockerImageExeobjectInterfaceDirLbuildCacheFiletestSuccessFile testBuiltFileconfigCacheFileconfigCabalMod hpcDirFromDirhpcRelativeDirdistDirFromDirworkDirFromDir templatesDirprojectDockerSandboxDirimageStagingDirStackDockerConfigExceptionResolverNotSupportedExceptionInvalidDatabasePathExceptiondockerOptsFromMonoid $fShowStackDockerConfigException%$fExceptionStackDockerConfigExceptionbuildOptsFromMonoidhaddockOptsFromMonoidtestOptsFromMonoidbenchmarkOptsFromMonoidgetInstalledExesmarkExeInstalledmarkExeNotInstalledtryGetBuildCachetryGetConfigCachetryGetCabalModwriteBuildCachewriteConfigCache writeCabalMod deleteCachestryGetFlagCachewriteFlagCachesetTestSuccessunsetTestSuccesscheckTestSuccesswritePrecompiledCachereadPrecompiledCacheGetInstalledOptsgetInstalledProfilinggetInstalledHaddockgetInstalledSymbols getInstalled $fEqAllowed $fShowAllowed$fShowLoadHelperpath pathParser$fHasBuildConfigPathInfo$fHasConfigPathInfo$fHasRunnerPathInfo$fHasLogFuncPathInfo$fHasPlatformPathInfo HasAnsiAnn getAnsiAnn toAnsiDocAnsiAnnAnsiDocDisplayAnndisplay displayPlain renderDefault displayAnsi hDisplayAnsiblack dullblackonblack ondullblackreddullredonred ondullredgreen dullgreenongreen ondullgreenyellow dullyellowonyellow ondullyellowbluedullblueonblue ondullbluemagenta dullmagenta onmagenta ondullmagentacyandullcyanoncyan ondullcyanwhite dullwhiteonwhite ondullwhiteboldfaintnormal $fMonoidDoc $fDisplayDoc$fHasAnsiAnn()$fHasAnsiAnnAnsiAnn $fEqAnsiAnn $fShowAnsiAnn$fMonoidAnsiAnn $fEqSGRTag $fOrdSGRTagdisplayWithColor prettyDebug prettyInfo prettyWarn prettyErrorprettyWarnNoIndentprettyErrorNoIndent prettyDebugL prettyInfoL prettyWarnL prettyErrorLprettyWarnNoIndentLprettyErrorNoIndentL prettyDebugS prettyInfoS prettyWarnS prettyErrorSprettyWarnNoIndentSprettyErrorNoIndentSindentAfterLabelwordDocsflow debugBracket styleError styleWarning styleGood styleShell styleFilestyleUrlstyleDir styleCurrent styleTarget styleModuledisplayMilliseconds bulletedListspacedBulletedList $fDisplay(,) $fDisplayPath$fDisplayPath0$fDisplayVersion$fDisplayPackageIdentifier$fDisplayPackageNamePackageDescriptionPairpdpOrigBuildablepdpModifiedBuildablereadPackageUnresolvedDirgpdPackageIdentifiergpdPackageName gpdVersionreadPackageUnresolvedIndexreadPackageDirreadPackageDescriptionDirreadDotBuildinforesolvePackagepackageFromPackageDescription autogenDirpackageDependenciespackageDescToolsresolvePackageDescription buildLogPathcabalFilePackageId$fHasEnvConfigCtx$fHasBuildConfigCtx$fHasConfigCtx$fHasRunnerCtx$fHasLogFuncCtx$fHasGHCVariantCtx$fHasPlatformCtxstageContainerImageArtifactscreateContainerImageFromStage imgCmdNameimgDockerCmdNameimgOptsFromMonoid$fShowStackImageException$fExceptionStackImageExceptionopenHaddocksInBrowsershouldHaddockPackageshouldHaddockDepsgenerateLocalHaddockIndexgenerateDepsHaddockIndexgenerateSnapHaddockIndexwarnInstallSearchPathIssuesVerifiedDownloadExceptionWrongContentLengthWrongStreamLength WrongDigest LengthCheckCheckHexDigestCheckHexDigestStringCheckHexDigestByteStringCheckHexDigestHeader HashCheckhashCheckAlgorithmhashCheckHexDigestDownloadRequest drRequest drHashChecks drLengthCheck drRetryPolicydrRetryPolicyDefaultrecoveringHttpverifiedDownload$fIsStringCheckHexDigest$$fExceptionVerifiedDownloadException$fShowVerifiedDownloadException$fExceptionVerifyFileException$fShowCheckHexDigest$fShowVerifyFileException$fShowHashCheckresolveSinglePackageLocationresolveMultiPackageLocationparseSingleCabalFileIndexparseSingleCabalFileparseMultiCabalFilesparseMultiCabalFilesIndexDownloadExceptionRedownloadFaileddownload redownloadsetGithubHeaders$fExceptionDownloadException$fShowDownloadExceptionsign signTarBytes signPackageupdateAllIndicesgetPackageVersionslookupPackageVersionsgetPackageCaches$fShowPackageIndexException $fExceptionPackageIndexExceptionNewOptsnewOptsProjectNamenewOptsCreateBarenewOptsTemplatenewOptsNonceParamsnew listTemplates getTemplatesdefaultTemplateName$fFromJSONTemplateSet$fShowNewException$fExceptionNewExceptionResolvedPackagerpIdent rpDownload rpOffsetSizerpIndex fetchPackagesunpackPackagesunpackPackageIdentunpackPackageIdentsresolvePackagesresolvePackagesAllowMissingwithCabalFileswithCabalLoaderuntar$fShowFetchException$fExceptionFetchException$fShowResolvedPackage loadResolver loadSnapshotcalculatePackagePromotion$fShowSnapshotException$fExceptionSnapshotExceptionBuildPlanCheckBuildPlanCheckOkBuildPlanCheckPartialBuildPlanCheckFailDepError deVersion deNeededBy DepErrorsBuildPlanExceptionUnknownPackagesSnapshotNotFound"NeitherCompilerOrResolverSpecified getToolMap gpdPackagesgpdPackageDepsremoveSrcPkgDefaultFlagscheckSnapBuildPlanselectBestSnapshot showItems$fShowBuildPlanException$fExceptionBuildPlanException$fShowBuildPlanCheck$fShowDepErrorLocalConfigStatus LCSNoProject LCSProject LCSNoConfig MiniConfiggetImplicitGlobalProjectDir getStackYaml getSnapshotsmakeConcreteResolverloadMiniConfigloadConfigMaybeProjectgetLocalPackagescheckOwnershipgetInContainer getInNixShellloadConfigYamlgetProjectConfigpackagesParserdefaultConfigYaml$fHasLogFuncMiniConfig$fHasRunnerMiniConfig$fHasGHCVariantMiniConfig$fHasPlatformMiniConfig$fHasConfigMiniConfig$fShowLocalConfigStatus$fFunctorLocalConfigStatus$fFoldableLocalConfigStatus$fTraversableLocalConfigStatusreexecWithOptionalShell nixCmdNamenixHelpOptName nixOptsParser listPackages listTargets ConfigCmdSetConfigCmdSetResolverConfigCmdSetSystemGhcConfigCmdSetInstallGhc cfgCmdSet cfgCmdName cfgCmdSetNameconfigCmdSetParserStackCleanExceptionNonLocalPackages CleanOpts CleanShallow CleanFullclean$fExceptionStackCleanException$fShowStackCleanExceptioncleanOptsParser PackageTypeProjectPackage DependencyTarget TargetAll TargetComps RawTargetRTPackageComponent RTComponent RTPackageRTPackageIdentifierUnresolvedComponentResolvedComponent NeedTargetsAllowNoTargetsparseRawTarget parseTargets$fShowUnresolvedComponent$fEqUnresolvedComponent$fOrdUnresolvedComponent$fShowRawTarget $fEqRawTarget$fEqPackageType$fShowPackageType HpcReportOpts hroptsInputs hroptsAll hroptsDestDirhroptsOpenBrowserdeleteHpcReports updateTixFilegenerateHpcReportgenerateHpcReportForTargetsgenerateHpcUnifiedReportgenerateHpcMarkupIndex$fShowHpcReportOptsloadSourceMapFull getLocalFlags getGhcOptionsaddUnlistedToBuildCache constructPlan$fMonoidMonoidMap $fMonoidW$fShowPackageInfo$fShowAddDepRes $fShowDepType $fEqDepType$fShowToolWarning$fEqBadDependency$fOrdBadDependency$fShowBadDependency$fEqConstructPlanException$fOrdConstructPlanException$fShowConstructPlanException $fEqDepsPath $fOrdDepsPath$fShowDepsPath $fEqMonoidMap$fOrdMonoidMap$fReadMonoidMap$fShowMonoidMap$fGenericMonoidMap$fFunctorMonoidMap $fGenericW$fOrdVersionRangeExcludeTHLoading KeepTHLoading ExecuteEnvpreFetch printPlanwithExecuteEnv executePlanwithSingleContext$fShowExecutableBuildStatus$fEqExecutableBuildStatus$fOrdExecutableBuildStatusCabalVersionExceptionunCabalVersionExceptionbuildsplitObjsWarningmkBaseConfigOptswithLoadPackagequeryBuildInfo $fExceptionCabalVersionException$fShowCabalVersionExceptionStackReleaseInfo SetupOptssoptsInstallIfMissingsoptsUseSystemsoptsWantedCompilersoptsCompilerChecksoptsStackYamlsoptsForceReinstallsoptsSanityChecksoptsSkipGhcCheck soptsSkipMsyssoptsUpgradeCabalsoptsResolveMissingGHCsoptsSetupInfoYamlsoptsGHCBindistURLsoptsGHCJSBootOptsdefaultSetupInfoYamlsetupEnvensureCompilerensureDockerStackExegetSystemCompilergetCabalInstallVersionremoveHaskellEnvVarsdownloadStackReleaseInfopreferredPlatformsdownloadStackExegetDownloadVersion$fShowSetupException$fExceptionSetupException$fAlternativeCheckDependency$fApplicativeCheckDependency$fShowSetupOpts$fFunctorCheckDependency UpgradeOpts upgradeOptsupgrade$fShowBinaryOpts$fShowSourceOpts$fShowUpgradeOptsparseCabalOutputLinemergeConstraintssolveResolverSpecgetResolverConstraints findCabalDirscabalPackagesChecksolveExtraDepscheckSnapBuildPlanActual$fEqConstraintTypeInitOpts searchDirs useSolver omitPackagesforceOverwriteincludeSubDirs initProject SetupCmdOptsscoCompilerVersionscoForceReinstallscoUpgradeCabalscoSetupInfoYamlscoGHCBindistURLscoGHCJSBootOptsscoGHCJSBootClean setupParsersetup CleanupActionCleanupInteractiveCleanupImmediate CleanupDryRun CleanupOptsdcAction"dcRemoveKnownImagesLastUsedDaysAgo#dcRemoveUnknownImagesCreatedDaysAgo$dcRemoveDanglingImagesCreatedDaysAgo'dcRemoveStoppedContainersCreatedDaysAgo'dcRemoveRunningContainersCreatedDaysAgoreexecWithOptionalContainerpreventInContainercleanuppullreset entrypoint$fFromJSONImageConfig$fFromJSONInspect$fShowCleanupAction$fShowCleanupOpts$fShowImageConfig $fShowInspectloadCompilerVersionwithUserFileLockwithConfigAndLockwithGlobalConfigAndLockwithBuildConfigwithBuildConfigAndLockwithBuildConfigAndLockNoDockerwithBuildConfigExtloadConfigWithOptswithMiniConfigAndLock munlockFiledockerOptsParserdockerCleanupOptsParser SDistOptssdoptsDirsToWorkWithsdoptsPvpBoundssdoptsIgnoreCheck sdoptsSignsdoptsSignServerUrlsdoptsBuildTarballgetSDistTarballcheckSDistTarballcheckSDistTarball'$fShowCheckException$fExceptionCheckExceptionbuildOptsMonoidParserconfigOptsParserglobalOptsParserglobalOptsFromMonoidinitOptsParser newOptsParserghcOptsCompletertargetCompleter flagCompleterprojectExeCompleter ScriptExecute SEInterpret SECompile SEOptimize ScriptOpts soPackagessoFilesoArgs soCompile soGhcOptionsscriptOptsParser$fShowScriptExecute$fShowScriptOpts scriptCmdhpcReportOptsParserpvpBoundsOptionsdistOptsParserexecOptsParserevalOptsParserexecOptsExtraParserbuildOptsParser targetsParser flagsParser hoogleCmd GhciExceptionInvalidPackageOptionLoadingDuplicateModulesMissingFileTargetCan'tSpecifyFilesAndTargetsCan'tSpecifyFilesAndMainIsGhciTargetParseException GhciPkgInfo ghciPkgName ghciPkgOpts ghciPkgDirghciPkgModulesghciPkgModFiles ghciPkgCFiles ghciPkgMainIsghciPkgTargetFilesghciPkgPackageGhciOpts ghciTargetsghciArgsghciGhcOptions ghciFlagsghciGhcCommandghciNoLoadModulesghciAdditionalPackages ghciMainIsghciLoadLocalDepsghciSkipIntermediateghciHidePackages ghciNoBuild ghciOnlyMainghci$fShowGhciException$fExceptionGhciException$fShowGhciOpts$fShowGhciPkgInfoghciOptsParser DotPayloadpayloadVersionpayloadLicense ListDepsOptslistDepsDotOpts listDepsSeplistDepsLicenseDotOptsdotIncludeExternaldotIncludeBasedotDependencyDepthdotPrune dotTargetsdotFlagsdotTestTargetsdotBenchTargetsdotlistDependencies pruneGraphresolveDependencies printGraph$fEqDotPayload$fShowDotPayload dotOptsParserlistDepsOptsParser withClientNetwork.HTTP.Client.TypesManager makeHttpLib/hackage-security-0.5.2.2-HdTEGnGlcKhCAXaEw4hyZr*Hackage.Security.Client.Repository.HttpLibHttpLib wrapCustomExsetRequestHeadersgetResponseHeaderstransformers-0.5.2.0Control.Monad.Trans.ReaderReaderT,monad-logger-0.3.28.1-C3VW3BHsHst4u7wWKleXzXControl.Monad.Logger MonadLoggerbase Data.MaybemapMaybeghc-prim GHC.Classes==GHC.Baseflip++GHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwiseassertmap$GHC.Real fromIntegral realToFrac Control.MonadguardjoinGHC.EnumBoundedminBoundmaxBoundEnumEq/= GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonadfail>>=>>return Data.DataDatagfoldlgunfoldtoConstr dataTypeOf dataCast1 dataCast2gmapTgmapQlgmapQrgmapQgmapQigmapMgmapMpgmapMoFunctorfmap<$GHC.NumNum*+-negate fromIntegerabssignumOrd>=minmax><<=compareGHC.ReadReadReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorGHC.ShowShowshowData.Typeable.InternalTypeable Data.StringIsString fromString Applicativepure<*>*><*liftA2 Data.FoldableFoldabletoListproductsumelemlengthnullfoldl'foldrfoldMapfoldData.Traversable Traversable sequenceAtraversemapMsequence GHC.GenericsGenericMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeIntegerMaybeNothingJustOrderingLTEQGTRationalIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRightnot||&&GHC.Errerror undefinedString=<<idconst.$!asTypeOfsubtractcurryuncurrymaybe replicate takeWhile dropWhiletakedropspanbreakreverselookupevenodd^^^gcdlcm Data.Functor<$>either Data.OldListlinesunlineswordsunwords sequence_concat concatMapandoranyallnotElemGHC.IOFilePath byteSwap16 byteSwap32 byteSwap64deepseq-1.4.3.0Control.DeepSeqNFDatarnfcontainers-0.5.10.2Data.Map.InternalMap MonadPlusmplusmzero Alternativemanysome<|>whenliftMliftM2isJust isNothing fromMaybe maybeToList listToMaybe catMaybesvoidData.Ord comparing Data.MonoidAnygetAnyAllgetAll traverse_for_forfilterMfoldMunlessbytestring-0.10.8.2Data.ByteString.Internal<>'hashable-1.2.6.1-JDYnvpSucMf1h1i2CUUtVbData.Hashable.ClassHashable#text-1.2.2.2-EakMpasry3jA6OIwSZhq9MData.Text.InternalText3unordered-containers-0.2.8.0-3iSQJVS3Sio885UUC852ojData.HashMap.BaseHashMap'exceptions-0.8.3-6TQSgd6QYnC83Uf6EwjUmsControl.Monad.Catch MonadThrowthrowMGHC.IO.Handle.TypesHandle$async-2.1.1.1-H3j65XcXMHtBvmNwGCQ80GControl.Concurrent.Async waitBothSTMwaitEitherSTM_ waitEitherSTMwaitEitherCatchSTM waitAnySTMwaitAnyCatchSTMpollSTM waitCatchSTMwaitSTMAsync asyncThreadId Data.VoidabsurdVoidControl.Concurrent.ChanChanControl.Monad.IO.ClassMonadIOliftIO<$!> replicateM_foldM_ zipWithM_zipWithMforever<=<>=>forMControl.Applicativeoptional Control.Arrowfirstsecond***&&&GHC.IO.Handle.FDstderrstdin GHC.Conc.Sync writeTVarreadTVarnewTVarSTMTVarGHC.IO.ExceptionSomeAsyncExceptionstdout BufferMode NoBuffering LineBufferingBlockBuffering GHC.IO.DeviceSeekMode GHC.IORefIORef IOException GHC.Exception ExceptiondisplayException toException fromExceptionmsumasum sequenceA_forM_mapM_EndoappEndoSumgetSumProduct getProductFirstgetFirstLastgetLast Text.Read readMaybeisRightisLeftpartitionEithersrightslefts GHC.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteMode Data.Function&onfix$>GHC.MVarMVarliftA3liftA SomeExceptionGHC.Stack.Types HasCallStack runReaderT$conduit-1.3.0-AabKG8vjW9UECOcWBfesBWData.Conduit.Internal.Conduit runConduit.|ConduitM,unliftio-core-0.1.1.0-3wrHy3Ijr0BBoYMyh4oX3gControl.Monad.IO.Unlift MonadUnliftIO withRunInIO askUnliftIOControl.Monad.Trans.Class MonadTransliftData.IntMap.InternalIntMapData.IntSet.InternalIntSetData.Set.InternalSetforce$!!)fast-logger-2.4.11-HV87SLVcdIl6jY5useCQhoSystem.Log.FastLogger.LogStrLogStrtoLogStrLens.Micro.TypeGetting mtl-2.2.1-DscMMmDQUE6GBfOSl4qMUHControl.Monad.Reader.Classasks MonadReaderaskControl.Monad.Logger.CallStacklogOtherlogErrorlogWarnlogInfologDebugliftLocLogLevel LevelDebug LevelInfo LevelWarn LevelError LevelOther LogSourcemonadLoggerLog MonadLoggerIO askLoggerIOtemplate-haskellLanguage.Haskell.TH.SyntaxLoc!path-0.6.1-7oq7eXaNpNpDETkK2JgEZdPathAbsRelFileDir Path.Internal toFilePath"stm-2.4.4.1-6AExGOUG8NB2Rzejnay0wwControl.Concurrent.STM.TVarswapTVar modifyTVar' modifyTVarControl.Concurrent.STM.TQueue isEmptyTQueue unGetTQueue tryPeekTQueue peekTQueue tryReadTQueue readTQueue writeTQueue newTQueueTQueueControl.Concurrent.STM.TMVar isEmptyTMVar swapTMVar tryReadTMVar readTMVarputTMVar tryTakeTMVar takeTMVar newEmptyTMVarnewTMVarTMVarControl.Concurrent.STM.TChan cloneTChan isEmptyTChan unGetTChandupTChan tryPeekTChan peekTChan tryReadTChan readTChan writeTChannewBroadcastTChannewTChanTChanControl.Concurrent.STM.TBQueue isFullTBQueueisEmptyTBQueue unGetTBQueuetryPeekTBQueue peekTBQueuetryReadTBQueue readTBQueue writeTBQueue newTBQueueTBQueue$store-0.4.3.2-2FMPSULDyvW7GoeJPLVzAxData.Store.ImplStoreUnliftIOunliftIO askRunInIO withUnliftIOtoIO&unliftio-0.2.4.0-AqvaKsbL9zlJG3C7blatPUnliftIO.TimeouttimeoutUnliftIO.TemporarywithTempDirectory withTempFilewithSystemTempDirectorywithSystemTempFile UnliftIO.STM newTBQueueIO newTQueueIOnewBroadcastTChanIO newTChanIO mkWeakTMVarnewEmptyTMVarIO newTMVarIO mkWeakTVar registerDelay readTVarIO newTVarIOcheckSTMretrySTM atomically UnliftIO.MVar mkWeakMVarmodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVar tryReadMVar isEmptyMVar tryPutMVar tryTakeMVarswapMVarreadMVarputMVartakeMVarnewMVar newEmptyMVarUnliftIO.IORef mkWeakIORefatomicWriteIORefatomicModifyIORef'atomicModifyIORef modifyIORef' modifyIORef writeIORef readIORefnewIORef UnliftIO.IOgetMonotonicTimehReady hWaitForInputhGetEchohSetEchohIsTerminalDevice hIsSeekable hIsWritable hIsReadable hIsClosedhIsOpenhTellhSeek hGetBuffering hSetBufferinghIsEOF hSetFileSize hFileSizehFlushhClosewithBinaryFilewithFileUnliftIO.AsyncreplicateConcurrently_replicateConcurrentlyforConcurrently_mapConcurrently_forConcurrentlymapConcurrently concurrently_ concurrentlyrace_racelink2linkwaitBoth waitEither_waitEitherCatchCancelwaitEitherCancelwaitEitherCatch waitEitherwaitAnyCatchCancel waitAnyCancel waitAnyCatchwaitAny cancelWithuninterruptibleCancelcancel waitCatchpollwaitwithAsyncOnWithUnmaskwithAsyncWithUnmask withAsyncOnwithAsyncBound withAsyncasyncOnWithUnmaskasyncWithUnmaskasyncOn asyncBoundasync ConcurrentlyrunConcurrentlyUnliftIO.Exception fromEitherM fromEitherIO fromEither impureThrowthrowTostringException throwStringuninterruptibleMask_mask_uninterruptibleMaskmaskisAsyncExceptionisSyncExceptiontoAsyncExceptiontoSyncExceptionthrowIO onException withExceptionfinallybracketOnError_bracketOnErrorbracket_bracket evaluateDeepevaluate catchesDeepcatches pureTryDeeppureTrytryJust tryAnyDeeptryDeeptryAnytryIOtry handleJust handleAnyDeep handleDeep handleAnyhandleIOhandle catchJust catchAnyDeep catchDeepcatchAnycatchIOcatchHandlerSyncExceptionWrapperAsyncExceptionWrapperStringException UnliftIO.ChanwriteList2ChangetChanContentsdupChanreadChan writeChannewChan Data.HashSetHashSet&vector-0.12.0.1-LflPw1fguMb6as60UrZpxN Data.VectorVector quoteFileName GhciCommandAddCdGhcModule unGhciScript fileWatchConf findPathUpparent parseAbsDir parseAbsFilecollapseFilePath$path-io-1.3.3-1S9rvh50YitJFWYrOA1t3hPath.IOforgivingAbsence resolveFilecanonicalizePathSystem.IO.ErrorisDoesNotExistError addCommand' hsubparser' helpOption4optparse-applicative-0.14.0.0-4lUmz4wQFPF3MT2QNzqxF0Options.Applicative.ExtrahandleParseResultOptions.Applicative.Builder abortOptionoptionargument eitherReaderstoreEncodeFileversionedDecodeOrLoadImplWarningParserMonoid$aeson-1.2.4.0-BCbjHKPmbhgK9ldqys4mc6Data.Aeson.Types.FromJSON withObjectData.Aeson.Types.InternalParser Data.AesoneitherDecodeStrict' eitherDecode'eitherDecodeStrict eitherDecode decodeStrict'decode' decodeStrictdecodeencodeData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncodingData.Aeson.Types.ToJSON toEncoding2toJSON2 toEncoding1toJSON1genericLiftToEncodinggenericToEncodinggenericLiftToJSON genericToJSONToArgsNoToArgsTo1ArgsToJSONtoJSON toEncoding toJSONListtoEncodingListKeyValue.= ToJSONKey toJSONKey toJSONKeyListToJSONKeyFunction ToJSONKeyTextToJSONKeyValueToJSON1 liftToJSONliftToJSONListliftToEncodingliftToEncodingListToJSON2 liftToJSON2liftToJSONList2liftToEncoding2liftToEncodingList2Data.Aeson.Encoding.Internalpairs fromEncodingEncodingSeries.!=.:!fromJSONwithEmbeddedJSONwithBoolwithScientific withNumber withArraywithText parseJSON2 parseJSON1genericLiftParseJSONgenericParseJSON GFromJSON gParseJSONFromArgs NoFromArgs From1ArgsFromJSON parseJSON parseJSONList FromJSONKey fromJSONKeyfromJSONKeyListFromJSONKeyFunctionFromJSONKeyCoerceFromJSONKeyTextFromJSONKeyTextParserFromJSONKeyValue FromJSON1 liftParseJSONliftParseJSONList FromJSON2liftParseJSON2liftParseJSONList2Data.Aeson.Parser.Internaljson'jsoncamelTo2defaultTaggedObjectdefaultOptionsobjectResultErrorSuccessObjectArrayValueNumberNull DotNetTimefromDotNetTimeOptionsfieldLabelModifierconstructorTagModifierallNullaryToStringTagomitNothingFields sumEncodingunwrapUnaryRecordstagSingleConstructors SumEncoding TaggedObject UntaggedValueObjectWithSingleField TwoElemArray tagFieldNamecontentsFieldNameData.Aeson.Types.GenericZeroOnewpmExpectedFields wpmWarnings withPeekD fromWordsDlengthStoWordsSusePeekSlengthDGhcPkgIdParseFailAeson_unAesongpg gpgWarnTTYVersionParseFail unVersionPackageIdentifierParseFailcabalHashToText unCabalHash"PackageIdentifierRevisionParseFailExecuteExceptionInconsistentDependencies ExecuteState esActions esExceptions esInAction esCompleted esFinalLock esKeepGoingunSnapshotHashBuildPlanTypesExceptionParseSnapNameExceptionParseResolverExceptionFilepathInDownloadedSnapshothaskellFileExtshaskellPreprocessorExtsBoundExclusiveBoundInclusiveBoundVersionIntervalviLowerVersion viLowerBoundviUpper Component CompLibraryCompExecutable CompTestSuite CompBenchmarkDepInfo _diComponents_diRangeorElseSinkInvalidPathExceptionPathsInvalidInPath System.ExitexitWithSystem.Process.Common UseHandle WindowWidthreplaceUnicode loggerFunctimestampLength withStickygetCanUseUnicodeTreatLikeExtraDepparseConfigMonoidObjectplatformSnapAndCompilerRelplatformGhcVerOnlyRelDirStrpackageEntryCurrDirplatformVariantSuffixparseDownloadInfoFromObject GhcOptions unGhcOptions GhcOptionKeyGOKOldEverything GOKEverything GOKLocals GOKTargets GOKPackage SuggestSolverDon'tSuggestSolver PackageEntrypeExtraDepMaybe peLocation peSubdirspromptPassword hcUsername hcPassword hcCredsFile PkgDepsOracleconfigureOptsNoDirPkgDepsghcPkgpackageDbFlagsfindGhcPkgVersion ghcPkgCmdArgs takeWhileC isProfilinghasDebuggingSymbolsPackageDumpExceptionMissingSingleFieldCouldn'tParseFieldExitCode withGlobalDBDockerImageExedockerImageExeImageHashdockerImageExeExePathdockerImageExeExeTimestampdockerImageExeCompatibleDockerImageProjectdockerImageProjectImageHashdockerImageProjectProjectPathdockerImageProjectLastUsedTime*D:R:PersistEntityBackendDockerImageProjectDockerImageExeUniqueDockerImageExeKeyunDockerImageExeKeyDockerImageExeImageHashDockerImageExeExePathDockerImageExeExeTimestampDockerImageExeCompatibleDockerImageProjectPathKeyDockerImageProjectKeyunDockerImageProjectKeyDockerImageProjectImageHashDockerImageProjectProjectPathDockerImageProjectLastUsedTimeexeInstalledDirprecompiledCacheFile loadDatabase isAllowed LoadHelperlhIdlhDepslhPairAllowedNeedsProfiling NeedsHaddock NeedsSymbols UnknownPkg WrongLocation WrongVersionPathInfopaths piBuildConfig piEnvOverridepiSnapDb piLocalDb piGlobalDb piSnapRoot piLocalRoot piToolsDir piDistDirpiHpcDir piExtraDbs piCompilerSGRTagTagResetTagConsoleIntensity TagItalicizedTagUnderlining TagBlinkSpeed TagVisibleTagSwapForegroundBackgroundTagColorForegroundTagColorBackground TagRGBColorBioInputgenerateBuildInfoOpts rawParseGPD,Distribution.Types.GenericPackageDescriptionGenericPackageDescription%Distribution.Types.PackageDescriptionPackageDescriptiongeneratePkgDescOptsmakeObjectFilePathFromCfileGenDirFromComponentNamebuildDirgetBuildComponentDirDistribution.Types.BuildInfobuildToolDepends buildTools allBuildInfo' allBuildInfopackageDescModulesAndFilesresolveGlobFilesmatchDirFileGlob_benchmarkFiles testFilesexecutableFiles libraryFilesbuildOtherSourcestargetJsSourcesflagMapmkResolveConditionsresolveConditionsdepNamedepRangeresolveFilesAndDepsgetDependencies parseDumpHI resolveFiles findCandidate warnMultiplelogPossibilitiesfindOrGenerateCabalFilehpackresolveFileOrWarnresolveDirOrWarnResolveConditionsrcFlagsrcCompilerVersionrcOSrcArch biSourceMapbiInstalledMap biCabalMacros biCabalDir biDistDirbiOmitPackages biAddPackages biBuildInfobiDotCabalPathsbiConfigLibDirsbiConfigIncludeDirsbiComponentNameCtxctxFilectxDir ctxEnvConfigStackImageException(StackImageDockerBaseUnspecifiedException-StackImageCannotDetermineProjectRootExceptionstageExesInDirsyncAddContentToDir imageNamecreateDockerImageextendDockerImageWithEntrypointfromMaybeProjectRootgenerateHaddockIndexlookupDumpPackagehaddockIndexFile localDocDirlocalDepsDocDir snapDocDir sinkCheckHash sinkHashUsinghashChecksToZipSinkVerifyFileException WrongFileSize cloneRepo populateCache requireIndex updateIndexupdateIndexHTTPupdateIndexHackageSecurity deleteCacheclearPackageCachesentrySizeInBlocksPackageIndexExceptionGitNotAvailableMissingRequiredHashes NewException loadTemplate applyTemplatecheckForOverwritewriteTemplateFilesrunTemplateInitsparseTemplateSetdefaultTemplateUrldefaultTemplateInfoUrldefaultTemplatesListFailedToLoadTemplateFailedToDownloadTemplateFailedToDownloadTemplatesBadTemplatesResponse AlreadyExistsMissingParametersInvalidTemplateAttemptedOverwritesFailedToDownloadTemplateInfoBadTemplateInfoBadTemplateInfoResponseCan'tUseWiredInName TemplateSet unTemplateSet TemplateFrom LocalTemp RemoteTemptfCabalgetUses00IndexfuzzyLookupCandidatestypoCorrectionCandidates getToFetchfetchPackages' FuzzyResultsFRNameNotFoundFRVersionNotFoundFRRevisionNotFound ToFetchResult tfrToFetchtfrAlreadyUnpackedToFetch tfTarball tfDestDirtfUrltfSizetfSHA256FetchExceptionCouldn'tReadIndexTarballCouldn'tReadPackageTarballUnpackDirectoryAlreadyExistsCouldNotParsePackageSelectorsUnknownPackageNamesUnknownPackageIdentifiers loadSnapshot' recalculate checkDepsMet loadCompiler findPackage Control.Monad.Trans.State.StrictStateTsnapshotDefFixesglobalToSnapshotsplitUnmetDeps calculateSnapshotExceptionInvalidCabalFileInSnapshotPackageDefinedTwice UnmetDepsFilepathInCustomSnapshotNeedResolverOrCompilerMissingPackagesCustomResolverExceptionselectPackageBuildPlancheckPackageBuildPlancheckPackageDepscombineDepErrorcheckBundleBuildPlancompareBuildPlanChecktryDeprecatedPathgetLatestResolverconfigNoLocalConfiggetDefaultLocalProgramsBaseloadBuildConfigcheckDuplicateNamesdetermineStackRootAndOwnershipgetDirAndOwnership isOwnedByUsergetExtraConfigsloadYamlloadProjectConfiggetDefaultGlobalConfigPathgetDefaultUserConfigPathgetFakeConfigPathconfigFromConfigMonoid mcGHCVariantmcConfigCannotDetermineProjectRootescapeCommandScopeGlobalCommandScopeProjectcfgCmdSetValue CommandScope rrComponent rrAddedDep ComponentNameRawInputparseRawTargetDirsresolveRawTarget ResolveResultrrNamerrRaw rrPackageType unRawInput hpcPkgPath tixFilePathremoveExeModulesloadLocalPackagecheckFlagsUsedcheckBuildCachegetPackageFilesForTargetsgetModTimeMaybecalcFcigetPackageConfigdpLength dpNameLengthdpPath BadDependency HasNoLibraryDepTypeLatestApplicableVersionUnknownPackage ToolWarningUnregisterStatewInstallwDirtywDeps wWarningswParentsPIOnlyInstalled PIOnlySourcePIBothmkUnregisterLocaladdFinaladdDepaddPackageDepsinstallPackageinstallPackageGivenDepspackageBuildTypeConfigpackageDepsWithTools stripLocals inSnapshotgetShortestDepsPathwanted MonoidMapDepsPathNotInBuildPlanCouldn'tResolveItsDependenciesDependencyMismatchConstructPlanExceptionDependencyCycleDetectedDependencyPlanFailures AsLibrary AsBuildToolusToUnregisterusKeep usAnyAddedlsbaseConfigOpts loadPackage combinedMaptoolToPackages callStack extraToBuild getVersions localNamesWwFinals AddDepRes ADRToInstallADRFound PackageInfo eeSetupHs eeSetupShimHs eeSetupExe eeCustomBuiltExecutableBuildStatus displayTask getSetupExewindowsRenameCopy executePlan'getConfigCache ensureConfiggetExecutableBuildStatusescheckExeStatuscheckForUnlistedFiles depsPresent singleTest singleBenchmungeBuildOutput getSetupHs exesToBuildcabalIsSatisfiedaddGlobalPackages singleBuildConvertPathsToAbsolute KeepPathsAsIs eeEnvOverrideeeConfigureLock eeInstallLock eeBuildOptseeBuildOptsCLIeeBaseConfigOpts eeGhcPkgIds eeTempDir eeCabalPkgVer eeTotalWantedeeWantedeeLocals eeGlobalDBeeGlobalDumpPkgseeSnapshotDumpPkgseeLocalDumpPkgs eeLogFiles eeGetGhcPatheeGetGhcjsPathExecutableBuiltExecutableNotBuiltallLocal/warnIfExecutablesWithSameNameCouldBeOverwritten fixCodePage rawBuildInfo addIncludeLib getGhcBuild mungeRelease upgradeCabal getSetupInfocheckDependencieswithUnpackedTarball7zsetup7zbytesfmt sanityCheckgetUtf8EnvVarsperformPathCheckinggetInstalledToolinstallMsys2WindowschattyDownloadCheckDependency ArchiveTypeTarBz2TarXzTarGzSevenZSetupExceptionUnsupportedSetupComboMissingDependenciesUnknownCompilerVersion UnknownOSKeyGHCSanityCheckCompileFailedWantedMustBeGHCRequireCustomGHCVariantProblemWhileDecompressingSetupInfoMissingSevenzGHCJSRequiresStandardVariantGHCJSNotBootedDockerStackExeNotFound_boForce _boVersion _uoBinary _uoSource SourceOpts BinaryOpts _boPlatform _boGithubOrg _boGithubRepo setupCabalEnv ignoredDirs cabalSolvergetCabalConfigreportMissingCabalFilesConstraintType Constraint PreferencerenderStackYamlgetDefaultResolvergetWorkingResolverPlancheckBundleResolver GetCmdArgs ImageConfigInspectexecWithOptionalContainerrunContainerAndExitinspectinspects pullImagecheckDockerVersionentrypointMVarremoveDirectoryContentsreadDockerProcess homeDirName hostBinDir decodeUtf8concatToldSandboxIdEnvVaricEnv icEntrypointiiConfig iiCreatediiId iiVirtualSize getCabalLbs gtraverseTreadLocalPackagegetSDistFileListcheckPackageInExtractedTarballwithTempTarGzContents packFileEntryCheckException blacklistgetPackagesFromModuleInfofigureOutMainFilemakeGhciPkgInfocreatePrunedDependencyGraphcreateDependencyGraphpruneUnreachablecreateDepLoaderlocalDependenciesprintLocalNodes printLeaves printEdges printEdgenodeName printLeaf isWiredIn