TLDR Q: How does one idiomatically implement 'default' type class instances in Haskell?
I was playing around with 'default' type class instances in Scala, trying to understand how to program them as "idiomatically functional as possible in that language". And also to understand Scala's rules and (possible) limitations when it comes to type classes. As part of that humble goal I decided to limit myself to Scala the language, i.e. not Scala the language and some-library. And, to understand better whether I was on the right track, I decided to port the example I created to Haskell as well, mainly because I wanted to compare the two implementations. Probably because in Haskell I'm a novice coder at best, I stumbled upon the question above. Because the port in Haskell required all sort of language pragmas, while it seemed quite naturally in Scala.
So what do I mean with 'default' type class instances. Functionally, I want to provide an "extension method" for all typ