In tsl::sparse_map, iterator->first/second result is always const regardless of the underlying constness.
This is different from std::unordered_map, where iterator->first/second result is const only if the map is const.
This is documented in README.md but there doesn't seem to be anything making this impossible in principle.