// Emacs -*- C++ -*-

//
//	Copyright 1993, Center for Computer Vision and Visualization,
//	University of Florida.  All rights reserved.
//

//
// $Log: BaseSet.h,v $

#ifndef IA_ClosureSet_h_
#define IA_ClosureSet_h_

#include "BaseSet.h"

template <class T>
class IA_ClosureSet:
public IA_BaseSet<T> {
public:

    // default constructor, default copy constructor, and default
    // assignment operator are just fine in this case.

    virtual IA_ClosureSet<T> * clone_self() const =0;

    // The user who derives from this class must still provide
    // IA:Type type() const;
    // int contains(T) const;

    // The user who derives from this class has the option of providing
    // unsigned card() const;
    // T min() const;
    // T max() const;
    // T choice() const;
    // int empty() const;
       
    // IA_BaseSetIter<T> *iterator() const;

};

#endif // IA_ClosureSet_h_
