makeTrap = trapImpl => {
  const Trap = x => {
    const handler = TrapProxyHandler(x, trapImpl);
    return new Proxy(funcTarget, handler);
  };

  const makeTrapGetterProxy = x => {
    const handler = harden({
      ...baseFreezableProxyHandler,
      has(_target, _prop) {
        // TODO: has property is not yet transferrable over captp.
        return true;
      },
      get(_target, prop) {
        return trapImpl.get(x, prop);
      },
    });
    return new Proxy(objTarget, handler);
  };
  Trap.get = makeTrapGetterProxy;

  return harden(Trap);
}
@param {import('./types.js').TrapImpl} trapImpl
@returns {import('./ts-types.js').Trap}