#pragma once namespace JTL // Jack's template library { template <typename T> int List<T>::deduplicate() { if (_size < 2) return 0; int old_size = _size; ListNodePosi(T) p = header; Rank r = 0; while ((p = p->succ) != trailer) { find(p->data, r, p) ? remove(p) : r++; } return old_size - _size; } };