Documentation

Lean.Exception

inductive Lean.Exception :

Exception type used in most Lean monads

Instances For

    Convert exception into a structured message.

    Equations
    • One or more equations did not get rendered due to their size.

    Return syntax object providing position information for the exception. Recall that internal exceptions do not have position information.

    Equations

    Similar to AddMessageContext, but for error messages. The default instance just uses AddMessageContext. In error messages, we may want to provide additional information (e.g., macro expansion stack), and refine the (ref : Syntax).

    Instances
      Equations
      def Lean.throwError {m : TypeType} {α : Type} [inst : Monad m] [inst : Lean.MonadError m] (msg : Lean.MessageData) :
      m α

      Throw an error exception using the given message data. The result of getRef is used as position information. Recall that getRef returns the current "reference" syntax.

      Equations
      def Lean.throwUnknownConstant {m : TypeType} {α : Type} [inst : Monad m] [inst : Lean.MonadError m] (constName : Lean.Name) :
      m α

      Thrown an unknown constant error message.

      Equations
      def Lean.throwErrorAt {m : TypeType} {α : Type} [inst : Monad m] [inst : Lean.MonadError m] (ref : Lean.Syntax) (msg : Lean.MessageData) :
      m α

      Throw an error exception using the given message data and reference syntax.

      Equations
      def Lean.ofExcept {m : TypeType} {ε : Type u_1} {α : Type} [inst : Monad m] [inst : Lean.MonadError m] [inst : ToString ε] (x : Except ε α) :
      m α

      Convert an Except into a m monadic action, where m is any monad that implements MonadError.

      Equations
      def Lean.throwKernelException {m : TypeType} {α : Type} [inst : Monad m] [inst : Lean.MonadError m] [inst : Lean.MonadOptions m] (ex : Lean.KernelException) :
      m α

      Throw an error exception for the given kernel exception.

      Equations
      def Lean.ofExceptKernelException {m : TypeType} {α : Type} [inst : Monad m] [inst : Lean.MonadError m] [inst : Lean.MonadOptions m] (x : Except Lean.KernelException α) :
      m α

      Lift from Except KernelException to m when m can throw kernel exceptions.

      Equations
      class Lean.MonadRecDepth (m : TypeType) :
      • withRecDepth : {α : Type} → Natm αm α
      • getRecDepth : m Nat
      • getMaxRecDepth : m Nat
      Instances
        instance Lean.instMonadRecDepthReaderT {m : TypeType} {ρ : Type} [inst : Monad m] [inst : Lean.MonadRecDepth m] :
        Equations
        • One or more equations did not get rendered due to their size.
        instance Lean.instMonadRecDepthStateRefT' {m : TypeType} {ω : Type} {σ : Type} [inst : Monad m] [inst : Lean.MonadRecDepth m] :
        Equations
        instance Lean.instMonadRecDepthMonadCacheT {α : Type} {m : TypeType} {ω : Type} {β : Type} [inst : BEq α] [inst : Hashable α] [inst : Monad m] [inst : STWorld ω m] [inst : Lean.MonadRecDepth m] :
        Equations
        def Lean.throwMaxRecDepthAt {m : TypeType} {α : Type} [inst : Lean.MonadError m] (ref : Lean.Syntax) :
        m α

        Throw a "maximum recursion depth has been reached" exception using the given reference syntax.

        Equations

        Return true if ex was generated by throwMaxRecDepthAt. This function is a bit hackish. The max rec depth exception should probably be an internal exception, but it is also produced by MacroM which implemented in the prelude, and internal exceptions have not been defined yet.

        Equations
        @[inline]
        def Lean.withIncRecDepth {m : TypeType} {α : Type} [inst : Monad m] [inst : Lean.MonadError m] [inst : Lean.MonadRecDepth m] (x : m α) :
        m α

        Increment the current recursion depth and then execute x. Throw an exception if maximum recursion depth has been reached. We use this combinator to prevent stack overflows.

        Equations
        • One or more equations did not get rendered due to their size.

        Macro for throwing error exceptions. The argument can be an interpolated string. It is a convenient way of building MessageData objects. The result of getRef is used as position information. Recall that getRef returns the current "reference" syntax.

        Equations
        • One or more equations did not get rendered due to their size.

        Macro for throwing error exceptions. The argument can be an interpolated string. It is a convenient way of building MessageData objects. The first argument must be a Syntax that provides position information for the error message. throwErrorAt ref msg is equivalent to withRef ref <| throwError msg

        Equations
        • One or more equations did not get rendered due to their size.