On Wed, Aug 12, 2009 at 11:34 AM, David Menendez<[email protected]> wrote: > On Wed, Aug 12, 2009 at 9:16 AM, John Van Enk<[email protected]> wrote: >> On Wed, Aug 12, 2009 at 2:09 AM, Ketil Malde<[email protected]> 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. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
