Why are we checking the datatype in `__iter__`, but not in `__getitem__`?  Could the wrong datatype be in the map?