For the merge into Hashable, the default instance is only included if we're on a compatible GHC. This means Hashable itself will be portable, but it strongly encourages other packages not to be.

I think the portability requirement is just used as an easy way to filter out lower quality code, anyway.

  - Clark


On Tue, Nov 6, 2012 at 6:31 AM, Herbert Valerio Riedel <hvr@gnu.org> wrote:
Clark Gaebel <cgaebel@uwaterloo.ca> writes:

> How would the ghc-dependance affect hashable's inclusion in the haskell
> platform? Doesn't the haskell platform ship only a recent version of ghc
> (i.e. one with support for generics)?

I was under the impression that the haskell platform, albeit currently
bundling GHC, aims for portability, as in [1] its required that a
package

| * Compile on all operating systems and compilers that the platform targets. [rationale-8.4]

and in [2] there's a (somewhat weaker) mention of portability as well:

| *Portability*. Good code is portable. In particular, try to ensure the
|                code runs in Hugs and GHC, and on Windows and Linux.

Maybe Hugs is a bit too outdated/unmaintained, but on the other hand
maybe JHC and UHC compatibility should be aimed for instead these days
for core packages?


 [1]: http://trac.haskell.org/haskell-platform/wiki/AddingPackages#Packagerequirements
 [2]: http://www.haskell.org/haskellwiki/Library_submissions#Guidance_for_proposers