
Clark Gaebel
For the merge into Hashable, the default instance is only included if we're on a compatible GHC.
I originally tried to make the same argument for enhancing `deepseq`, but I was made aware this would lead to a conditional API, which is frowned upon, or to quote a succinct summary of the `deepseq`-thread: | [...] the conclusion is that we don't want to modify the deepseq | package because that would take it outside Haskell 98, and we don't | want to have a conditional API (quite rightly). | | There's no disadvantage to having the generic functionality in a | separate package, right? So what's different with `hashable`, that the arguments that applied to `deepseq` back then shouldn't apply to `hashable` now?
This means Hashable itself will be portable, but it strongly encourages other packages not to be.
What do you mean by "encouraging other packages not to be"? Does this mean, a package depending on hashable will most likely be non-portable (due to the conditional API)?
I think the portability requirement is just used as an easy way to filter out lower quality code, anyway.
I'm not sure I follow... cheers, hvr