Better implementation of _polymorphic_operator