Generally, this sort of exception should be made by overriding the method in the subclass, rather than by conditionalizing the base case. So, I'd rather see a different method in `split` than an exceptional case in `XModule`.