Executing an effect within multiple nested maps and filters

How would I properly execute an effect within a filter, within a map, within a map, within a Effect.gen?

So given:

const someThing = (
    arrayOfThingWithArrayOfThings: ArrayOfThingWithArrayOfThings,
) => Effect.gen(function* (_) {
                const { someFunction } = yield* _(someService);

                return ReadonlyArray.map(arrayOfThingWithArrayOfThings, (thingWithArrayOfThings) => {
                    return {
                        ...thingWithArrayOfThings,
                        arrayOfThings: ReadonlyArray.map(thingWithArrayOfThings.arrayOfThings, (thing) => {
                            return {
                                ...thing,
                                moreThings: ReadonlyArray.filter(
                                    thing.moreThings,
                                    (moreThing) => someFunction(moreThing) // How would I execute this? It doesn't recognize yield* at this position
                                ),
                            };
                        }).filter((thing) => thing.moreThings.length > 0),
                    };
                }).filter((thingWithArrayOfThings) => thingWithArrayOfThings.arrayOfThings.length > 0);
        })
Was this page helpful?