{m : Type u_1 → Type u_2} →
  {α : Type u_3} →
    {β : Type u_1} →
      [Monad m] →
        (as : List α) →
          ((i : ℕ) → α → i < as.length → m β) →
            (bs : List α) → (acc : Array β) → bs.length + acc.size = as.length → m (List β)