#pragma once

namespace JTL // Jack's template library
{
	template <typename T>
	int List<T>::uniquify()
	{
		if (_size < 2)
			return 0;

		int old_size = _size;
		ListNodePosi(T) p = first();
		ListNodePosi(T) q;
		while ((q = p->succ) != trailer) {
			if (q->data != p->data) {
				p = q;
			} else {
				remove(q);
			}
		}

		return old_size - _size;
	}
};