Thanks for that. It seems that self types are useful in classes/interfaces when they are used in type constraints, even though they may not be useful when those classes/interfaces are used as types.
I still hate them, but you gave me what I asked for