Will this have any performance penalty compared to "proper" generic function?
I am wondering if this creates another case, where it can be easily overlooked and misused, like existential protocols were, and we will have to make adjustment like SE-0335