[Haskell-cafe] deriving Data.HashTable - stack overflow

Joey Adams joeyadams3.14159 at gmail.com
Thu Aug 8 20:02:10 CEST 2013


On Thu, Aug 8, 2013 at 12:22 PM, Lyle Kopnicky <lists at qseep.net> wrote:

> ...
>
> So I went to the Data.Hashable page and looked up examples on how to
> derive a Hashable instance for my datatype:
>
> http://hackage.haskell.org/packages/archive/hashable/latest/doc/html/Data-Hashable.html
>
> The problem occurs even when using the sample code on the page:
>
>
> {-# LANGUAGE DeriveGeneric #-}
>
>  import GHC.Generics (Generic)
>  import Data.Hashable
>
>  data Colour = Red | Green | Blue
>                deriving Generic
>
>  instance Hashable Colour
>
> If I then type `hash Red` I get a stack overflow.
>
> I am using the Haskell Platform, so I have hashable-1.1.2.5, but I notice
> the docs are for hashable-1.2.0.10. If I install 1.2.0.10 though, other
> code in my project breaks - seems like one part doesn't recognize the
> instances from another part. So I'll stick with the platform version.
>
> ...
>

Generic support was added in hashable-1.2.  Before then, the default
implementations for `hash` and `hashWithSalt` were written in terms of each
other:

    hash = hashWithSalt defaultSalt
    hashWithSalt salt x = salt `combine` hash x

Because you did not give an implementation for either of these, both
default implementations were used, leading to a loop.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130808/60f48469/attachment.htm>


More information about the Haskell-Cafe mailing list