-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | What version is the package X in stackage lts-Y.ZZ? -- -- A command-line tool to look for version numbers for Haskell packages -- in specific stackage resolvers. See README.md @package staversion @version 0.2.4.0 module Staversion.Internal.Log data LogLevel LogDebug :: LogLevel LogInfo :: LogLevel LogWarn :: LogLevel LogError :: LogLevel data LogEntry LogEntry :: LogLevel -> String -> LogEntry [logLevel] :: LogEntry -> LogLevel [logMessage] :: LogEntry -> String data Logger defaultLogger :: Logger putLog :: Logger -> LogLevel -> String -> IO () putLogEntry :: Logger -> LogEntry -> IO () logDebug :: Logger -> String -> IO () logInfo :: Logger -> String -> IO () logWarn :: Logger -> String -> IO () logError :: Logger -> String -> IO () -- | FOR TEST: the IORef is the history of logged messages. _mockLogger :: IO (Logger, IORef [LogEntry]) instance GHC.Classes.Ord Staversion.Internal.Log.LogEntry instance GHC.Classes.Eq Staversion.Internal.Log.LogEntry instance GHC.Show.Show Staversion.Internal.Log.LogEntry instance GHC.Enum.Bounded Staversion.Internal.Log.LogLevel instance GHC.Enum.Enum Staversion.Internal.Log.LogLevel instance GHC.Classes.Ord Staversion.Internal.Log.LogLevel instance GHC.Classes.Eq Staversion.Internal.Log.LogLevel instance GHC.Show.Show Staversion.Internal.Log.LogLevel instance GHC.Show.Show Staversion.Internal.Log.Logger -- | This is an internal module. End-users should not use it. module Staversion.Internal.Query type PackageName = Text -- | Resolver name at stackage like "lts-4.1". type Resolver = String -- | Source of packages. data PackageSource -- | stackage. SourceStackage :: Resolver -> PackageSource -- | hackage (latest) SourceHackage :: PackageSource -- | stack.yaml file. Its "resolver" field is used as the package source. SourceStackYaml :: FilePath -> PackageSource -- | the resolver that the stack command would use by default. SourceStackDefault :: PackageSource -- | description of a PackageSource. sourceDesc :: PackageSource -> Text -- | Query for package version(s). data Query QueryName :: PackageName -> Query QueryCabalFile :: FilePath -> Query QueryStackYaml :: FilePath -> Query QueryStackYamlDefault :: Query parseQuery :: String -> Query type ErrorMsg = String instance GHC.Classes.Ord Staversion.Internal.Query.Query instance GHC.Classes.Eq Staversion.Internal.Query.Query instance GHC.Show.Show Staversion.Internal.Query.Query instance GHC.Classes.Ord Staversion.Internal.Query.PackageSource instance GHC.Classes.Eq Staversion.Internal.Query.PackageSource instance GHC.Show.Show Staversion.Internal.Query.PackageSource -- | This is an internal module. End-users should not use it. module Staversion.Internal.Cabal loadCabalFile :: FilePath -> IO (Either ErrorMsg [BuildDepends]) -- | Build target type. data Target -- | the library target. TargetLibrary :: Target -- | the executable NAME target. TargetExecutable :: Text -> Target -- | the test-suite NAME target. TargetTestSuite :: Text -> Target -- | the benchmark NAME target. TargetBenchmark :: Text -> Target -- | A block of build-depends:. data BuildDepends BuildDepends :: Target -> [PackageName] -> BuildDepends [depsTarget] :: BuildDepends -> Target [depsPackages] :: BuildDepends -> [PackageName] instance GHC.Classes.Ord Staversion.Internal.Cabal.BuildDepends instance GHC.Classes.Eq Staversion.Internal.Cabal.BuildDepends instance GHC.Show.Show Staversion.Internal.Cabal.BuildDepends instance GHC.Classes.Ord Staversion.Internal.Cabal.Target instance GHC.Classes.Eq Staversion.Internal.Cabal.Target instance GHC.Show.Show Staversion.Internal.Cabal.Target -- | This is an internal module. End-users should not use it. -- -- This module is meant to be exposed only to -- Staversion.Internal.BuildPlan and test modules. module Staversion.Internal.BuildPlan.Stackage -- | Non-ambiguous fully-resolved resolver for stackage. data ExactResolver -- | lts-(major).(minor) ExactLTS :: Word -> Word -> ExactResolver -- | nightly-(year)-(month)-(day) ExactNightly :: Word -> Word -> Word -> ExactResolver -- | Potentially partial resolver for stackage. data PartialResolver PartialExact :: ExactResolver -> PartialResolver -- | lts (latest) PartialLTSLatest :: PartialResolver -- | lts-(major) PartialLTSMajor :: Word -> PartialResolver -- | nightly (latest) PartialNightlyLatest :: PartialResolver parseResolverString :: Resolver -> Maybe PartialResolver formatResolverString :: PartialResolver -> Resolver formatExactResolverString :: ExactResolver -> Resolver type Disambiguator = PartialResolver -> Maybe ExactResolver -- | Fetch the Disambiguator from the Internet. fetchDisambiguator :: Manager -> IO (Either ErrorMsg Disambiguator) parseDisambiguator :: ByteString -> Maybe Disambiguator instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Stackage.PartialResolver instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Stackage.PartialResolver instance GHC.Show.Show Staversion.Internal.BuildPlan.Stackage.PartialResolver instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Stackage.ExactResolver instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Stackage.ExactResolver instance GHC.Show.Show Staversion.Internal.BuildPlan.Stackage.ExactResolver instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Stackage.DisamMap -- | This is an internal module. End-users should not use it. module Staversion.Internal.StackConfig -- | Central entity that deals with stack.yaml and stack command. data StackConfig newStackConfig :: Logger -> StackConfig -- | (accessor) shell command for stack tool. scCommand :: StackConfig -> String -- | Read the resolver field in stack.yaml. readResolver :: StackConfig -> Maybe FilePath -> IO (Either ErrorMsg Resolver) readProjectCabals :: StackConfig -> Maybe FilePath -> IO (Either ErrorMsg [FilePath]) configLocationFromText :: Text -> Either ErrorMsg FilePath instance GHC.Classes.Ord Staversion.Internal.StackConfig.StackYaml instance GHC.Classes.Eq Staversion.Internal.StackConfig.StackYaml instance GHC.Show.Show Staversion.Internal.StackConfig.StackYaml instance GHC.Classes.Ord Staversion.Internal.StackConfig.ProjectPath instance GHC.Classes.Eq Staversion.Internal.StackConfig.ProjectPath instance GHC.Show.Show Staversion.Internal.StackConfig.ProjectPath instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.StackConfig.StackYaml instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.StackConfig.ProjectPath -- | This is an internal module. End-users should not use it. module Staversion.Internal.Version -- | A Version represents the version of a software entity. -- -- Instances of Eq and Ord are provided, which gives exact -- equality and lexicographic ordering of the version number components -- (i.e. 2.1 > 2.0, 1.2.3 > 1.2.2, etc.). -- -- This type is opaque and distinct from the Version type in -- Data.Version since Cabal-2.0. The difference extends -- to the Binary instance using a different (and more compact) -- encoding. data Version data VersionRange data LowerBound LowerBound :: Version -> !Bound -> LowerBound data UpperBound NoUpperBound :: UpperBound UpperBound :: Version -> !Bound -> UpperBound data Bound ExclusiveBound :: Bound InclusiveBound :: Bound type VersionInterval = (LowerBound, UpperBound) -- | The version range == v -- --
--   withinRange v' (thisVersion v) = v' == v
--   
thisVersion :: Version -> VersionRange -- | The version range vr1 || vr2 -- --
--     withinRange v' (unionVersionRanges vr1 vr2)
--   = withinRange v' vr1 || withinRange v' vr2
--   
unionVersionRanges :: VersionRange -> VersionRange -> VersionRange -- | Simplify a VersionRange expression. For non-empty version -- ranges this produces a canonical form. Empty or inconsistent version -- ranges are left as-is because that provides more information. -- -- If you need a canonical form use fromVersionIntervals . -- toVersionIntervals -- -- It satisfies the following properties: -- --
--   withinRange v (simplifyVersionRange r) = withinRange v r
--   
-- --
--       withinRange v r = withinRange v r'
--   ==> simplifyVersionRange r = simplifyVersionRange r'
--    || isNoVersion r
--    || isNoVersion r'
--   
simplifyVersionRange :: VersionRange -> VersionRange -- | Convert a VersionIntervals value back into a -- VersionRange expression representing the version intervals. fromVersionIntervals :: VersionIntervals -> VersionRange -- | View a VersionRange as a union of intervals. -- -- This provides a canonical view of the semantics of a -- VersionRange as opposed to the syntax of the expression used to -- define it. For the syntactic view use foldVersionRange. -- -- Each interval is non-empty. The sequence is in increasing order and no -- intervals overlap or touch. Therefore only the first and last can be -- unbounded. The sequence can be empty if the range is empty (e.g. a -- range expression like && 2). -- -- Other checks are trivial to implement using this view. For example: -- --
--   isNoVersion vr | [] <- asVersionIntervals vr = True
--                  | otherwise                   = False
--   
-- --
--   isSpecificVersion vr
--      | [(LowerBound v  InclusiveBound
--         ,UpperBound v' InclusiveBound)] <- asVersionIntervals vr
--      , v == v'   = Just v
--      | otherwise = Nothing
--   
asVersionIntervals :: VersionRange -> [VersionInterval] mkVersion :: [Int] -> Version mkVersionIntervals :: [VersionInterval] -> VersionIntervals versionNumbers :: Version -> [Int] docVersionRange :: VersionRange -> Doc -- | A Version type by Data.Version. type BaseVersion = Version showBaseVersion :: BaseVersion -> String -- | Parse a version text. There must not be any trailing characters after -- a valid version text. parseVersionText :: Text -> Maybe Version -- | This is an internal module. End-users should not use it. module Staversion.Internal.Result -- | Result for a query. data Result Result :: ResultSource -> Query -> Either ErrorMsg ResultBody -> Result [resultIn] :: Result -> ResultSource [resultFor] :: Result -> Query [resultBody] :: Result -> Either ErrorMsg ResultBody data ResultSource ResultSource :: PackageSource -> Maybe PackageSource -> ResultSource -- | the PackageSource queried by user. [resultSourceQueried] :: ResultSource -> PackageSource -- | the real (exact) PackageSource resolved. [resultSourceReal] :: ResultSource -> Maybe PackageSource resultSourceDesc :: ResultSource -> Text -- | For backward-compatibility. type ResultBody = ResultBody' (Maybe Version) data ResultBody' a SimpleResultBody :: PackageName -> a -> ResultBody' a CabalResultBody :: FilePath -> Target -> [(PackageName, a)] -> ResultBody' a -- | Get package names and corresponding values from ResultBody', -- regardless of its internal structure. resultPackages :: ResultBody' a -> [(PackageName, a)] -- | Results for a query aggregated over different sources. data AggregatedResult AggregatedResult :: NonEmpty ResultSource -> Query -> Either ErrorMsg (ResultBody' (Maybe VersionRange)) -> AggregatedResult [aggResultIn] :: AggregatedResult -> NonEmpty ResultSource [aggResultFor] :: AggregatedResult -> Query [aggResultBody] :: AggregatedResult -> Either ErrorMsg (ResultBody' (Maybe VersionRange)) -- | Create an AggregatedResult that includes just one -- Result. singletonResult :: Result -> AggregatedResult instance GHC.Classes.Eq Staversion.Internal.Result.AggregatedResult instance GHC.Show.Show Staversion.Internal.Result.AggregatedResult instance GHC.Classes.Ord Staversion.Internal.Result.Result instance GHC.Classes.Eq Staversion.Internal.Result.Result instance GHC.Show.Show Staversion.Internal.Result.Result instance GHC.Classes.Ord a => GHC.Classes.Ord (Staversion.Internal.Result.ResultBody' a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Staversion.Internal.Result.ResultBody' a) instance GHC.Show.Show a => GHC.Show.Show (Staversion.Internal.Result.ResultBody' a) instance GHC.Classes.Ord Staversion.Internal.Result.ResultSource instance GHC.Classes.Eq Staversion.Internal.Result.ResultSource instance GHC.Show.Show Staversion.Internal.Result.ResultSource instance GHC.Base.Functor Staversion.Internal.Result.ResultBody' -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan.Version -- | Parse a version text. There must not be any trailing characters after -- a valid version text. parseVersionText :: Text -> Maybe Version -- | a wrapper around Version for JSON I/F newtype VersionJSON VersionJSON :: Version -> VersionJSON [unVersionJSON] :: VersionJSON -> Version instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Version.VersionJSON instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Version.VersionJSON instance GHC.Show.Show Staversion.Internal.BuildPlan.Version.VersionJSON instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Version.VersionJSON -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan.Hackage data RegisteredVersions fetchPreferredVersions :: Manager -> PackageName -> IO (Either ErrorMsg RegisteredVersions) latestVersion :: RegisteredVersions -> Maybe Version parsePreferredVersionsJSON :: ByteString -> Either ErrorMsg RegisteredVersions instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Hackage.RegisteredVersions instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Hackage.RegisteredVersions instance GHC.Show.Show Staversion.Internal.BuildPlan.Hackage.RegisteredVersions instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Hackage.RegisteredVersions -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan.BuildPlanMap -- | A data structure that keeps a map between package names and their -- versions. data BuildPlanMap fromMap :: HashMap PackageName Version -> BuildPlanMap fromList :: [(PackageName, Version)] -> BuildPlanMap toList :: BuildPlanMap -> [(PackageName, Version)] -- | Types that have mapping between PackageName and Version. class HasVersions t packageVersion :: HasVersions t => t -> PackageName -> Maybe Version instance GHC.Classes.Eq Staversion.Internal.BuildPlan.BuildPlanMap.BuildPlanMap instance GHC.Show.Show Staversion.Internal.BuildPlan.BuildPlanMap.BuildPlanMap instance GHC.Base.Monoid Staversion.Internal.BuildPlan.BuildPlanMap.BuildPlanMap instance GHC.Base.Semigroup Staversion.Internal.BuildPlan.BuildPlanMap.BuildPlanMap instance Staversion.Internal.BuildPlan.BuildPlanMap.HasVersions Staversion.Internal.BuildPlan.BuildPlanMap.BuildPlanMap -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan.V1 -- | Fetch build plan YAML data from the Internet. This function fetches a -- build plan YAML file of "version 1" format. fetchBuildPlanYAML :: Manager -> ExactResolver -> IO ByteString -- | Parse "version 1" format of build plan YAML file. parseBuildPlanMapYAML :: ByteString -> Either ErrorMsg BuildPlanMap -- | Load a BuildPlanMap from a file. loadBuildPlanMapYAML :: FilePath -> IO (Either ErrorMsg BuildPlanMap) instance GHC.Classes.Eq Staversion.Internal.BuildPlan.V1.V1BuildPlanMap instance GHC.Show.Show Staversion.Internal.BuildPlan.V1.V1BuildPlanMap instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.V1.V1BuildPlanMap -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan.Core -- | Compilers and its corresponding core packages. type CompilerCores = HashMap Compiler CoreBuildPlanMap -- | Build plan of the core packages for a compiler. data CoreBuildPlanMap CoreBuildPlanMap :: Compiler -> BuildPlanMap -> CoreBuildPlanMap [coreCompiler] :: CoreBuildPlanMap -> Compiler [coreMap] :: CoreBuildPlanMap -> BuildPlanMap -- | A compiler with an explicit version. data Compiler Compiler :: CompilerName -> CompilerVersion -> Compiler [compilerName] :: Compiler -> CompilerName [compilerVersion] :: Compiler -> CompilerVersion -- | Version of a compiler data CompilerVersion -- | the HEAD version CVHead :: CompilerVersion -- | a numbered version. CVNumbered :: Version -> CompilerVersion -- | Name of a compiler type CompilerName = Text -- | Make a CVNumbered CompilerVersion. mkCompilerVersion :: [Int] -> CompilerVersion -- | Name of ghc. ghcName :: CompilerName -- | Parse the "pkg_versions.txt" file for GHC core packages. parseGHCPkgVersions :: ByteString -> Either String (HashMap Compiler CoreBuildPlanMap) -- | Fetch the "pkg_versions.txt" from the Web. fetchGHCPkgVersions :: Manager -> IO ByteString instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Core.CoreBuildPlanMap instance GHC.Show.Show Staversion.Internal.BuildPlan.Core.CoreBuildPlanMap instance GHC.Generics.Generic Staversion.Internal.BuildPlan.Core.Compiler instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Core.Compiler instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Core.Compiler instance GHC.Show.Show Staversion.Internal.BuildPlan.Core.Compiler instance GHC.Generics.Generic Staversion.Internal.BuildPlan.Core.CompilerVersion instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Core.CompilerVersion instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Core.CompilerVersion instance GHC.Show.Show Staversion.Internal.BuildPlan.Core.CompilerVersion instance Staversion.Internal.BuildPlan.BuildPlanMap.HasVersions Staversion.Internal.BuildPlan.Core.CoreBuildPlanMap instance Data.Hashable.Class.Hashable Staversion.Internal.BuildPlan.Core.Compiler instance Data.Hashable.Class.Hashable Staversion.Internal.BuildPlan.Core.CompilerVersion -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan.Pantry -- | A build plan map loaded from a Pantry YAML file. This is not a -- complete BuildPlanMap, because it implicitly refers to -- CoreBuildPlanMap. That's why its data constructor is not -- exported. data PantryBuildPlanMap -- | Name of a pantry snapshot type PantryName = Text pantryCompiler :: PantryBuildPlanMap -> Compiler pantryName :: PantryBuildPlanMap -> Maybe PantryName -- | Combine PantryBuildPlanMap and CoreBuildPlanMap to make -- a complete BuildPlanMap. toBuildPlanMap :: CoreBuildPlanMap -> PantryBuildPlanMap -> Either String BuildPlanMap -- | Select a CoreBuildPlanMap from the given map to make a complete -- BuildPlanMap from PantryBuildPlanMap. coresToBuildPlanMap :: CompilerCores -> PantryBuildPlanMap -> Either String BuildPlanMap -- | Parse a YAML document for a CoreBuildPlanMap. parseBuildPlanMapYAML :: ByteString -> Either ErrorMsg PantryBuildPlanMap -- | Fetch a Pantry build plan file from the Web. fetchBuildPlanMapYAML :: Manager -> ExactResolver -> IO ByteString instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Pantry.PantryCompiler instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Pantry.PantryCompiler instance GHC.Show.Show Staversion.Internal.BuildPlan.Pantry.PantryCompiler instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Pantry.PantryPackage instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Pantry.PantryPackage instance GHC.Show.Show Staversion.Internal.BuildPlan.Pantry.PantryPackage instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Pantry.PantryBuildPlanMap instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Pantry.PantryCompiler instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Pantry.PantryPackage instance Staversion.Internal.BuildPlan.BuildPlanMap.HasVersions Staversion.Internal.BuildPlan.Pantry.PantryBuildPlanMap -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan -- | Types that have mapping between PackageName and Version. class HasVersions t packageVersion :: HasVersions t => t -> PackageName -> Maybe Version -- | A BuildPlanMap associated with its PackageSource. data BuildPlan buildPlanSource :: BuildPlan -> PackageSource -- | Stateful manager for BuildPlans. data BuildPlanManager newBuildPlanManager :: FilePath -> Logger -> Bool -> IO BuildPlanManager -- | (accessor function) manStackConfig :: BuildPlanManager -> StackConfig loadBuildPlan :: BuildPlanManager -> [PackageName] -> PackageSource -> IO (Either ErrorMsg BuildPlan) -- | A data structure that keeps a map between package names and their -- versions. data BuildPlanMap _setLTSDisambiguator :: BuildPlanManager -> Word -> Word -> IO () instance Staversion.Internal.BuildPlan.BuildPlanMap.HasVersions Staversion.Internal.BuildPlan.BuildPlan -- | This is an internal module. End-users should not use it. module Staversion.Internal.Aggregate -- | Aggregate Results with the given Aggregator. It first -- groups Results based on its resultFor field, and then -- each group is aggregated into an AggregatedResult. -- -- If it fails, it returns an empty list of AggregatedResult. It -- also returns a list of LogEntrys to report warnings and errors. aggregateResults :: Aggregator -> [Result] -> ([AggregatedResult], [LogEntry]) -- | Aggregate some Versions into a VersionRange. type Aggregator = NonEmpty Version -> VersionRange data VersionRange -- | Let Cabal convert VersionRange to String showVersionRange :: VersionRange -> String -- | Aggregator of ORed versions. aggOr :: Aggregator -- | Aggregate versions to the range that the versions cover in a PVP -- sense. This aggregator sets the upper bound to a major version, which -- means it assumes major-version bump is not backward-compatible. aggPvpMajor :: Aggregator -- | Aggregate versions to the range that versions cover in a PVP sense. -- This aggregator sets the upper bound to a minor version, which means -- it assumes minor-version bump is not backward-compatible. aggPvpMinor :: Aggregator groupAllPreservingOrderBy :: (a -> a -> Bool) -> [a] -> [NonEmpty a] -- | Aggregate one or more maps between PackageName and -- Version. -- -- The input Maybe Versions should all be Just. -- Nothing version is warned and ignored. If the input versions -- are all Nothing, the result version range is Nothing. -- -- The PackageName lists in the input must be consistent (i.e. -- they all must be the same list.) If not, it returns Nothing map -- and an error is logged. aggregatePackageVersions :: Aggregator -> NonEmpty (String, [(PackageName, Maybe Version)]) -> (Maybe [(PackageName, Maybe VersionRange)], [LogEntry]) -- | This is an internal module. End-users should not use it. module Staversion.Internal.Format formatAggregatedResults :: FormatConfig -> [AggregatedResult] -> Text data FormatConfig FormatConfig :: FormatVersion -> FormatConfig [fconfFormatVersion] :: FormatConfig -> FormatVersion -- | Format for VersionRange. type FormatVersion = VersionRange -> Text -- | Let Cabal format VersionRange. formatVersionCabal :: FormatVersion -- | Similar to formatVersionCabal, but it uses the "caret" operator -- (^>=) where possible. formatVersionCabalCaret :: FormatVersion -- | This is an internal module. End-users should not use it. module Staversion.Internal.Command -- | Command from the user. data Command Command :: FilePath -> String -> Logger -> [PackageSource] -> [Query] -> Bool -> Maybe Aggregator -> FormatConfig -> Command -- | path to the directory where build plan files are stored. [commBuildPlanDir] :: Command -> FilePath -- | shell command to invoke stack tool. [commStackCommand] :: Command -> String -- | the logger [commLogger] :: Command -> Logger -- | package sources to search [commSources] :: Command -> [PackageSource] -- | package queries [commQueries] :: Command -> [Query] -- | if True, it accesses the Internet to query build plans etc. [commAllowNetwork] :: Command -> Bool -- | if Just, do aggregation over the results. [commAggregator] :: Command -> Maybe Aggregator -- | config for the formatter [commFormatConfig] :: Command -> FormatConfig parseCommandArgs :: IO Command defFormatConfig :: FormatConfig -- | Just for testing. _parseCommandStrings :: [String] -> IO (Maybe Command) instance GHC.Classes.Ord Staversion.Internal.Command.DefCommand instance GHC.Classes.Eq Staversion.Internal.Command.DefCommand instance GHC.Show.Show Staversion.Internal.Command.DefCommand -- | This is an internal module. End-users should not use it. module Staversion.Internal.Exec main :: IO () processCommand :: Command -> IO [Result] _processCommandWithCustomBuildPlanManager :: (BuildPlanManager -> IO BuildPlanManager) -> Command -> IO [Result] instance GHC.Classes.Ord Staversion.Internal.Exec.ResolvedQuery instance GHC.Classes.Eq Staversion.Internal.Exec.ResolvedQuery instance GHC.Show.Show Staversion.Internal.Exec.ResolvedQuery