code: function (def, model, func) {
          var d = new can.Deferred();
          def.then(function () {
              var args = can.makeArray(arguments);
              args[0] = model[func](args[0]);
              d.resolveWith(d, args);
          }, function () {
              d.rejectWith(this, arguments);
          });
  
          if (typeof def.abort === 'function') {
              d.abort = function () {
                  return def.abort();
              }
          }
  
          return d;
      }
docs: ## model.js `can.Model` _A `can.Observe` that connects to a RESTful interface._ Generic deferred piping function