Johnson R. Idris Unleashed. Type-Driven Development..Functional Programming 2024