Layers — Building Your Dependency Graph
You've seen how R encodes what an effect needs, and how Context holds the values at runtime. But who builds the context?
In small programs you can construct context manually with ctx! and hand values to provide. In real applications, you need something more powerful: a way to declare how to build each piece of the environment, with automatic dependency ordering and lifecycle management.
That's what Layers are for.
A Layer is a recipe for building part of an environment. It knows what it produces, what it needs to produce it, and (optionally) how to clean up afterward. Wire Layers together, and id_effect figures out the right build order automatically.