class Space : IEnumerable<Space> { public object Filler { get { return filler ?? (filler = Top.create()); } } public Space Upper { get; protected set; } public Space Top => Upper?.Top ?? this; private Func<object> create; private object fi…
class Space<T> : IEnumerable<Space<T>> { public T Filler { get { if (!ed) { ed = true; return (filler = Top.create()); } return filler; } } public Space<T> Upper { get; private set; } public Space<T> Top => Upper?.Top ?? t…