Recursive Building #
This module defines Lake's top-level build monad, FetchM
, used
for performing recursive builds. A recursive build is a build function
which can fetch the results of other (recursive) builds. This is done
using the fetch
function defined in this module.
@[reducible, inline, deprecated "Deprecated without replacement." (since := "2025-02-22")]
The internal core monad of Lake builds. Not intended for user use.
Equations
Instances For
@[specialize #[]]
def
Lake.buildCycleError
{m : Type u_1 → Type u_2}
{α : Type u_1}
[MonadError m]
(cycle : Cycle BuildKey)
:
m α
Log build cycle and error.
Equations
Instances For
instance
Lake.instMonadCycleOfBuildKeyRecBuildTOfMonadOfMonadError
{m : Type → Type}
[Monad m]
[MonadError m]
:
Equations
@[reducible, inline]
A recursive build of a Lake build store that may encounter a cycle.
An internal monad. Not intended for user use.
Equations
Instances For
@[inline]
def
Lake.RecBuildT.run
{m : Type → Type}
{α : Type}
[Monad m]
[MonadLiftT (ST IO.RealWorld) m]
(stack : CallStack BuildKey)
(store : BuildStore)
(build : RecBuildT m α)
:
BuildT m (α × BuildStore)
Run a recursive build.
Equations
Instances For
@[inline]
def
Lake.RecBuildT.run'
{m : Type → Type}
{α : Type}
[Monad m]
[MonadLiftT (ST IO.RealWorld) m]
(build : RecBuildT m α)
:
BuildT m α
Run a recursive build in a fresh build store.
Equations
Instances For
@[reducible, inline]
A build function for any element of the Lake build index.
Equations
Instances For
@[reducible, inline]
The top-level monad for Lake build functions.
Equations
Instances For
Fetch the result of this facet of a module.