Build.Task
Description
The Task abstractions.
type Task c k v = forall f. c f => (k -> f v) -> f v Source #
A Task is used to compute a value of type v, by finding the necessary dependencies using the provided fetch :: k -> f v callback.
Task
v
fetch :: k -> f v
type Tasks c k v = k -> Maybe (Task c k v) Source #
Tasks associates a Task with every non-input key. Nothing indicates that the key is an input.
Tasks
Nothing
compose :: Tasks Monad k v -> Tasks Monad k v -> Tasks Monad k v Source #
Compose two task descriptions, preferring the first one in case there are two tasks corresponding to the same key.