docs: def validate_wrap(self, value, *types):
          ''' Validates the type and value of ``value`` '''
          for type in types:
              if isinstance(value, type):
                  break
          else:
              self._fail_validation_type(value, *types)
  
          if self.min is not None and value < self.min:
              self._fail_validation(value, 'Value too small')
          if self.max is not None and value > self.max:
              self._fail_validation(value, 'Value too large')