Servirebbe la classe completa. Così a occhio dovrebbe essere:
codice:
template <typename T, typename LIST = Singly  >
class list
{
	struct node {};
	
	template <typename Function>
	node * find( const_reference value, Function compare );
};


template <typename T, typename LIST>
template <typename Function>
typename list<T, LIST>::node * list<T, LIST>::find( const_reference value, Function compare ) {}