Part I: First Steps
1. Going Functional
2. Declaring the Data Model
3. Increasing Code Reuse
4. Using Containers and Type Classes
5. Laziness and Infinite Structures
Part II: Data Mining
6. Knowing Your Clients Using Monads
7. More Monads: Now for Recommendations
8. Working in Several Cores
Part III: Resource Handling
9. Dealing with Files: IO and Conduit
10. Building and Parsing Text
11. Safe Database Access
12. Web Applications
Part IV: Domain Specific Languages
13. Strong Types
14. Interpreting Offers with Attributes
Part V: Engineering the Store
15. Documenting, Testing, and Verifying
16. Architecting Your Application
17. Looking Further
Back Matter:Appendix: Time Travelling with Haskell
Alejandro Serrano Mena is working towards his PhD thesis in the Software Technology group in Utrecht University. He is passionate about functional programming, and has been coding Haskell for personal and professional projects for more than five years. During his college years he was active in an association promoting functional languages among students, giving talks and helping programmers get started in the functional paradigm. In 2011 he took part in the Google Summer of Code program, enhancing the Haskell plug-in for the popular development environment Eclipse. His current position involves research for enhancing the way in which developers get feedback and interact with strong type systems such as Haskell's.