Some book recommendations.
Practices
Tools
Haskell
-
Thinking With Types - Lots of good information about type-level programming in Haskell.
-
Algebra-Driven Design: A how-to field guide on building leak-free abstractions and algebraically designing real-world applications.