#ifndef _MULTISET_H_
#define _MULTISET_H_

#include <string.h>

typedef struct {
  size_t  size;
  int valueVec[];
} MultiSet;

MultiSet* multiset_union(MultiSet *A, MultiSet *B);

// Allocates space for a new MultiSet, initializes it using the
// the argument values, and returns it.
MultiSet* multiset_new(size_t size, int *elements);

// Releases all storage allocated to the MultiSet.
void multiset_destroy(MultiSet* this);

#endif