TEnumerableBase<T>.fEqualityComparer should be protected, not private.
This will allow e.g. the instantiation of a case-insensitive string list.
Right now I cannot change the EqualityComparer because:
GetEqualityComparer is static and the underlying class var is private.
Making the class var fEqualityComparer protected will allow changes in descendant classes without the performance hit of making the property-getter virtual.
For more info.