code: def values(self):
          
          separate_values = [domain.values for domain in self._domains]
          return np.concatenate([
              join_struct_arrays(list(map(np.array, value))) 
              for value in product(*separate_values)
          ])
docs: Returns an `np.array` of type `dtype` containing
          some values from the domain.
          For domains where `is_finite` is ``True``, all elements
          of the domain will be yielded exactly once.
  
          :rtype: `np.ndarray`