Do I want a Count property on my collections?  If so, it seems like I'm fundamentally limiting my collections to represent collections of finite elements.  What if i want something that represents the set of all rational numbers?  ISet<Rational> would seem the best candidate.  However, then there isn't a valid value for Count to return.  I could have it try returning -1, however, that seems quite ugly and seems like it might definitely confuse people.  I could also have it return an IOptional<int> (see which could return a None<int> to indicate that this collection had no count.  hrmmm... I thin for now I won't include a count as it just seems too limiting.