Task InnerInvoke(Context context, int currentIndex = 0)
{
if (currentIndex == executingElements.Count)
{
return(Task.CompletedTask);
}
ElementInstance element = executingElements[currentIndex];
return(element.Invoke(context, ctx => InnerInvoke(ctx, currentIndex + 1)));
}