code: function createAggregateLoader(eventSink, snapshotter, cacher){
  	if(!eventSink){
  		throw new AggregateLoaderSinkNotGivenError();
  	}
  	return function _boundAggregateLoader(ARConstructor, ARID){
  		return loadAggregate(ARConstructor, ARID, eventSink, snapshotter, cacher);
  	};
  }
docs: TODO: Document the "cacher" argument. 
  Create a closure that will subsequently load any AR, without specifying the event sink and snapshotter each time.
  This function simply binds the two last arguments of the loader function to specified values and returns the bound function.
  @param {module:esdf/interfaces/EventSinkInterface} eventSink  The event sink to be used by the generated loader function.
  @param {module:esdf/interfaces/AggregateSnapshotterInterface} [snapshotter] The snapshotter to be used. If not passed, aggregate loading will occur using only the event sink.
  @returns {module:esdf/utils/loadAggregate~loadAggregate}
  @throws {module:esdf/utils/loadAggregate~AggregateLoaderSinkNotGivenError} If an eventSink is not passed to the loader creation function.