#pragma once

namespace JTL // Jack's template library
{
	template <typename T>
	T List<T>::remove(ListNodePosi(T) p)
	{
		assert(valid(p));
		T data = p->data;
		p->pred->succ = p->succ;
		p->succ->pred = p->pred;
		delete p;
		_size--;
		return data;
	}
};