Issue with Array.reduce and Effect.reduce in Pipeline

I am running into an issue with both using a Array.reduce and an Effect.reduce in a pipeline where the return type out of a reduce is not recognized as anything other than {}

export const reduceReturnTypeIssue = (x: string[]) => 
    Effect.succeed(x).pipe(
    Effect.map((x) =>
      x.reduce((acc, row, index) => {
        return { ...acc, [index]: row };
      }, {})
    ),
    Effect.tap(_ => Effect.log(_))
)

export const effectReduceReturnTypeIssue = (x: string[]) => 
    Effect.succeed(x).pipe(
    Effect.flatMap((x) =>
      Effect.reduce(x, {}, ((acc, row, index) => {
        return Effect.succeed({ ...acc, [index]: row });
      })
    )),
    Effect.tap(_ => Effect.log(_))
)

https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAbzgUQGaoKYGN4F86pQQhwBEG62MpA3AFB0YAekscWEAdgM7xQYATAK5YMAJQwwhUTgBUAnmAwBJbtyEY4AXjgAKJgC44vKME4BzANoBdAJTaAfHDpxXKSjgB06rKMH7bTzBgJV0XNzRMLxAAQzBdAMdwtzgmT35hUQSY3wAaOCIAd3yzAWZ7LScEZJSCyWlORDhPFpysfMtS5msjIrhcelr+-IRcWxrbXJrIqk8YON0AfUd3KJhPABsIcyXbcfHGFmh4Dh54CjWJTPF6mQUlVXVNHX0jEzMrOxXpj3WfPwEASCIQwYRSMy8qA2MRgAFkFolKjVXBD1hkRKCmCNcPlsnkChBinAukwKlVkW5+FIZKtZv8MP4kC1PG0OiSegTCv1bINamMJpMfms5gtlpVaV4tjtFns6LYgA
Was this page helpful?