Documentation

Lake.Build.Fetch

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]
abbrev Lake.CoreBuildM (α : Type) :

The internal core monad of Lake builds. Not intended for user use.

Equations
Instances For
    @[reducible, inline]
    abbrev Lake.RecBuildT (m : TypeType) (α : Type) :

    A recursive build of a Lake build store that may encounter a cycle.

    An internal monad. 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
      • One or more equations did not get rendered due to their size.
      Instances For
        @[reducible, inline]
        abbrev Lake.RecBuildM (α : Type) :

        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.RecBuildM.run {α : Type} (stack : CallStack BuildKey) (store : BuildStore) (build : RecBuildM α) :

          Run a recursive build.

          Equations
          Instances For
            @[inline]
            def Lake.RecBuildM.run' {α : Type} (build : RecBuildM α) :

            Run a recursive build in a fresh build store.

            Equations
            Instances For
              @[reducible, inline]
              abbrev Lake.IndexBuildFn (m : TypeType v) :

              A build function for any element of the Lake build index.

              Equations
              Instances For
                @[reducible, inline]
                abbrev Lake.IndexT (m : TypeType v) (α : Type) :

                A transformer to equip a monad with a build function for the Lake index.

                Equations
                Instances For
                  @[reducible, inline]
                  abbrev Lake.FetchT (m : TypeType) (α : Type) :

                  The top-level monad transformer for Lake build functions.

                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev Lake.FetchM (α : Type) :

                    The top-level monad for Lake build functions.

                    Equations
                    Instances For
                      @[reducible, inline, deprecated Lake.FetchM (since := "2024-04-30")]
                      abbrev Lake.IndexBuildM (α : Type) :

                      The top-level monad for Lake build functions. Renamed FetchM.

                      Equations
                      Instances For
                        @[reducible, inline, deprecated Lake.FetchM (since := "2024-04-30")]
                        abbrev Lake.BuildM (α : Type) :

                        The old build monad. Uses should generally be replaced by FetchM.

                        Equations
                        Instances For
                          @[inline]
                          def Lake.BuildInfo.fetch {α : Type} (self : BuildInfo) [FamilyOut BuildData self.key α] :
                          FetchM (Job α)

                          Fetch the result associated with the info using the Lake build index.

                          Equations
                          Instances For