Implement with types, not your brain (2019)
This way of writing Haskell, from my experience, results in write-only code. While it's nice that the compiler helped you figure out which obscure operators to use for your code to actually compile, it sucks for the next person trying to find the bug in your code. And just because the types check out doesn't mean it's free from bugs.Code is also meant to be read and reasoned about by humans, not just by the compiler.