Adding new generators
OOP
class interval : public list<int> {\c{\fbox{interval}}
public: interval(int x, int y) : _x(x), _y(y) { require( x <= y ); } bool empty() { return 0; } int head() { return _x; } list<int>* tail() { return (_x+1 <=_y)? new interval(_x+1,_y): new nil<int>; } bool operator==(list<int>* m) { return !m->empty() && _x == m->head() && tail() == m->tail(); } protected: int _x; int _y; };