build-1.0: Build systems a la carte

Safe HaskellSafe
LanguageHaskell2010

Build.Task

Description

The Task abstractions.

Synopsis

Documentation

newtype Task c k 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.

Constructors

Task 

Fields

  • run :: forall f. c f => (k -> f v) -> 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.

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.

liftTask :: Task Applicative k v -> Task Monad k v Source #

Lift an applicative task to Task Monad. Use this function when applying monadic task combinators to applicative tasks.

liftTasks :: Tasks Applicative k v -> Tasks Monad k v Source #

Lift a collection of applicative tasks to Tasks Monad. Use this function when building applicative tasks with a monadic build system.