Effect-TS/io

`Effect.serviceMembers` (and variants) do not recognize `Stream` returning members

Opened this issue · 6 comments

datner commented
interface Foo {
  foo: Stream.Stream<never,never,number>
}
const tag = Context.Tag<Foo>()
const { foo /* <- nop */ } = Effect.serviceConstants(tag) 

Oh indeed the focus was on Effects, may have a look later in the week

Stream is not part of Effect/io

P.S.: This can wait for the great reunification of "everything is a Stream" (Londonian joke for @mikearnaldi)

datner commented

But it looks really lame 🥲

@datner I agree,
I found out it can be an invaluable tool to reduce boilerplate for some particular usages.

@mikearnaldi any thinking on if we want to tackle this?

Ideas:

  1. Implement it in effect/stream and let the user aggregate both results
  2. Implement aggregation out of io and stream but exposed via effect (where?)