I have generalized TweetSet so that it is now the class OrderedSet[T]. An OrderedSet is a set of elements with an ordering relation. The type parameter T is the type of elements in the set. The main OrderedSet class is abstract. The Empty and NonEmpty classes are subclasses of OrderedSet--just as they were subclasses of TweetSet.
Given OrderedSet, a TweetSet becomes OrderedSet[Tweet]. The OrderedSet class includes the methods that are not Tweet-specific. The Tweet-specific functions have been put in a TweetSet object.
The files are available here. Please look at them. I would like to talk about them Thursday. This code implements the items discussed on the wiki for this week. It also includes additional useful OrderedSet[T] methods.
The transition from TweetSet to OrderedSet[T] is a nice illustration of factoring a class into the parts that are specific to a particular problem and the parts that are more general. In this case, the more general parts (that deal with ordered sets) could usefully be made into its own class with a type parameter.