Documentation

Lean.CoreM

@[inline, reducible]
Instances For

    Cache for the CoreM monad

    Instances For

      State for the CoreM monad.

      Instances For

        Context for the CoreM monad.

        Instances For
          @[inline, reducible]
          abbrev Lean.Core.CoreM (α : Type) :

          CoreM is a monad for manipulating the Lean environment. It is the base monad for MetaM. The main features it provides are:

          • name generator state
          • environment state
          • Lean options context
          • the current open namespace
          Instances For
            Instances For
              @[inline]
              def Lean.Core.liftIOCore {α : Type} (x : IO α) :
              Instances For

                Restore backtrackable parts of the state.

                Instances For
                  @[inline]
                  Instances For
                    @[inline]
                    Instances For
                      @[inline]
                      Instances For
                        def Lean.Core.withIncRecDepth {m : TypeType u_1} {α : Type} [Monad m] [MonadControlT Lean.CoreM m] (x : m α) :
                        m α
                        Instances For
                          def Lean.Core.throwMaxHeartbeat (moduleName : Lake.Name) (optionName : Lake.Name) (max : Nat) :
                          Instances For
                            def Lean.Core.checkMaxHeartbeatsCore (moduleName : String) (optionName : Lake.Name) (max : Nat) :
                            Instances For
                              Instances For
                                def Lean.Core.withCurrHeartbeats {m : TypeType u_1} {α : Type} [Monad m] [MonadControlT Lean.CoreM m] (x : m α) :
                                m α
                                Instances For
                                  @[inline]
                                  def Lean.withAtLeastMaxRecDepth {m : TypeType u_1} {α : Type} [MonadFunctorT Lean.CoreM m] (max : Nat) :
                                  m αm α
                                  Instances For
                                    @[inline]
                                    def Lean.catchInternalId {m : Type u_1 → Type u_2} {α : Type u_1} [Monad m] [MonadExcept Lean.Exception m] (id : Lean.InternalExceptionId) (x : m α) (h : Lean.Exceptionm α) :
                                    m α
                                    Instances For
                                      @[inline]
                                      def Lean.catchInternalIds {m : Type u_1 → Type u_2} {α : Type u_1} [Monad m] [MonadExcept Lean.Exception m] (ids : List Lean.InternalExceptionId) (x : m α) (h : Lean.Exceptionm α) :
                                      m α
                                      Instances For

                                        Return true if ex was generated by throwMaxHeartbeat. This function is a bit hackish. The heartbeat exception should probably be an internal exception. We used a similar hack at Exception.isMaxRecDepth

                                        Instances For

                                          Creates the expression d → b

                                          Instances For
                                            @[extern lean_lcnf_compile_decls]
                                            Instances For