Inferring the result and error types in the `makeEffect` function can be achieved by using TypeSc...
How can I properly infer the effect result and error types in the makeEffect function.
const MainLive = Layer.mergeAll(Service1.Default, Service2.Default, etc...)
const myRuntime = ManagedRuntime.make(MainLive)
type MakeEffectInput<A,E,R extends ManagedRuntime.ManagedRuntime.Context<typeof myRuntime>> = {
effect: Effect.Effect<A,E,R>
}
const makeEffect = (_:MakeEffectInput) => {
//ignore impl
}
const eff1 = makeEffect({
effect: () => Effect.gen(function*(){
const service1 = yield* Service1;
yield* Effect.log("first effect");
// this can return different types
return some value here
})
})