build-1.0: Build systems a la carte

Safe HaskellSafe



A version of monadic tasks with some support for non-determinism.



random :: (Int, Int) -> Task MonadPlus k Int Source #

An example of a non-deterministic task: generate a random number from a specified interval.

computeND :: Task MonadPlus k v -> Store i k v -> [v] Source #

Run a task in a given store.

correctBuildValue :: Eq v => Tasks MonadPlus k v -> Store i k v -> Store i k v -> k -> Bool Source #

Given a description of tasks, an initial store, and a result produced by running a build system on a target key, this function returns True if the key's value is a possible result of running the associated task.