More implementation of abc::map
Use data types more specific than pair<pair, pair>
Generalize abc::map::bucket_range into abc::index_range