-- 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". -- -- 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.2 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 mk :: (Ord a, Applicative m, Monad m) => [Rule m a] -> [a] -> m (Schedule m) 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 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 abortOnError :: [IO Result] -> IO Result