import { mergeStream } from "@effect/core/testing/_internal/mergeStream" /** * @tsplus static effect/core/testing/Sample.Aspects flatMap * @tsplus pipeable effect/core/testing/Sample flatMap */ export function flatMap(f: (a: A) => Sample) { return (self: Sample): Sample => { const sample = f(self.value) return Sample( sample.value, mergeStream( sample.shrink as Stream>>, self.shrink.map((maybe) => maybe.map((sample) => sample.flatMap(f))) ) ) } }