8 public interface IFoo<T> : IFoo
13 public interface ICollectionValue<T>: IFoo<T>
17 public interface ICollection<T>: ICollectionValue<T>
20 public abstract class EnumerableBase<T> : IFoo<T>
22 public abstract IFoo<T> Hello();
30 public abstract class CollectionBase<T> : EnumerableBase<T>
34 public class HashBag<T>: CollectionBase<T>, ICollection<T>
36 public override IFoo<T> Hello ()