template<typename T> class List { public: List(); void push_back(T s); void insert(Iterator<T> pos, T s); Iterator<T> erase(Iterator<T> pos); Iterator<T> begin(); Iterator<T> end(); private: Node<T>* first; Node<T>* last; };