public interface OSet {
    // init: Make me empty.
    // ------------------------------------------------------------------
    public void init();

    // size: Return the number of elements that I contain.
    // ------------------------------------------------------------------
    public int size();

    // insert: Ensure exactly one copy of element e is in me.
    // ------------------------------------------------------------------
    public void insert(Element e);

    // retrieve: Return my element whose position is rank.
    // Pre: 0 <= rank && rank < this.size()
    // ------------------------------------------------------------------
    public Element retrieve(int rank);

    // delete: Ensure the element at position rank is no longer there.
    // Pre: 0 <= rank && rank < this.size()
    // ------------------------------------------------------------------
    public void delete(int rank);
}

