make _resolve-op-type() a multi-method