-- 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.1.2.0 -- | 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 -- | Query for package version(s). data Query QueryName :: PackageName -> Query type ErrorMsg = String -- | Result for a query. data Result Result :: PackageSource -> Query -> Either ErrorMsg ResultVersions -> Result [resultIn] :: Result -> PackageSource [resultFor] :: Result -> Query [resultVersions] :: Result -> Either ErrorMsg ResultVersions -- | The obtained version map. data ResultVersions resultVersionsFromList :: [(PackageName, Maybe Version)] -> ResultVersions resultVersionsToList :: ResultVersions -> [(PackageName, Maybe Version)] -- | description of a PackageSource. sourceDesc :: PackageSource -> Text instance GHC.Classes.Eq Staversion.Internal.Query.Result instance GHC.Show.Show Staversion.Internal.Query.Result instance GHC.Classes.Eq Staversion.Internal.Query.ResultVersions instance GHC.Show.Show Staversion.Internal.Query.ResultVersions 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 module Staversion.Internal.Log data LogLevel LogDebug :: LogLevel LogInfo :: LogLevel LogWarn :: LogLevel LogError :: LogLevel data Logger defaultLogger :: Logger putLog :: Logger -> LogLevel -> String -> 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 [(LogLevel, String)]) 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.Format -- | format Results like it's in build-depends in .cabal files. formatResultsCabal :: [Result] -> Text -- | 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. -- -- 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 type Disambiguator = PartialResolver -> Maybe ExactResolver -- | Fetch the Disambiguator from the Internet. fetchDisambiguator :: Manager -> IO (Either ErrorMsg Disambiguator) -- | Fetch build plan YAML data from the Internet. fetchBuildPlanYAML :: Manager -> ExactResolver -> IO ByteString 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.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 -- | A data structure that keeps a map between package names and their -- versions. data BuildPlan packageVersion :: BuildPlan -> PackageName -> Maybe Version -- | Stateful manager for BuildPlans. data BuildPlanManager newBuildPlanManager :: FilePath -> Logger -> Bool -> IO BuildPlanManager loadBuildPlan :: BuildPlanManager -> [PackageName] -> PackageSource -> IO (Either ErrorMsg BuildPlan) -- | Load a BuildPlan from a file. loadBuildPlanYAML :: FilePath -> IO (Either ErrorMsg BuildPlan) _setDisambiguator :: BuildPlanManager -> Maybe Disambiguator -> IO () instance GHC.Base.Monoid Staversion.Internal.BuildPlan.BuildPlan instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.BuildPlan -- | This is an internal module. End-users should not use it. module Staversion.Internal.Command -- | Command from the user. data Command Command :: FilePath -> Logger -> [PackageSource] -> [Query] -> Bool -> Command -- | path to the directory where build plan files are stored. [commBuildPlanDir] :: Command -> FilePath -- | 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 parseCommandArgs :: IO 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 instance GHC.Show.Show Staversion.Internal.Command.Command -- | This is an internal module. End-users should not use it. module Staversion.Internal.Exec main :: IO () processCommand :: Command -> IO [Result]