Abstraction, like optimization, is nice when it serves a purpose. If it doesn&#x27;t serve a purpose, you&#x27;re probably just making your program harder to understand for no reason. You can see this in Java too, with proliferating class hierarchies introducing needless concepts. Haskell is also a research language and there are people working on abstractions for the sake of it, much like mathematicians sometimes do. If that&#x27;s not your interest, just write programs that work and don&#x27;t worry about being abstract for the sake of abstraction!