Documentation

Lean.ScopedEnvExtension

Instances For
    Instances For
      Instances For
        Instances For
          def Lean.ScopedEnvExtension.instInhabitedStateStack.default {a✝ a✝¹ a✝² : Type} :
          StateStack a✝ a✝¹ a✝²
          Instances For
            @[implicit_reducible]
            instance Lean.ScopedEnvExtension.instInhabitedStateStack {a✝ a✝¹ a✝² : Type} :
            Inhabited (StateStack a✝ a✝¹ a✝²)
            structure Lean.ScopedEnvExtension.Descr (α β σ : Type) :
            • name : Name
            • mkInitial : IO σ
            • ofOLeanEntry : σαImportM β
            • toOLeanEntry : βα
            • addEntry : σβσ
            • finalizeImport : σσ
            • exportEntry? : OLeanLevelαOption α
            Instances For
              @[implicit_reducible]
              def Lean.ScopedEnvExtension.mkInitial {α β σ : Type} (descr : Descr α β σ) :
              IO (StateStack α β σ)
              Instances For
                def Lean.ScopedEnvExtension.ScopedEntries.insert {β : Type} (scopedEntries : ScopedEntries β) (ns : Name) (b : β) :
                Instances For
                  def Lean.ScopedEnvExtension.addImportedFn {α β σ : Type} (descr : Descr α β σ) (as : Array (Array (Entry α))) :
                  ImportM (StateStack α β σ)
                  Instances For
                    def Lean.ScopedEnvExtension.addEntryFn {α β σ : Type} (descr : Descr α β σ) (s : StateStack α β σ) (e : Entry β) :
                    StateStack α β σ
                    Instances For
                      def Lean.ScopedEnvExtension.exportEntriesFn {α β σ : Type} (descr : Descr α β σ) (level : OLeanLevel) (s : StateStack α β σ) :
                      Instances For
                        structure Lean.ScopedEnvExtension (α β σ : Type) :
                        Instances For
                          def Lean.instInhabitedScopedEnvExtension.default {a✝ : Type} [Inhabited a✝] {a✝¹ a✝² : Type} :
                          ScopedEnvExtension a✝ a✝¹ a✝²
                          Instances For
                            @[implicit_reducible]
                            instance Lean.instInhabitedScopedEnvExtension {a✝ : Type} [Inhabited a✝] {a✝¹ a✝² : Type} :
                            Inhabited (ScopedEnvExtension a✝ a✝¹ a✝²)
                            unsafe def Lean.registerScopedEnvExtensionUnsafe {α β σ : Type} (descr : ScopedEnvExtension.Descr α β σ) :
                            Instances For
                              @[implemented_by Lean.registerScopedEnvExtensionUnsafe]
                              opaque Lean.registerScopedEnvExtension {α β σ : Type} (descr : ScopedEnvExtension.Descr α β σ) :
                              Instances For
                                Instances For

                                  Modifies delimitsLocal flag to false to turn off delimiting of local entries.

                                  Instances For
                                    def Lean.ScopedEnvExtension.addEntry {α β σ : Type} (ext : ScopedEnvExtension α β σ) (env : Environment) (b : β) :
                                    Instances For
                                      def Lean.ScopedEnvExtension.addScopedEntry {α β σ : Type} (ext : ScopedEnvExtension α β σ) (env : Environment) (namespaceName : Name) (b : β) :
                                      Instances For
                                        def Lean.stateStackModify {α β σ : Type} (ext : ScopedEnvExtension α β σ) (states : List (ScopedEnvExtension.State σ)) (b : β) :

                                        The following function is used to implement end_local_scope command.

                                        By default, all states have delimitsLocal set to true, and the following code modifies only the top element of the stack. If the top element’s delimitsLocal is false, the function instead traverses down the stack until it reaches the first state where delimitsLocal is true. Intuitively, delimitsLocal of each State determines whether local entries are delimited. When set to false, it allows traversal through implicit scopes where local entries are not delimited.

                                        Instances For
                                          def Lean.ScopedEnvExtension.addLocalEntry {α β σ : Type} (ext : ScopedEnvExtension α β σ) (env : Environment) (b : β) :
                                          Instances For
                                            def Lean.ScopedEnvExtension.addCore {α β σ : Type} (env : Environment) (ext : ScopedEnvExtension α β σ) (b : β) (kind : AttributeKind) (namespaceName : Name) :
                                            Instances For
                                              def Lean.ScopedEnvExtension.add {m : TypeType} {α β σ : Type} [Monad m] [MonadResolveName m] [MonadEnv m] (ext : ScopedEnvExtension α β σ) (b : β) (kind : AttributeKind := AttributeKind.global) :
                                              Instances For
                                                Instances For
                                                  def Lean.ScopedEnvExtension.activateScoped {α β σ : Type} (ext : ScopedEnvExtension α β σ) (env : Environment) (namespaceName : Name) :
                                                  Instances For
                                                    def Lean.ScopedEnvExtension.modifyState {α β σ : Type} (ext : ScopedEnvExtension α β σ) (env : Environment) (f : σσ) :
                                                    Instances For
                                                      Instances For
                                                        Instances For

                                                          Used to implement end_local_scope command, that disables delimiting local entries of ScopedEnvExtension in a current scope.

                                                          Instances For
                                                            def Lean.activateScoped {m : TypeType} [Monad m] [MonadEnv m] [MonadLiftT (ST IO.RealWorld) m] (namespaceName : Name) :
                                                            Instances For
                                                              @[reducible, inline]
                                                              Instances For
                                                                • name : Name
                                                                • addEntry : σασ
                                                                • initial : σ
                                                                • finalizeImport : σσ
                                                                • exportEntry? : OLeanLevelαOption α
                                                                Instances For