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
              Equations
              • One or more equations did not get rendered due to their size.
              @[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
                            • One or more equations did not get rendered due to their size.
                            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