Documentation

Std.Data.DHashMap.Internal.AssocList.Basic

This is an internal implementation file of the hash map. Users of the hash map should not rely on the contents of this file.

Note that some functions in this file (in particular, foldrM, foldr, toList, replace, and erase) are not tail-recursive. This is not a problem because they are only used internally by HashMap, where AssocList is always small. Before making this API public, we would need to add @[csimp] lemmas for tail-recursive implementations.

File contents: Operations on associative lists

inductive Std.DHashMap.Internal.AssocList (α : Type u) (β : αType v) :
Type (max u v)

AssocList α β is "the same as" List (α × β), but flattening the structure leads to one fewer pointer indirection (in the current code generator).

Instances For
    @[specialize #[]]
    def Std.DHashMap.Internal.AssocList.foldlM {α : Type u} {β : αType v} {δ : Type w} {m : Type w → Type w} [Monad m] (f : δ(a : α) → β am δ) (init : δ) :

    Internal implementation detail of the hash map

    Equations
    Instances For
      @[inline]
      def Std.DHashMap.Internal.AssocList.foldl {α : Type u} {β : αType v} {δ : Type w} (f : δ(α : α) → β αδ) (init : δ) (as : Std.DHashMap.Internal.AssocList α β) :
      δ

      Internal implementation detail of the hash map

      Equations
      Instances For
        @[specialize #[]]
        def Std.DHashMap.Internal.AssocList.foldrM {α : Type u} {β : αType v} {δ : Type w} {m : Type w → Type w} [Monad m] (f : (a : α) → β aδm δ) (init : δ) :

        Internal implementation detail of the hash map

        Equations
        Instances For
          @[inline]
          def Std.DHashMap.Internal.AssocList.foldr {α : Type u} {β : αType v} {δ : Type w} (f : (a : α) → β aδδ) (init : δ) (as : Std.DHashMap.Internal.AssocList α β) :
          δ

          Internal implementation detail of the hash map

          Equations
          Instances For
            @[inline]
            def Std.DHashMap.Internal.AssocList.forM {α : Type u} {β : αType v} {m : Type w → Type w} [Monad m] (f : (a : α) → β am PUnit) (as : Std.DHashMap.Internal.AssocList α β) :

            Internal implementation detail of the hash map

            Equations
            Instances For
              @[inline]
              def Std.DHashMap.Internal.AssocList.forInStep {α : Type u} {β : αType v} {δ : Type w} {m : Type w → Type w} [Monad m] (as : Std.DHashMap.Internal.AssocList α β) (init : δ) (f : (a : α) → β aδm (ForInStep δ)) :
              m (ForInStep δ)

              Internal implementation detail of the hash map

              Equations
              Instances For
                @[specialize #[]]
                def Std.DHashMap.Internal.AssocList.forInStep.go {α : Type u} {β : αType v} {δ : Type w} {m : Type w → Type w} [Monad m] (f : (a : α) → β aδm (ForInStep δ)) :
                Equations
                Instances For
                  def Std.DHashMap.Internal.AssocList.toList {α : Type u} {β : αType v} :
                  Std.DHashMap.Internal.AssocList α βList ((a : α) × β a)

                  Internal implementation detail of the hash map

                  Equations
                  Instances For

                    Internal implementation detail of the hash map

                    Equations
                    Instances For
                      def Std.DHashMap.Internal.AssocList.get {α : Type u} {β : Type v} [BEq α] (a : α) (l : Std.DHashMap.Internal.AssocList α fun (x : α) => β) :

                      Internal implementation detail of the hash map

                      Equations
                      Instances For

                        Internal implementation detail of the hash map

                        Equations
                        Instances For

                          Internal implementation detail of the hash map

                          Equations
                          Instances For
                            def Std.DHashMap.Internal.AssocList.getCast! {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (a : α) [Inhabited (β a)] :

                            Internal implementation detail of the hash map

                            Equations
                            Instances For
                              def Std.DHashMap.Internal.AssocList.get! {α : Type u} {β : Type v} [BEq α] [Inhabited β] (a : α) :
                              (Std.DHashMap.Internal.AssocList α fun (x : α) => β)β

                              Internal implementation detail of the hash map

                              Equations
                              Instances For
                                def Std.DHashMap.Internal.AssocList.getKey! {α : Type u} {β : αType v} [BEq α] [Inhabited α] (a : α) :

                                Internal implementation detail of the hash map

                                Equations
                                Instances For
                                  def Std.DHashMap.Internal.AssocList.getCastD {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (a : α) (fallback : β a) :

                                  Internal implementation detail of the hash map

                                  Equations
                                  Instances For
                                    def Std.DHashMap.Internal.AssocList.getD {α : Type u} {β : Type v} [BEq α] (a : α) (fallback : β) :
                                    (Std.DHashMap.Internal.AssocList α fun (x : α) => β)β

                                    Internal implementation detail of the hash map

                                    Equations
                                    Instances For
                                      def Std.DHashMap.Internal.AssocList.getKeyD {α : Type u} {β : αType v} [BEq α] (a fallback : α) :

                                      Internal implementation detail of the hash map

                                      Equations
                                      Instances For
                                        def Std.DHashMap.Internal.AssocList.replace {α : Type u} {β : αType v} [BEq α] (a : α) (b : β a) :

                                        Internal implementation detail of the hash map

                                        Equations
                                        Instances For

                                          Internal implementation detail of the hash map

                                          Equations
                                          Instances For
                                            @[inline]
                                            def Std.DHashMap.Internal.AssocList.filterMap {α : Type u} {β : αType v} {γ : αType w} (f : (a : α) → β aOption (γ a)) :

                                            Internal implementation detail of the hash map

                                            Equations
                                            Instances For
                                              @[specialize #[]]
                                              def Std.DHashMap.Internal.AssocList.filterMap.go {α : Type u} {β : αType v} {γ : αType w} (f : (a : α) → β aOption (γ a)) (acc : Std.DHashMap.Internal.AssocList α γ) :
                                              Equations
                                              Instances For
                                                @[inline]
                                                def Std.DHashMap.Internal.AssocList.map {α : Type u} {β : αType v} {γ : αType w} (f : (a : α) → β aγ a) :

                                                Internal implementation detail of the hash map

                                                Equations
                                                Instances For
                                                  @[inline]
                                                  def Std.DHashMap.Internal.AssocList.filter {α : Type u} {β : αType v} (f : (a : α) → β aBool) :

                                                  Internal implementation detail of the hash map

                                                  Equations
                                                  Instances For
                                                    @[specialize #[]]
                                                    Equations
                                                    Instances For