Changes between Version 2 and Version 3 of Proposals/unordered-containers

Show
Ignore:
Timestamp:
03/19/13 00:08:50 (19 months ago)
Author:
tibbe (IP: 207.198.105.20)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Proposals/unordered-containers

    v2 v3  
    33= Proposal: Add the unordered-containers package and the hashable package to the Haskell Platform = 
    44 
    5 This is a proposal for the 'attoparsec' package version 0.2.3.0 and the 'hashable' package version 1.1.2.5 to be included in the next major release of the Haskell platform. 
     5This is a proposal for the unordered-containers package version 0.2.3.0 and the hashable package version 1.1.2.5 to be included in the next major release of the Haskell platform. 
    66 
    77Everyone is invited to review this proposal, following the [http://trac.haskell.org/haskell-platform/wiki/AddingPackages standard procedure for proposing and reviewing packages]. 
     
    2323= Abstract = 
    2424 
    25 The 'unordered-containers' package implements hashing-based containers that trade some functionality (lack of ordering) for speed. The 'hashable' package provides a type class that, like Ord, is implemented by all types that can be used as keys in these containers. 
     25The unordered-container' package implements hashing-based containers that trade some functionality (lack of ordering) for speed. The hashable package provides a type class that, like Ord, is implemented by all types that can be used as keys in these containers. 
    2626 
    2727Documentation and tarballs from Hackage: 
     
    6767= Design decisions = 
    6868 
    69 ## Type class instead of higher-order function to generate hash values 
     69== Type class instead of higher-order function to generate hash values == 
    7070 
    7171Instead of using a type class to create hash values one could use a higher-order argument to the container constructor 
     
    8484 * It's faster: GHC does a better job specializing functions that use dictionaries (via `INLIABLE`) than functions that use higher-order arguments. 
    8585 
     86== Insert vs lookup performance == 
     87 
     88The data structure (a hash array mapped trie) that's used to implement unordered-containers trades some insert performance for a much better lookup performance. This is a sensible trade-off for the majority of applications, but there are a few programs where using e.g. `Data.IntMap` might be better. 
     89 
    8690= Open issues = 
    8791