docs: def _set_types(self):
          """Make sure that x, y have consistent types and set dtype."""
          # If we given something that is not an int or a float we raise
          # a RuntimeError as we do not want to have to guess if the given
          # input should be interpreted as an int or a float, for example the
          # interpretation of the string "1" vs the interpretation of the string
          # "1.0".
          for c in (self.x, self.y):
              if not ( isinstance(c, int) or isinstance(c, float) ):
                  raise(RuntimeError('x, y coords should be int or float'))
  
          if isinstance(self.x, int) and isinstance(self.y, int):
              self._dtype = "int"
          else:
              # At least one value is a float so promote both to float.
              self.x = float(self.x)
              self.y = float(self.y)
              self._dtype = "float"