File: .lake/packages/lean4/src/lean/lake/Lake/Build/Fetch.lean

full_name: Lake.RecBuildM
code: /-- A recursive build of a Lake build store that may encounter a cycle. -/
abbrev RecBuildM 
goal: Type

full_name: Lake.instMonadLiftLogIORecBuildM
code: instance : MonadLift LogIO RecBuildM 
goal: MonadLift Lake.LogIO Lake.RecBuildM

full_name: Lake.RecBuildM.runJobM
code: /--
Run a `JobM` action in `RecBuildM` (and thus `FetchM`).

Generally, this should not be done, and instead a job action
should be run asynchronously in a Job (e.g., via `Job.async`).
-/
@[inline] def RecBuildM.runJobM (x : JobM α) : RecBuildM α 
goal: Lake.RecBuildM α

full_name: Lake.instMonadLiftJobMRecBuildM
code: instance : MonadLift JobM RecBuildM 
goal: MonadLift Lake.JobM Lake.RecBuildM

full_name: Lake.RecBuildM.run
code: /-- Run a recursive build. -/
@[inline] def RecBuildM.run
  (stack : CallStack BuildKey) (store : BuildStore) (build : RecBuildM α)
: CoreBuildM (α × BuildStore) 
goal: Lake.CoreBuildM (α × Lake.BuildStore)

full_name: Lake.RecBuildM.run'
code: /-- Run a recursive build in a fresh build store. -/
@[inline] def RecBuildM.run' (build : RecBuildM α) : CoreBuildM α 
goal: Lake.CoreBuildM α

full_name: Lake.buildCycleError
code: /-- Log build cycle and error. -/
@[specialize] def buildCycleError [MonadError m] (cycle : Cycle BuildKey) : m α 
goal: m α

full_name: Lake.instMonadCycleOfBuildKeyRecBuildM
code: instance : MonadCycleOf BuildKey RecBuildM 
goal: Lake.MonadCycleOf Lake.BuildKey Lake.RecBuildM

full_name: Lake.IndexBuildFn
code: /-- A build function for any element of the Lake build index. -/
abbrev IndexBuildFn (m : Type → Type v) 
goal: Type v

full_name: Lake.IndexT
code: /-- A transformer to equip a monad with a build function for the Lake index. -/
abbrev IndexT (m : Type → Type v) 
goal: Type v

full_name: Lake.FetchM
code: /-- The top-level monad for Lake build functions. -/
abbrev FetchM 
goal: Type

full_name: Lake.IndexBuildM
code: /-- The top-level monad for Lake build functions. **Renamed `FetchM`.** -/
@[deprecated FetchM] abbrev IndexBuildM 
goal: Type

full_name: Lake.BuildM
code: /-- The old build monad. **Uses should generally be replaced by `FetchM`.** -/
@[deprecated FetchM] abbrev BuildM 
goal: Type

full_name: Lake.BuildInfo.fetch
code: /-- Fetch the result associated with the info using the Lake build index. -/
@[inline] def BuildInfo.fetch (self : BuildInfo) [FamilyOut BuildData self.key α] : FetchM α 
goal: Lake.FetchM α

full_name: Lake.ensureJob
code: /-- Wraps stray I/O, logs, and errors in `x` into the produced job.  -/
def ensureJob (x : FetchM (Job α))
: FetchM (Job α) 
goal: Lake.FetchM (Lake.Job α)

full_name: Lake.registerJob
code: /--
Registers the job for the top-level build monitor,
(e.g., the Lake CLI progress UI), assigning it `caption`.
-/
def registerJob (caption : String) (job : Job α) : FetchM (Job α) 
goal: Lake.FetchM (Lake.Job α)

full_name: Lake.withRegisterJob
code: /--
Registers the produced job for the top-level build monitor
(e.g., the Lake CLI progress UI), assigning it `caption`.

Stray I/O, logs, and errors produced by `x` will be wrapped into the job.
-/
def withRegisterJob
  (caption : String) (x : FetchM (Job α))
: FetchM (Job α) 
goal: Lake.FetchM (Lake.Job α)

full_name: Lake.maybeRegisterJob
code: /--
Registers the produced job for the top-level build monitor
if it is not already (i.e., it has an empty caption).
-/
@[inline] def maybeRegisterJob
  (caption : String) (job : Job α)
: FetchM (Job α) 
goal: Lake.FetchM (Lake.Job α)