TypeScript Inference Issue with Shortened Function

Why can TypeScript infer this:
class NextIsNotInstalled extends Data.TaggedError('NextIsNotInstalled')<{
  cause: unknown;
}> {}

class NextHeaders extends Effect.Service<NextHeaders>()('NextHeaders', {
  effect: Effect.tryPromise(() => import('next/headers')).pipe(
    Effect.mapError(cause => new NextIsNotInstalled({ cause: cause.error })),
    Effect.map(Struct.evolve({
      cookies: e => Effect.tryPromise(e),
      draftMode: e => Effect.tryPromise(e),
      headers: e => Effect.tryPromise(e),
    })),
  ),
}) {}

const asd = Effect.gen(function* () {
  const { draftMode } = yield* NextHeaders;
  //      ^? Effect.Effect<DraftMode, UnknownException, never>
});

But fails when I try to shorten the function even more?
Effect.map(Struct.evolve({
  cookies: Effect.tryPromise,
  draftMode: Effect.tryPromise,
  headers: Effect.tryPromise,
}))
Was this page helpful?