∀ {α : Type u} {β : α → Type v} {δ : Type w} {m : Type w → Type u_1} [inst : Monad m] (f : (a : α) → β a → δ → m δ)
  (init : δ) (x : Std.DTreeMap.Internal.Impl α β),
  Std.DTreeMap.Internal.Impl.foldrM f init x =
    match x with
    | Std.DTreeMap.Internal.Impl.leaf => pure init
    | Std.DTreeMap.Internal.Impl.inner size k v l r => do
      let right ← Std.DTreeMap.Internal.Impl.foldrM f init r
      let middle ← f k v right
      Std.DTreeMap.Internal.Impl.foldrM f middle l