Can't you use DisallowedMethod? First time I see self as a type hint, and it's confusing, because I thought first that it allows only the same instance (and not any instance of this type).