The R Parameter — Your Dependencies, Encoded in Types

Chapter 1 introduced R as "what an effect needs to run." We kept it vague on purpose — you needed to understand effects before worrying about their environment.

Now it's time to understand R properly. This chapter answers: what is R mechanically, how does it flow through composition, and how do you satisfy it?

The payoff is significant. Once you internalize R, compile-time dependency injection stops feeling like magic and starts feeling obvious.