Index: Singular/claptmpl.cc
===================================================================
--- Singular/claptmpl.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ Singular/claptmpl.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -121,8 +121,16 @@
 #include <Singular/Minor.h>
 #include <Singular/Cache.h>
+
 template class std::list<int>;
 template class std::list<MinorKey>;
 template class std::list<IntMinorValue>;
 template class std::list<PolyMinorValue>;
+
+template class std::_List_base<IntMinorValue, std::allocator<IntMinorValue> >;
+template class std::_List_base<int, std::allocator<int> >;
+template class std::_List_base<MinorKey, std::allocator<MinorKey> >;
+template class std::_List_base<PolyMinorValue, std::allocator<PolyMinorValue> >;
+
 template class Cache<MinorKey, IntMinorValue>;
 template class Cache<MinorKey, PolyMinorValue>;
+
Index: factory/ftmpl_inst.cc
===================================================================
--- factory/ftmpl_inst.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ factory/ftmpl_inst.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -64,6 +64,6 @@
 template class ListIterator< List<int> >;
 template class List< List<CanonicalForm> >;
+template class ListItem< List<CanonicalForm> >;
 template class ListIterator< List<CanonicalForm> >;
-
 
 template List<Variable> Union ( const List<Variable>&, const List<Variable>& );
Index: factory/libfac/factor/tmpl_inst.cc
===================================================================
--- factory/libfac/factor/tmpl_inst.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ factory/libfac/factor/tmpl_inst.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -31,4 +31,5 @@
 template class List<SForm>;
 template class ListIterator<SForm>;
+template class ListItem<Substitution<CanonicalForm> >;
 
 #ifndef NOSTREAMIO
Index: kernel/fglmzero.cc
===================================================================
--- kernel/fglmzero.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ kernel/fglmzero.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -1245,4 +1245,11 @@
 }
 
+template class List<fglmSelem>;
+template class ListItem<fglmSelem>;
+template class ListIterator<fglmSelem>;
+template class List<fglmDelem>;
+template class ListItem<fglmDelem>;
+template class ListIterator<fglmDelem>;
+
 
 #endif
Index: kernel/npolygon.cc
===================================================================
--- kernel/npolygon.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ kernel/npolygon.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -396,4 +396,6 @@
 // ----------------------------------------------------------------------------
 
+template class KMatrix<Rational>;
+
 newtonPolygon::newtonPolygon( poly f, const ring s )
 {
Index: kernel/tgb.cc
===================================================================
--- kernel/tgb.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ kernel/tgb.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -5081,2 +5081,143 @@
 {
 }
+
+#if 0
+
+template int pos_helper<int, int*>(skStrategy*, spolyrec*, int, int*, spolyrec**);
+template int pos_helper<long, long*>(skStrategy*, spolyrec*, long, long*, spolyrec**);
+
+template void noro_step<unsigned char>(spolyrec**, int&, slimgb_alg*);
+template void noro_step<unsigned int>(spolyrec**, int&, slimgb_alg*);
+template void noro_step<unsigned short>(spolyrec**, int&, slimgb_alg*);
+
+
+template int term_nodes_sort_crit<unsigned char>(void const*, void const*);
+template int term_nodes_sort_crit<unsigned int>(void const*, void const*);
+template int term_nodes_sort_crit<unsigned short>(void const*, void const*);
+
+template spolyrec* row_to_poly<unsigned char>(unsigned char*, spolyrec**, int, ip_sring*);
+template spolyrec* row_to_poly<unsigned int>(unsigned int*, spolyrec**, int, ip_sring*);
+template spolyrec* row_to_poly<unsigned short>(unsigned short*, spolyrec**, int, ip_sring*);
+
+template void simplest_gauss_modp<unsigned char>(unsigned char*, int, int);
+template void simplest_gauss_modp<unsigned int>(unsigned int*, int, int);
+template void simplest_gauss_modp<unsigned short>(unsigned short*, int, int);
+
+
+template int modP_lastIndexRow<unsigned char>(unsigned char*, int);
+template int modP_lastIndexRow<unsigned int>(unsigned int*, int);
+template int modP_lastIndexRow<unsigned short>(unsigned short*, int);
+
+template SparseRow<unsigned char>* noro_red_to_non_poly_t<unsigned char>(spolyrec*, int&, NoroCache<unsigned char>*, slimgb_alg*);
+template SparseRow<unsigned int>* noro_red_to_non_poly_t<unsigned int>(spolyrec*, int&, NoroCache<unsigned int>*, slimgb_alg*);
+template SparseRow<unsigned short>* noro_red_to_non_poly_t<unsigned short>(spolyrec*, int&, NoroCache<unsigned short>*, slimgb_alg*);
+
+
+template MonRedResNP<unsigned char> noro_red_mon_to_non_poly<unsigned char>(spolyrec*, NoroCache<unsigned char>*, slimgb_alg*);
+template MonRedResNP<unsigned int> noro_red_mon_to_non_poly<unsigned int>(spolyrec*, NoroCache<unsigned int>*, slimgb_alg*);
+template MonRedResNP<unsigned short> noro_red_mon_to_non_poly<unsigned short>(spolyrec*, NoroCache<unsigned short>*, slimgb_alg*);
+
+template SparseRow<unsigned char>* noro_red_to_non_poly_dense<unsigned char>(MonRedResNP<unsigned char>*, int, NoroCache<unsigned char>*);
+template SparseRow<unsigned char>* noro_red_to_non_poly_sparse<unsigned char>(MonRedResNP<unsigned char>*, int, NoroCache<unsigned char>*);
+template SparseRow<unsigned int>* noro_red_to_non_poly_dense<unsigned int>(MonRedResNP<unsigned int>*, int, NoroCache<unsigned int>*);
+template SparseRow<unsigned int>* noro_red_to_non_poly_sparse<unsigned int>(MonRedResNP<unsigned int>*, int, NoroCache<unsigned int>*);
+template SparseRow<unsigned short>* noro_red_to_non_poly_dense<unsigned short>(MonRedResNP<unsigned short>*, int, NoroCache<unsigned short>*);
+template SparseRow<unsigned short>* noro_red_to_non_poly_sparse<unsigned short>(MonRedResNP<unsigned short>*, int, NoroCache<unsigned short>*);
+
+
+
+template class DataNoroCacheNode<unsigned char>;
+template class DataNoroCacheNode<unsigned int>;
+template class DataNoroCacheNode<unsigned short>;
+
+template class NoroCache<unsigned char>;
+template class NoroCache<unsigned int>;
+template class NoroCache<unsigned short>;
+
+
+
+template void add_coef_times_dense<unsigned char>(unsigned char*, int, unsigned char const*, int, snumber*);
+template void add_coef_times_dense<unsigned int>(unsigned int*, int, unsigned int const*, int, snumber*);
+template void add_coef_times_dense<unsigned short>(unsigned short*, int, unsigned short const*, int, snumber*);
+template void add_coef_times_sparse<unsigned char>(unsigned char*, int, SparseRow<unsigned char>*, snumber*);
+template void add_coef_times_sparse<unsigned int>(unsigned int*, int, SparseRow<unsigned int>*, snumber*);
+template void add_coef_times_sparse<unsigned short>(unsigned short*, int, SparseRow<unsigned short>*, snumber*);
+template void add_dense<unsigned char>(unsigned char*, int, unsigned char const*, int);
+template void add_dense<unsigned int>(unsigned int*, int, unsigned int const*, int);
+template void add_dense<unsigned short>(unsigned short*, int, unsigned short const*, int);
+template void add_sparse<unsigned char>(unsigned char*, int, SparseRow<unsigned char>*);
+template void add_sparse<unsigned int>(unsigned int*, int, SparseRow<unsigned int>*);
+template void add_sparse<unsigned short>(unsigned short*, int, SparseRow<unsigned short>*);
+
+
+template void sub_dense<unsigned char>(unsigned char*, int, unsigned char const*, int);
+template void sub_dense<unsigned int>(unsigned int*, int, unsigned int const*, int);
+template void sub_dense<unsigned short>(unsigned short*, int, unsigned short const*, int);
+template void sub_sparse<unsigned char>(unsigned char*, int, SparseRow<unsigned char>*);
+template void sub_sparse<unsigned int>(unsigned int*, int, SparseRow<unsigned int>*);
+template void sub_sparse<unsigned short>(unsigned short*, int, SparseRow<unsigned short>*);
+template void write_coef_idx_to_buffer_dense<unsigned char>(CoefIdx<unsigned char>*, int&, unsigned char*, int);
+template void write_coef_idx_to_buffer_dense<unsigned int>(CoefIdx<unsigned int>*, int&, unsigned int*, int);
+template void write_coef_idx_to_buffer_dense<unsigned short>(CoefIdx<unsigned short>*, int&, unsigned short*, int);
+template void write_coef_idx_to_buffer<unsigned char>(CoefIdx<unsigned char>*, int&, int*, unsigned char*, int);
+template void write_coef_idx_to_buffer<unsigned int>(CoefIdx<unsigned int>*, int&, int*, unsigned int*, int);
+template void write_coef_idx_to_buffer<unsigned short>(CoefIdx<unsigned short>*, int&, int*, unsigned short*, int);
+template void write_coef_times_xx_idx_to_buffer_dense<unsigned char>(CoefIdx<unsigned char>*, int&, unsigned char*, int, snumber*);
+template void write_coef_times_xx_idx_to_buffer_dense<unsigned int>(CoefIdx<unsigned int>*, int&, unsigned int*, int, snumber*);
+template void write_coef_times_xx_idx_to_buffer_dense<unsigned short>(CoefIdx<unsigned short>*, int&, unsigned short*, int, snumber*);
+template void write_coef_times_xx_idx_to_buffer<unsigned char>(CoefIdx<unsigned char>*, int&, int*, unsigned char*, int, snumber*);
+template void write_coef_times_xx_idx_to_buffer<unsigned int>(CoefIdx<unsigned int>*, int&, int*, unsigned int*, int, snumber*);
+template void write_coef_times_xx_idx_to_buffer<unsigned short>(CoefIdx<unsigned short>*, int&, int*, unsigned short*, int, snumber*);
+template void write_minus_coef_idx_to_buffer_dense<unsigned char>(CoefIdx<unsigned char>*, int&, unsigned char*, int);
+template void write_minus_coef_idx_to_buffer_dense<unsigned int>(CoefIdx<unsigned int>*, int&, unsigned int*, int);
+template void write_minus_coef_idx_to_buffer_dense<unsigned short>(CoefIdx<unsigned short>*, int&, unsigned short*, int);
+template void write_minus_coef_idx_to_buffer<unsigned char>(CoefIdx<unsigned char>*, int&, int*, unsigned char*, int);
+template void write_minus_coef_idx_to_buffer<unsigned int>(CoefIdx<unsigned int>*, int&, int*, unsigned int*, int);
+template void write_minus_coef_idx_to_buffer<unsigned short>(CoefIdx<unsigned short>*, int&, int*, unsigned short*, int);
+
+
+
+template void std::__final_insertion_sort<CoefIdx<unsigned char>*>(CoefIdx<unsigned char>*, CoefIdx<unsigned char>*);
+template void std::__final_insertion_sort<CoefIdx<unsigned int>*>(CoefIdx<unsigned int>*, CoefIdx<unsigned int>*);
+template void std::__final_insertion_sort<CoefIdx<unsigned short>*>(CoefIdx<unsigned short>*, CoefIdx<unsigned short>*);
+template void std::__introsort_loop<CoefIdx<unsigned char>*, long>(CoefIdx<unsigned char>*, CoefIdx<unsigned char>*, long);
+template void std::__introsort_loop<CoefIdx<unsigned int>*, long>(CoefIdx<unsigned int>*, CoefIdx<unsigned int>*, long);
+template void std::__introsort_loop<CoefIdx<unsigned short>*, long>(CoefIdx<unsigned short>*, CoefIdx<unsigned short>*, long);
+
+template void std::__heap_select<CoefIdx<unsigned char>*>(CoefIdx<unsigned char>*, CoefIdx<unsigned char>*, CoefIdx<unsigned char>*);
+template void std::__heap_select<CoefIdx<unsigned int>*>(CoefIdx<unsigned int>*, CoefIdx<unsigned int>*, CoefIdx<unsigned int>*);
+template void std::__heap_select<CoefIdx<unsigned short>*>(CoefIdx<unsigned short>*, CoefIdx<unsigned short>*, CoefIdx<unsigned short>*);
+template void std::__insertion_sort<CoefIdx<unsigned char>*>(CoefIdx<unsigned char>*, CoefIdx<unsigned char>*);
+template void std::__insertion_sort<CoefIdx<unsigned int>*>(CoefIdx<unsigned int>*, CoefIdx<unsigned int>*);
+template void std::__insertion_sort<CoefIdx<unsigned short>*>(CoefIdx<unsigned short>*, CoefIdx<unsigned short>*);
+template void std::__move_median_first<CoefIdx<unsigned char>*>(CoefIdx<unsigned char>*, CoefIdx<unsigned char>*, CoefIdx<unsigned char>*);
+template void std::__move_median_first<CoefIdx<unsigned int>*>(CoefIdx<unsigned int>*, CoefIdx<unsigned int>*, CoefIdx<unsigned int>*);
+template void std::__move_median_first<CoefIdx<unsigned short>*>(CoefIdx<unsigned short>*, CoefIdx<unsigned short>*, CoefIdx<unsigned short>*);
+template void std::sort_heap<CoefIdx<unsigned char>*>(CoefIdx<unsigned char>*, CoefIdx<unsigned char>*);
+template void std::sort_heap<CoefIdx<unsigned int>*>(CoefIdx<unsigned int>*, CoefIdx<unsigned int>*);
+template void std::sort_heap<CoefIdx<unsigned short>*>(CoefIdx<unsigned short>*, CoefIdx<unsigned short>*);
+template void std::__unguarded_linear_insert<CoefIdx<unsigned char>*>(CoefIdx<unsigned char>*);
+template void std::__unguarded_linear_insert<CoefIdx<unsigned int>*>(CoefIdx<unsigned int>*);
+template void std::__unguarded_linear_insert<CoefIdx<unsigned short>*>(CoefIdx<unsigned short>*);
+
+template CoefIdx<unsigned char>* std::__unguarded_partition<CoefIdx<unsigned char>*, CoefIdx<unsigned char> >(CoefIdx<unsigned char>*, CoefIdx<unsigned char>*, CoefIdx<unsigned char> const&);
+template CoefIdx<unsigned int>* std::__unguarded_partition<CoefIdx<unsigned int>*, CoefIdx<unsigned int> >(CoefIdx<unsigned int>*, CoefIdx<unsigned int>*, CoefIdx<unsigned int> const&);
+template CoefIdx<unsigned short>* std::__unguarded_partition<CoefIdx<unsigned short>*, CoefIdx<unsigned short> >(CoefIdx<unsigned short>*, CoefIdx<unsigned short>*, CoefIdx<unsigned short> const&);
+template void std::__adjust_heap<CoefIdx<unsigned char>*, long, CoefIdx<unsigned char> >(CoefIdx<unsigned char>*, long, long, CoefIdx<unsigned char>);
+template void std::__adjust_heap<CoefIdx<unsigned int>*, long, CoefIdx<unsigned int> >(CoefIdx<unsigned int>*, long, long, CoefIdx<unsigned int>);
+template void std::__adjust_heap<CoefIdx<unsigned short>*, long, CoefIdx<unsigned short> >(CoefIdx<unsigned short>*, long, long, CoefIdx<unsigned short>);
+template void std::make_heap<CoefIdx<unsigned char>*>(CoefIdx<unsigned char>*, CoefIdx<unsigned char>*);
+template void std::make_heap<CoefIdx<unsigned int>*>(CoefIdx<unsigned int>*, CoefIdx<unsigned int>*);
+template void std::make_heap<CoefIdx<unsigned short>*>(CoefIdx<unsigned short>*, CoefIdx<unsigned short>*);
+
+template void std::__push_heap<CoefIdx<unsigned char>*, long, CoefIdx<unsigned char> >(CoefIdx<unsigned char>*, long, long, CoefIdx<unsigned char>);
+template void std::__push_heap<CoefIdx<unsigned int>*, long, CoefIdx<unsigned int> >(CoefIdx<unsigned int>*, long, long, CoefIdx<unsigned int>);
+template void std::__push_heap<CoefIdx<unsigned short>*, long, CoefIdx<unsigned short> >(CoefIdx<unsigned short>*, long, long, CoefIdx<unsigned short>);
+
+
+template class std::vector<DataNoroCacheNode<unsigned char>*, std::allocator<DataNoroCacheNode<unsigned char>*> >;
+template class std::vector<DataNoroCacheNode<unsigned int>*, std::allocator<DataNoroCacheNode<unsigned int>*> >;
+template class std::vector<DataNoroCacheNode<unsigned short>*, std::allocator<DataNoroCacheNode<unsigned short>*> >;
+template class std::vector<PolySimple, std::allocator<PolySimple> >;
+#endif
+
Index: libpolys/polys/ext_fields/algext.cc
===================================================================
--- libpolys/polys/ext_fields/algext.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ libpolys/polys/ext_fields/algext.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -1427,2 +1427,7 @@
   return FALSE;
 }
+
+template class CRecursivePolyCoeffsEnumerator<NAConverter>;
+
+template class IAccessor<snumber*>;
+
Index: libpolys/polys/ext_fields/transext.cc
===================================================================
--- libpolys/polys/ext_fields/transext.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ libpolys/polys/ext_fields/transext.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -2133,2 +2133,5 @@
   return FALSE;
 }
+
+template class CRecursivePolyCoeffsEnumerator<NTNumConverter>;
+template class IEnumerator<snumber*>;
Index: libpolys/polys/nc/ncSACache.cc
===================================================================
--- libpolys/polys/nc/ncSACache.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ libpolys/polys/nc/ncSACache.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -45,9 +45,5 @@
 
 
-#if OUTPUT
 void CGlobalCacheHash::History(const EHistoryType t, const CGlobalCacheHash::CExponent a, const CGlobalCacheHash::CExponent b, const poly p)
-#else
-void CGlobalCacheHash::History(const EHistoryType, const CGlobalCacheHash::CExponent, const CGlobalCacheHash::CExponent, const poly)
-#endif
 {
 #if OUTPUT
@@ -64,9 +60,5 @@
 
 
-#if OUTPUT
 void  CSpecialPairCacheHash::History(const EHistoryType t, const CSpecialPairCacheHash::CExponent a, const CSpecialPairCacheHash::CExponent b, const poly p)
-#else
-void  CSpecialPairCacheHash::History(const EHistoryType, const CSpecialPairCacheHash::CExponent, const CSpecialPairCacheHash::CExponent, const poly)
-#endif
 {
 #if OUTPUT
@@ -81,2 +73,6 @@
 #endif
 }
+
+
+template class CCacheHash<int>;
+template class CCacheHash<spolyrec*>;
Index: libpolys/polys/nc/ncSACache.h
===================================================================
--- libpolys/polys/nc/ncSACache.h	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ libpolys/polys/nc/ncSACache.h	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -87,5 +87,5 @@
     };
     
-    virtual void History(const EHistoryType , const CExponent /*a*/, const CExponent /*b*/, const poly /*p = NULL*/)
+    virtual void History(const EHistoryType , const CExponent /*a*/, const CExponent /*b*/, const poly = NULL)
     {
       PrintS("CCacheHash::History(a, b, [p])!\n");
Index: libpolys/polys/nc/ncSAMult.cc
===================================================================
--- libpolys/polys/nc/ncSAMult.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ libpolys/polys/nc/ncSAMult.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -1106,3 +1106,9 @@
   return MultiplyEE(expLeft, p_GetExp(pMonom, GetI(), GetBasering()));
 }
-#endif
+
+template class CMultiplier<CPower>;
+template class CMultiplier<int>;
+template class CMultiplier<spolyrec*>;
+
+
+#endif
Index: libpolys/polys/nc/old.gring.cc
===================================================================
--- libpolys/polys/nc/old.gring.cc	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ libpolys/polys/nc/old.gring.cc	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -3517,3 +3517,7 @@
 //   return(TRUE);
 // }
-#endif
+
+#endif
+
+
+
Index: libpolys/tests/common.h
===================================================================
--- libpolys/tests/common.h	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ libpolys/tests/common.h	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -154,3 +154,34 @@
 
 
+template void CxxTest::doAssertDiffers<n_Procs_s*, void*>(char const*, unsigned int, char const*, n_Procs_s*, char const*, void*, char const*);
+template void CxxTest::doAssertDiffers<snumber* (*)(long, n_Procs_s*), void*>(char const*, unsigned int, char const*, snumber* (*)(long, n_Procs_s*), char const*, void*, char const*);
+template void CxxTest::doAssertDiffers<snumber* (*)(snumber*, snumber*, n_Procs_s*), void*>(char const*, unsigned int, char const*, snumber* (*)(snumber*, snumber*, n_Procs_s*), char const*, void*, char const*);
+template void CxxTest::doAssertDiffers<void (*)(n_Procs_s*, int), void*>(char const*, unsigned int, char const*, void (*)(n_Procs_s*, int), char const*, void*, char const*);
+template void CxxTest::doAssertDiffers<void (*)(snumber**, n_Procs_s*), void*>(char const*, unsigned int, char const*, void (*)(snumber**, n_Procs_s*), char const*, void*, char const*);
+template void CxxTest::doAssertDiffers<void (*)(snumber*&, n_Procs_s*), void*>(char const*, unsigned int, char const*, void (*)(snumber*&, n_Procs_s*), char const*, void*, char const*);
+template void CxxTest::doAssertEquals<int, int>(char const*, unsigned int, char const*, int, char const*, int, char const*);
+template void CxxTest::doAssertEquals<n_coeffType, n_coeffType>(char const*, unsigned int, char const*, n_coeffType, char const*, n_coeffType, char const*);
+template void CxxTest::doAssertEquals<snumber* (*)(long, n_Procs_s*), snumber* (*)(long, n_Procs_s*)>(char const*, unsigned int, char const*, snumber* (*)(long, n_Procs_s*), char const*, snumber* (*)(long, n_Procs_s*), char const*);
+template void CxxTest::doAssertEquals<snumber* (*)(snumber*, snumber*, n_Procs_s*), snumber* (*)(snumber*, snumber*, n_Procs_s*)>(char const*, unsigned int, char const*, snumber* (*)(snumber*, snumber*, n_Procs_s*), char const*, snumber* (*)(snumber*, snumber*, n_Procs_s*), char const*);
+template void CxxTest::doAssertEquals<void (*)(snumber**, n_Procs_s*), void (*)(snumber**, n_Procs_s*)>(char const*, unsigned int, char const*, void (*)(snumber**, n_Procs_s*), char const*, void (*)(snumber**, n_Procs_s*), char const*);
+
+template bool CxxTest::differs<n_Procs_s*, void*>(n_Procs_s*, void*);
+template bool CxxTest::differs<snumber* (*)(long, n_Procs_s*), void*>(snumber* (*)(long, n_Procs_s*), void*);
+template bool CxxTest::differs<snumber* (*)(snumber*, snumber*, n_Procs_s*), void*>(snumber* (*)(snumber*, snumber*, n_Procs_s*), void*);
+template bool CxxTest::differs<void (*)(n_Procs_s*, int), void*>(void (*)(n_Procs_s*, int), void*);
+template bool CxxTest::differs<void (*)(snumber**, n_Procs_s*), void*>(void (*)(snumber**, n_Procs_s*), void*);
+template bool CxxTest::differs<void (*)(snumber*&, n_Procs_s*), void*>(void (*)(snumber*&, n_Procs_s*), void*);
+template bool CxxTest::equals<int, int>(int, int);
+template bool CxxTest::equals<n_coeffType, n_coeffType>(n_coeffType, n_coeffType);
+template bool CxxTest::equals<snumber* (*)(long, n_Procs_s*), snumber* (*)(long, n_Procs_s*)>(snumber* (*)(long, n_Procs_s*), snumber* (*)(long, n_Procs_s*));
+template bool CxxTest::equals<snumber* (*)(snumber*, snumber*, n_Procs_s*), snumber* (*)(snumber*, snumber*, n_Procs_s*)>(snumber* (*)(snumber*, snumber*, n_Procs_s*), snumber* (*)(snumber*, snumber*, n_Procs_s*));
+template bool CxxTest::equals<void (*)(snumber**, n_Procs_s*), void (*)(snumber**, n_Procs_s*)>(void (*)(snumber**, n_Procs_s*), void (*)(snumber**, n_Procs_s*));
+template char* CxxTest::numberToString<long>(long, char*, long, unsigned int, unsigned int);
+
+template void CxxTest::doAssertDiffers<ip_sring*, void*>(char const*, unsigned int, char const*, ip_sring*, char const*, void*, char const*);
+template void CxxTest::doAssertEquals<short, int>(char const*, unsigned int, char const*, short, char const*, int, char const*);
+
+template bool CxxTest::differs<ip_sring*, void*>(ip_sring*, void*);
+template bool CxxTest::equals<short, int>(short, int);
+
 #endif /* TESTS_COMMON_H */
Index: libpolys/tests/cxxtest/Root.cpp
===================================================================
--- libpolys/tests/cxxtest/Root.cpp	(revision e62a1dcba3e4e6ef2ea1466f671ce574477a55e3)
+++ libpolys/tests/cxxtest/Root.cpp	(revision 35564a593038fa54330b221ac4ac3342667c31ea)
@@ -16,3 +16,12 @@
 #include <cxxtest/ValueTraits.cpp>
 
+
+template char* CxxTest::numberToString<double>(double, char*, double, unsigned int, unsigned int);
+template char* CxxTest::numberToString<unsigned int>(unsigned int, char*, unsigned int, unsigned int, unsigned int);
+template char* CxxTest::numberToString<unsigned long>(unsigned long, char*, unsigned long, unsigned int, unsigned int);
+template std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*);
+template void CxxTest::doAssertDelta<float, float, float>(char const*, unsigned int, char const*, float, char const*, float, char const*, float, char const*);
+template bool CxxTest::delta<float, float, float>(float, float, float);
+
+
 #endif // __cxxtest__Root_cpp__
