code: function toStaticObjectOrArray(fnObject, fnArray) {
      function staticWrapper() {
        var args = [].slice.call(arguments);
        var self = args.shift();
        if (Array.isArray(self)) {
            return fnArray.apply(self, args);
        } else {
            return fnObject.apply(self, args);
        }
      }
  
      return staticWrapper;
    }
docs: Wrapper to allow the use of object methods as static methods of Immutable. with the additional condition of choosing which function to call depending if argument is an array or an object.