Redefine make-smart-op as a function