"use strict"
// tracing: off
Object.defineProperty(exports, "__esModule", { value: true })
exports.parallelN =
  exports.parallel =
  exports.sequential =
  exports.ParallelN =
  exports.Parallel =
  exports.Sequential =
    void 0
class Sequential {
  constructor() {
    this._tag = "Sequential"
  }
}
exports.Sequential = Sequential
class Parallel {
  constructor() {
    this._tag = "Parallel"
  }
}
exports.Parallel = Parallel
class ParallelN {
  constructor(n) {
    this.n = n
    this._tag = "ParallelN"
  }
}
exports.ParallelN = ParallelN
/**
 * Sequential execution strategy
 */
exports.sequential = new Sequential()
/**
 * Parallel execution strategy
 */
exports.parallel = new Parallel()
/**
 * Parallel (up to N) execution strategy
 */
function parallelN(n) {
  return new ParallelN(n)
}
exports.parallelN = parallelN
//# sourceMappingURL=ExecutionStrategy.js.map
