∀ {β : Type v} {α : Type u} {m : Type v → Type w} [inst : Alternative m] (f : α → m β) (as : Array α) (i : ℕ),
  Array.firstM.go✝ f as i = if hlt : i < as.size then f as[i] <|> Array.firstM.go✝¹ f as (i + 1) else failure