The DateTime and TimeSpan implementations demonstrated what a pain implementing a class that supports the comparison operators beyond just "==" and "\==" varieties. It is necessary to implement 18(!) different operator methods to get the entire set.
In the case of the DateTime and TimeSpan classes, these methods ended up being stubs that called the compareTo() method to figure out the comparison result. Each class needed to implement their own version of this, which was a pain. This also meant that the documentation needed to be duplicated for each of the classes.
The methods from DateTime can be extracted and combined with an ABSTRACT compareTo() method to create a mixin that will stream line this process. Now a class that wants to provide this need only implement the single compareTo() method rather than the 18 separate methods.
Attached is a prototype version of the mixin and a test program.
NOTE: This should be targetted to the post 3.2.0 timeframe.