# Summary

[Introduction](./introduction.md)

# Part I: Foundations

- [Why Effects?](./part1/ch01-00-why-effects.md)
  - [Challenges in Large Async Codebases](./part1/ch01-01-challenges-in-large-async-codebases.md)
  - [What Even Is an Effect?](./part1/ch01-02-what-is-an-effect.md)
  - [The Three Type Parameters](./part1/ch01-03-type-parameters.md)
  - [Laziness as a Superpower](./part1/ch01-04-laziness.md)
- [Your First Effect](./part1/ch02-00-first-effect.md)
  - [Creating Effects](./part1/ch02-01-creating-effects.md)
  - [Transforming Success](./part1/ch02-02-transforming.md)
  - [Chaining Effects](./part1/ch02-03-chaining.md)
  - [Your First Real Program](./part1/ch02-04-real-program.md)
- [The effect! Macro](./part1/ch03-00-effect-macro.md)
  - [Why Do-Notation Exists](./part1/ch03-01-why-do-notation.md)
  - [The bind* Operator Explained](./part1/ch03-02-bind-operator.md)
  - [Error Handling Inside effect!](./part1/ch03-03-error-handling.md)
  - [When Not to Use the Macro](./part1/ch03-04-when-not-to-use.md)

# Part II: Environment & Dependencies

- [The R Parameter](./part2/ch04-00-r-parameter.md)
  - [R Revisited](./part2/ch04-01-r-revisited.md)
  - [Providing Dependencies](./part2/ch04-02-providing.md)
  - [Widening and Narrowing](./part2/ch04-03-widening-narrowing.md)
  - [R as Documentation](./part2/ch04-04-r-as-docs.md)
- [Tags and Context](./part2/ch05-00-tags-context.md)
  - [The Problem with Positional Types](./part2/ch05-01-positional-problem.md)
  - [Tags](./part2/ch05-02-tags.md)
  - [Context and HLists](./part2/ch05-03-context-hlists.md)
  - [Get and GetMut](./part2/ch05-04-get-getmut.md)
- [Layers](./part2/ch06-00-layers.md)
  - [What Is a Layer?](./part2/ch06-01-what-is-layer.md)
  - [Building Layers](./part2/ch06-02-building-layers.md)
  - [Stacking Layers](./part2/ch06-03-stacking.md)
  - [Layer Graphs](./part2/ch06-04-layer-graphs.md)
- [Services](./part2/ch07-00-services.md)
  - [Service Traits](./part2/ch07-01-service-traits.md)
  - [ServiceEnv and service_env](./part2/ch07-02-service-env.md)
  - [Providing Services via Layers](./part2/ch07-03-providing-services.md)
  - [A Complete DI Example](./part2/ch07-04-complete-example.md)

# Part III: Real Programs

- [Error Handling](./part3/ch08-00-error-handling.md)
  - [Beyond Result](./part3/ch08-01-beyond-result.md)
  - [Exit](./part3/ch08-02-exit.md)
  - [Recovery Combinators](./part3/ch08-03-recovery.md)
  - [Error Accumulation](./part3/ch08-04-accumulation.md)
- [Concurrency & Fibers](./part3/ch09-00-concurrency.md)
  - [What Are Fibers?](./part3/ch09-01-what-are-fibers.md)
  - [Spawning and Joining](./part3/ch09-02-spawning-joining.md)
  - [Cancellation](./part3/ch09-03-cancellation.md)
  - [FiberRef](./part3/ch09-04-fiberref.md)
- [Resources & Scopes](./part3/ch10-00-resources.md)
  - [The Resource Problem](./part3/ch10-01-resource-problem.md)
  - [Scopes and Finalizers](./part3/ch10-02-scopes-finalizers.md)
  - [acquire_release](./part3/ch10-03-acquire-release.md)
  - [Pools](./part3/ch10-04-pools.md)
- [Scheduling](./part3/ch11-00-scheduling.md)
  - [Schedule](./part3/ch11-01-schedule.md)
  - [Built-in Schedules](./part3/ch11-02-builtin-schedules.md)
  - [retry and repeat](./part3/ch11-03-retry-repeat.md)
  - [Clock Injection](./part3/ch11-04-clock-injection.md)

# Part IV: Advanced

- [Software Transactional Memory](./part4/ch12-00-stm.md)
  - [Why STM?](./part4/ch12-01-why-stm.md)
  - [TRef](./part4/ch12-02-tref.md)
  - [Stm and commit](./part4/ch12-03-stm-commit.md)
  - [Transactional Collections](./part4/ch12-04-collections.md)
- [Streams](./part4/ch13-00-streams.md)
  - [Stream vs Effect](./part4/ch13-01-stream-vs-effect.md)
  - [Chunks](./part4/ch13-02-chunks.md)
  - [Backpressure Policies](./part4/ch13-03-backpressure.md)
  - [Sinks](./part4/ch13-04-sinks.md)
- [Schema](./part4/ch14-00-schema.md)
  - [The Unknown Type](./part4/ch14-01-unknown.md)
  - [Schema Combinators](./part4/ch14-02-combinators.md)
  - [Validation and Refinement](./part4/ch14-03-validation.md)
  - [ParseErrors](./part4/ch14-04-parse-errors.md)
- [Testing](./part4/ch15-00-testing.md)
  - [run_test](./part4/ch15-01-run-test.md)
  - [TestClock](./part4/ch15-02-test-clock.md)
  - [Mocking Services](./part4/ch15-03-mocking.md)
  - [Property Testing](./part4/ch15-04-property-testing.md)

# Appendices

- [API Quick Reference](./appendix-a-api-reference.md)
- [Migrating from `async fn` to effects](./appendix-b-migration.md)
- [Glossary](./appendix-c-glossary.md)
