The Requirements Channel: Dependency Injection
The third channel `R` represents requirements - services your Effect needs to run.
Instead of importing services directly, Effects declare what they need. This makes code testable and composable.
Create an Effect that needs a Database service.
- Use `Effect.Service` to define services
- Access services with `yield* ServiceName` in `Effect.gen`
- The `R` channel documents all required services
Loading code editor...