makeExo = (tag, interfaceGuard, methods, options = undefined) => {
  const makeInstance = defineExoClass(
    tag,
    interfaceGuard,
    initEmpty,
    methods,
    options,
  );
  return makeInstance();
}
@template {Methods} T
@param {string} tag
@param {import('@endo/patterns').InterfaceGuard<{
  [M in keyof T]: import('@endo/patterns').MethodGuard
}> | undefined} interfaceGuard CAVEAT: static typing does not yet support `callWhen` transformation
@param {T} methods
@param {FarClassOptions<import('./types.js').ClassContext<{},T>>} [options]
@returns {Guarded<T>}