export const ExecutionStrategy = {
  $: {}
};
/**
 * Execute effects sequentially.
 */

export class Sequential {
  constructor() {
    this._tag = "Sequential";
  }

}
/**
 * Execute effects in parallel.
 */

export class Parallel {
  constructor() {
    this._tag = "Parallel";
  }

}
/**
 * Execute effects in parallel, up to the specified number of concurrent
 * fibers.
 */

export class ParallelN {
  constructor(n) {
    this.n = n;
    this._tag = "ParallelN";
  }

}
/**
 * Execute effects sequentially.
 *
 * @tsplus static ets/ExecutionStrategy/Ops Sequential
 */

export const sequential = /*#__PURE__*/new Sequential();
/**
 * Execute effects in parallel.
 *
 * @tsplus static ets/ExecutionStrategy/Ops Parallel
 */

export const parallel = /*#__PURE__*/new Parallel();
/**
 * Execute effects in parallel, up to the specified number of concurrent
 * fibers.
 *
 * @tsplus static ets/ExecutionStrategy/Ops ParallelN
 */

export function parallelN(n) {
  return new ParallelN(n);
}
//# sourceMappingURL=definition.mjs.map