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 ) {}