[Haskell-cafe] [ANNOUNCE] hashable-generics

Herbert Valerio Riedel hvr at gnu.org
Tue Nov 6 15:32:10 CET 2012

Clark Gaebel <cgaebel at uwaterloo.ca> writes:

> 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...


More information about the Haskell-Cafe mailing list