code: function previously(currentValue, partial) {
      var previous = {};
      Object.keys(partial).forEach(function(key) {
          if (isObject(currentValue[key] && partial[key])) {
              previous[key] = previously(currentValue[key], partial[key]);
          } else {
              previous[key] = currentValue[key];
          }
      });
      return previous;
  }
docs: We ask the question "what were the previous values of an object"? {a:1, b:1, c:1} {a:2} returns {a:1}