import * as tsplus_module_1 from "@effect/core/stm/TMap/operations/takeSomeSTM";
import { concreteTSet } from "@effect/core/stm/TSet/operations/_internal/InternalTSet";
/**
 * Transactionally takes all matching values, or retries until there is at least one.
 *
 * @tsplus fluent ets/TSet takeSomeSTM
 */

export function takeSomeSTM_(self, pf) {
  void 0;
  return tsplus_module_1.takeSomeSTM_(self.tmap, kv => pf(kv.get(0)));
}
/**
 * Transactionally takes all matching values, or retries until there is at least one.
 *
 * @tsplus static ets/TSet/Aspects takeSomeSTM
 */

export const takeSomeSTM = pf => self => takeSomeSTM_(self, pf);
//# sourceMappingURL=takeSomeSTM.mjs.map