id:      !"#$%&'()*+,-./0123456789None\A query is like a Selector, but it cannot be composed any futher using a Category instance. 8 It can have a Functor and Applicative instance though. 4 To execute a query, you only need to run GHC once. 9A selector is a generator for a function of type i -> o. @This is just a dummy type representing a LocalBuildInfo. You don't have to use I this type, it is just used to tag queries and make them more type-safe. $Compose two selectors, monadically. The same as (=<<<), but flipped. :Lift a selector to work on functorial inputs and outputs. :kZip together two selector that work on the same input. This is the equavilent of liftA2 (,) for selectors. JA Selector to get something out of a Maybe if you supply a default value. YBuild a selector. The expression the selector generates can depend on the cabal version. Build a query from a selector. $Lift a query to work over functors. NUse a selector to run a query in a bigger environment than it was defined in. ]Run a query. This will generate the source code for the query and then invoke GHC to run it. BRun a raw query, getting the full source from the first parameter L the module must be DynamicCabalQuery and it must have a result declaration ;CRun a raw query, getting the full source from the first parameter. M The module must be DynamicCabalQuery and it must have a result declaration. O The third argument is a function to apply to the result of running the query. <=>?@: A BC ;DEFGH  <=>?@: A BC ;DEFGHNone(IA target is a single Library, an Executable, a TestSuite or a Benchmark.  The specific info of the target [All dependencies of the target, with their versions. If the version is not resolved yet, it'll be Nothing. ; That only happens when the target is not enabled, though. ,Directories where to look for source files. ,Directories where to look for header files. ?Additional options to pass to GHC when compiling source files. LAdditional options to pass to CPP preprocessor when compiling source files. The extensions to enable/"disable. The elements are like GHC'!s -X flags, a disabled extension 2 is represented as the extension name prefixed by No. Example value: extensions = [ScopedTypeVariables, NoMultiParamTypeClasses] The # field in the package description. %other modules included in the target The  'c-sources'# field in the package description. Whether this target was enabled or not. This only matters for Benchmarks or Tests, Executables and Libraries are always enabled. DThe specific information on a target, depending on the target type.  Libraries don'Kt have a name, they are always named after the package, but other types do Ycontains the name of the benchmark and the path to the Main module, for stdio benchmarks Ucontains the name of the test suite and the path to the Main module, for stdio tests Dcontains the name of the executable and the path to the Main module &contains the names of exposed modules LA package description type. This type has no constructors, and is only used  for type-safety purposes. !:Traverse the name of a target, if available (libraries don't have names). "4Traverse the path of the main module, if available. -Creturn the target name, or the empty string for the library target .is the target the library? /is the target an executable? 0is the target a test suite? 1is the target a benchmark? I4The include search path of a buildInfo. Same as the  includeDir field in Cabal' s BuildInfo. J)Get the names of the extensions to enable/Ddisable for all source files in the package. If an extension should  be disabled, it's name is prefixed by No<. This corresponds to the names of -X flags to pass to GHC. K6Get the options to pass to GHC for a given BuildInfo. L6Get the options to pass to GHC for a given BuildInfo. MGet the non exposed modules. NnGet the dependencies of the target and the version of the dependency if possible. If the dependencies version _ is not a specific version (this only happens when the target is not enabled), return Nothing. O Construct a c from a buildInfo, a targetName and a Bool that is True if the target is enabled, false otherwise. PqGet the buildInfo of the library in the package, and its exposed modules. If there is no library in the package,  return the empty list. QTGet the buildInfo, the name and Main module path of each executable in the package. ROGet the filepath of a exit-code-stdio interface (for test cases or benchmarks) Q The first argument specifies the constructor which contains the interface data. ` For test suites, this should be TestSuiteExeV10, for benchmarks, it should be BenchmarkExeV10. aNote: This function is not entirely typesafe, because the argument type of the returned function P is polymorphic. You have to make sure that the type has the given constructor. SGet the name, whether the target is enabled or not, possibly the main module path and the buildInfo of each testSuite in the package. TGet the name, whether it'Es enabled or not and the buildInfo of each benchmark in the package. UUGet the name of all targets and whether they are enabled (second field True) or not. V The resulting list is in the same order and has the same length as the list returned  by buildInfos. VMGet the BuildInfo of all targets, even for disable or not buildable targets. 2OQuery the available targets. This will return all targets, even disabled ones. . If a package is disabled or not buildable, it'Is possible that not all dependencies have versions, some can be Nothing. @WXYZ[ !"\#$%&'()*+,]-./01^_`IJKLMNOPQRSTUV2abc% !"#$%&'()*+,-./012% 2-./01!"#$%&'()*+,0 WXYZ[ !"\#$%&'()*+,]-./01^_`IJKLMNOPQRSTUV2abcNone35A package db is either the user package db (often at ~.ghcghc-....), the global package " or a specific file or directory. 7CGet the package dbs that ghc will use when compiling this package. 8CReturns the builddir of a LocalBuildInfo. Often, this will just be dist. 9@Returns the package description included in a local build info. 3456789345678936547893654789None:  !"#$%&'()*+,-./0123456789d      !"#$%&'()*+,-./0123456789:;<=>?@@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcddynamic-cabal-0.3.3!Distribution.Client.Dynamic.Query.Distribution.Client.Dynamic.PackageDescription*Distribution.Client.Dynamic.LocalBuildInfoDistribution.Client.DynamicQuerySelectorLocalBuildInfo=<<<>>>=fmapS maybeDefaultselectorqueryfmapQongetCabalVersionrunQuery runRawQueryTargetinfo dependencies sourceDirs includeDirs ghcOptions cppOptions extensions buildable otherModulescSourcesenabled TargetInfo BenchSuite TestSuite ExecutableLibraryPackageDescription_name _mainModule_info _dependencies _sourceDirs _includeDirs _ghcOptions _cppOptions _extensions _buildable _otherModules_enabled targetName isLibrary isExecutableisTestisBenchtargets PackageDB SpecificDBGlobalDBUserDB packageDBsbuildDir localPkgDesc zipSelector runRawQuery'LeftoverTempDirgetRunDirectorywithTempWorkingDirgenerateSource$fExceptionLeftoverTempDir$fShowLeftoverTempDir$fApplicativeQuery$fFunctorQuery$fCategorySelector includeDirs' extensions' ghcOptions' cppOptions' otherModules' dependencies'buildInfoTargetlibrary' executables'exitCodeStdioPath'tests' benchmarks' targetInfos buildInfos ModuleName Dependency ExtensionCompilerFlavor BuildInfo<&> _cSources buildable' hsSourceDirs' cSources'$fDefaultTarget$fDefaultTargetInfo$fEqCompilerFlavor