Data.Map only need Ord, not Ix