Safe Haskell | None |
---|---|
Language | Haskell2010 |
Rebuilders take care of deciding whether a key needs to be rebuild and running the corresponding task if need be.
- type Rebuilder c i k v = k -> v -> Task c k v -> Task (MonadState i) k v
- perpetualRebuilder :: Rebuilder Monad () k v
- modTimeRebuilder :: Ord k => Rebuilder Applicative (MakeInfo k) k v
- type Time = Integer
- type MakeInfo k = (Map k Time, Time)
- approximationRebuilder :: Ord k => Rebuilder Monad (ApproximationInfo k) k v
- data DependencyApproximation k
- type ApproximationInfo k = (k -> Bool, k -> DependencyApproximation k)
- vtRebuilder :: (Eq k, Hashable v) => Rebuilder Monad (VT k v) k v
- stRebuilder :: (Eq k, Hashable v) => Rebuilder Monad (Step, ST k v) k v
- ctRebuilder :: (Eq k, Hashable v) => Rebuilder Monad (CT k v) k v
- dctRebuilder :: (Hashable k, Hashable v) => Rebuilder Monad (DCT k v) k v
Documentation
type Rebuilder c i k v = k -> v -> Task c k v -> Task (MonadState i) k v Source #
Given a key-value pair and the corresponding task, a rebuilder returns a new task that has access to the build information and can use it to skip rebuilding a key if it is up to date.
perpetualRebuilder :: Rebuilder Monad () k v Source #
Always rebuilds the key.
modTimeRebuilder :: Ord k => Rebuilder Applicative (MakeInfo k) k v Source #
This rebuilder uses modification time to decide whether a key is dirty and needs to be rebuilt. Used by Make.
approximationRebuilder :: Ord k => Rebuilder Monad (ApproximationInfo k) k v Source #
This rebuilders uses approximate dependencies to decide whether a key needs to be rebuilt. Used by Excel.
data DependencyApproximation k Source #
type ApproximationInfo k = (k -> Bool, k -> DependencyApproximation k) Source #
vtRebuilder :: (Eq k, Hashable v) => Rebuilder Monad (VT k v) k v Source #
This rebuilder relies on verifying traces.
stRebuilder :: (Eq k, Hashable v) => Rebuilder Monad (Step, ST k v) k v Source #
This rebuilder relies on version/step traces.