Reimplement IList in a Generics.Collections clone