public override IP5Any Clone(Runtime runtime, int depth) { P5Array clone = new P5Array(runtime, array.Count); if (depth > 0) { foreach (var i in array) { var enumerable = i as IP5Enumerable; if (enumerable != null) clone.PushFlatten(runtime, i); else clone.Push(runtime, i.Clone(runtime, depth - 1)); } } else foreach (var i in array) clone.PushFlatten(runtime, i); return clone; }