docs: def _check_type(self, ref, value):
          """
          Checks whether the type of the cut value matches the type of the
          concept being cut, and raises a QueryException if it doesn't match
          """
          if isinstance(value, list):
              return [self._check_type(ref, val) for val in value]
  
          model_type = self.cube.model[ref].datatype
          if model_type is None:
              return
          query_type = self._api_type(value)
          if query_type == model_type:
              return
          else:
              raise QueryException("Invalid value %r parsed as type '%s' "
                                   "for cut %s of type '%s'"
                                   % (value, query_type, ref, model_type))