[Haskell-cafe] Announce: EnumMap-0.0.1

John Van Enk vanenkj at gmail.com
Wed Aug 12 12:07:28 EDT 2009


On Wed, Aug 12, 2009 at 11:34 AM, David Menendez<dave at zednenem.com> wrote:
> On Wed, Aug 12, 2009 at 9:16 AM, John Van Enk<vanenkj at gmail.com> wrote:
>> On Wed, Aug 12, 2009 at 2:09 AM, Ketil Malde<ketil at malde.org> wrote:
>>>
>>> And perhaps also note that you will get exceptions for values outside
>>> the Enum range.
>>>
>>
>> I'd think that part is obvious.
>
> That depends on what "outside the Enum range" means. You'll get an
> exception if you somehow get an Int key in the map which doesn't
> correspond to any value in the enum...

We should be protected by the type system against unmatched Int's in
the map as long as you have sane Enum instances.

> ... but you don't get an exception if
> you try to pass in, say, a large Integer.
> Prelude> fromEnum (2^32)
> 0
>
> In essence, you're using Enum as a hash function, but not making any
> provision for hash collisions.
>

Unless I'm mistaken, the Enum typeclass _is_ a hash function who's
keyspace is the range of Int that doesn't make any provisions for
collisions.


More information about the Haskell-Cafe mailing list