{m : Type u_1 → Type u_2} →
  {α : Type u_3} →
    {β : Type u_1} →
      [Monad m] →
        (α → β → m β) → (as : Array α) → ℕ → (_ : β) ×' (start : ℕ) ×' (_ : start ≤ as.size) ×' Array β → m (Array β)