This repository accompanies a comprehensive guide to building large, maintainable Haskell systems, focusing on architecture, modularity, and practical design techniques. It presents patterns for separating pure domain logic from side effects, organizing code into layers and components that can be tested in isolation. Readers encounter multiple styles—MTL/typeclass constraints, tagless-final encodings, free and freer monads, ReaderT-style application environments—and learn when to apply each. The examples emphasize explicit boundaries for infrastructure concerns such as persistence, logging, configuration, and external services to keep business logic clean. Throughout, the code illustrates dependency inversion in Haskell, showing how to swap implementations without pervasive rewrites. The result is a cookbook of strategies and runnable examples that help teams structure real-world Haskell applications beyond small scripts or academic exercises.