import { concreteTSet } from "@effect/core/stm/TSet/operations/_internal/InternalTSet"
/**
* Retains elements matching predicate.
*
* @tsplus static effect/core/stm/TSet.Aspects retainIfDiscard
* @tsplus pipeable effect/core/stm/TSet retainIfDiscard
*/
export function retainIfDiscard(p: Predicate) {
return (self: TSet): STM => {
concreteTSet(self)
return self.tmap.retainIfDiscard((kv) => p(kv[0]))
}
}