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.

A type alias for Option Package that assists monad type class synthesis.

Equations
    Instances For
      @[inline]
      def Lake.withCurrPackage? {m : TypeType u_1} {α : Type} [MonadWithReader CurrPackage m] (pkg? : Option Package) (x : m α) :
      m α

      Run the action x with pkg? as the current package or no package if none.

      Equations
        Instances For
          @[inline]
          def Lake.withCurrPackage {m : TypeType u_1} {α : Type} [MonadWithReader CurrPackage m] (pkg : Package) (x : m α) :
          m α

          Run the action x with pkg as the current package.

          Equations
            Instances For
              @[inline]

              Get the package of the context (if any).

              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

                      Build cycle error message.

                      Equations
                        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.RecBuildT.run {m : TypeType} {α : Type} [Monad m] [MonadLiftT (ST IO.RealWorld) m] (stack : CallStack BuildKey) (store : BuildStore) (build : RecBuildT m α) :

                              Run a recursive build.

                              Equations
                                Instances For
                                  @[inline]
                                  def Lake.RecBuildT.run' {m : TypeType} {α : 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]
                                      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
                                                      @[inline]

                                                      Construct a FetchM monad from its full functional representation.

                                                      Equations
                                                        Instances For
                                                          @[inline]

                                                          Convert a FetchM monad to its full functional representation.

                                                          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
                                                                  def Lake.ModuleFacet.fetch {α : Type} (self : ModuleFacet α) (mod : Module) :
                                                                  FetchM (Job α)

                                                                  Fetch the result of this facet of a module.

                                                                  Equations
                                                                    Instances For