cached(fn, ...args) {
		if (this._cache === undefined) return fn(this, ...args);
		return this._cache.provide(fn, ...args, () => fn(this, ...args));
	}
@template T
@template R
@param {(moduleGraph: ModuleGraph, ...args: T[]) => R} fn computer
@param {...T} args arguments
@returns {R} computed value or cached