There are two widely used associative containers in Haskell: Map from containers HashMap from unordered-containers Map is using Ord (total order), and most operations are . HashMap is using Hashable (some hash), and most operations are . HashMap is obviously better! It depends. Sometimes HashMap is the only choice, for example when the keys are Unique which has Hashable instance but does not have