};
struct interaction * interaction_create (const struct variable *);
+struct interaction * interaction_clone (const struct interaction *);
void interaction_destroy (struct interaction *);
void interaction_add_variable (struct interaction *, const struct variable *);
void interaction_dump (const struct interaction *);
void interaction_to_string (const struct interaction *iact, struct string *str);
+bool interaction_is_proper_subset (const struct interaction *x, const struct interaction *y);
+bool interaction_is_subset (const struct interaction *x, const struct interaction *y);
struct ccase;
-unsigned int interaction_case_hash (const struct interaction *, const struct ccase *);
+unsigned int interaction_case_hash (const struct interaction *, const struct ccase *, unsigned int base);
bool interaction_case_equal (const struct interaction *, const struct ccase *, const struct ccase *);
bool interaction_case_is_missing (const struct interaction *, const struct ccase *, enum mv_class);
int interaction_case_cmp_3way (const struct interaction *, const struct ccase *, const struct ccase *);