-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A make alternative based on Plan9's mk.
--
-- Clone of Plan9's mk command, said to have "improved on make by
-- removing all the vowels from the name". Most features of mk are
-- implemented, including basic meta-rules support and concurrent
-- execution of jobs.
--
-- The library exports a generic dependency graph traversal that can be
-- used independently of the rest.
--
-- The documentation is embedded in the literate Haskell source.
--
-- Note: the library portion is released to the public
-- domain. Those source files that are not part of the library are
-- released under GPLv3 or later.
@package hmk
@version 0.9.7
module Control.Hmk.Analyze
coalesce :: (Ord a) => [Rule m a] -> [Rule m a]
complete :: (Ord a, Show a) => Cmp m a -> [Rule m a] -> [Rule m a]
process :: (Ord a, Show a) => Cmp m a -> [Rule m a] -> [Rule m a]
module Control.Hmk.Concurrent
data Done
Done :: Done
processTree :: (Ord a, Show a) => Int -> DepGraph IO a -> IO ()
module Control.Hmk
mk :: (Ord a, Applicative m, Monad m) => [Rule m a] -> [a] -> m (Schedule m)
mkConcurrent :: (Ord a, Show a) => Int -> [Rule IO a] -> [a] -> IO ()
type Cmp m a = a -> a -> m Bool
data Rule m a
Rule :: a -> [a] -> Maybe ([a] -> Task m) -> Cmp m a -> Rule m a
target :: Rule m a -> a
prereqs :: Rule m a -> [a]
recipe :: Rule m a -> Maybe ([a] -> Task m)
isStale :: Rule m a -> Cmp m a
type Task m = m Result
type DepGraph m a = [Tree m a]
data Tree m a
Node :: a -> (DepGraph m a) -> (Rule m a) -> Tree m a
type Schedule m = [Task m]
data Result
TaskSuccess :: Result
TaskFailure :: Result
instance Eq Result
instance Show Result
instance (Show a) => Show (Tree m a)
instance (Show a) => Show (Rule m a)
module Control.Hmk.IO
isStale :: Cmp IO FilePath
testExitCode :: ExitCode -> IO Result