∀ {m : Type u_1 → Type u_2} {α : Type u_3} {β : Type u_1} [inst : Monad m] {f : α → β → m β} {init : β} {xs : Array α}
  {a : α} {start : ℕ},
  start = xs.size + 1 →
    Array.foldrM f init (xs.push a) start = do
      let init ← f a init
      Array.foldrM f init xs