private static IEnumerable <ListOperation <T> > Enumerate([NotNull] IListResetOperation <T> reset)
        {
            yield return(ListOperation <T> .OnClear());

            var index = 0;

            if (reset.Items != null)
            {
                foreach (var item in reset.Items)
                {
                    yield return(ListOperation <T> .OnAdd(item, index ++));
                }
            }
        }
 private static ItemOrEnumerable <ListOperation <T> > OnReset([NotNull] IListResetOperation <T> reset) =>
 new ItemOrEnumerable <ListOperation <T> >(Enumerate(reset));