[Haskell-cafe] Data.Hashable instance generation?

Matti Nykänen matti.nykanen at uef.fi
Mon Jun 15 08:05:21 UTC 2015


A practical question about getting hashing to work.

Having used Data.Map before, I wanted to try Data.HashMap.Lazy instead:
{-# LANGUAGE DeriveGeneric #-}

 import Data.HashMap.Lazy as HM
 import GHC.Generics (Generic)
 import Data.Hashable

 data Colour = Red | Green | Blue
               deriving Generic

 instance Hashable Colour
 foo = HM.insert Red
The data and its instance definition are directly from the web page <https://hackage.haskell.org/package/hashable->.

However, I det the following error:
GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling Main             ( htest.hs, interpreted )

    No instance for (hashable- Colour)
      arising from a use of `insert'
    Possible fix:
      add an instance declaration for
      (hashable- Colour)
    In the expression: insert Red
    In an equation for `foo': foo = insert Red
Failed, modules loaded: none.
I do not know what is wrong or how I could fix it.

Note that my Haskell had originally the older hashable-1.0.0 package, but I cabal-installed this hashable- because surfing the net suggested that it would be much better. Could it be the case that the instance goes somehow in the wrong class?
Matti Nykänen

More information about the Haskell-Cafe mailing list