#define isl_union_set_list	isl_union_map_list
#define isl_union_set	isl_union_map
#include <isl/union_map.h>
#include <isl/union_set.h>

struct isl_union_map {
	int ref;
	isl_space *dim;

	struct isl_hash_table	table;
};

struct isl_hash_table_entry *isl_union_set_find_entry(
	__isl_keep isl_union_set *uset, __isl_keep isl_space *space,
	int reserve);

__isl_keep isl_space *isl_union_map_peek_space(__isl_keep isl_union_map *umap);
__isl_keep isl_space *isl_union_set_peek_space(__isl_keep isl_union_set *uset);
isl_bool isl_union_map_is_params(__isl_keep isl_union_map *umap);
isl_bool isl_union_map_space_has_equal_params(__isl_keep isl_union_map *umap,
	__isl_keep isl_space *space);
isl_bool isl_union_set_space_has_equal_params(__isl_keep isl_union_set *uset,
	__isl_keep isl_space *space);
__isl_give isl_union_map *isl_union_map_reset_range_space(
	__isl_take isl_union_map *umap, __isl_take isl_space *space);
__isl_give isl_union_map *isl_union_map_reset_equal_dim_space(
	__isl_take isl_union_map *umap, __isl_take isl_space *space);
