-// CLN should not pollute the global namespace, hence we include it here
-// instead of in some header file where it would propagate to other parts.
-// Also, we only need a subset of CLN, so we don't include the complete cln.h:
-#ifdef HAVE_CLN_CLN_H
-#include <cln/cl_output.h>
-#include <cln/cl_integer_io.h>
-#include <cln/cl_integer_ring.h>
-#include <cln/cl_rational_io.h>
-#include <cln/cl_rational_ring.h>
-#include <cln/cl_lfloat_class.h>
-#include <cln/cl_lfloat_io.h>
-#include <cln/cl_real_io.h>
-#include <cln/cl_real_ring.h>
-#include <cln/cl_complex_io.h>
-#include <cln/cl_complex_ring.h>
-#include <cln/cl_numtheory.h>
-#else // def HAVE_CLN_CLN_H
-#include <cl_output.h>
-#include <cl_integer_io.h>
-#include <cl_integer_ring.h>
-#include <cl_rational_io.h>
-#include <cl_rational_ring.h>
-#include <cl_lfloat_class.h>
-#include <cl_lfloat_io.h>
-#include <cl_real_io.h>
-#include <cl_real_ring.h>
-#include <cl_complex_io.h>
-#include <cl_complex_ring.h>
-#include <cl_numtheory.h>
-#endif // def HAVE_CLN_CLN_H
-
-#ifndef NO_NAMESPACE_GINAC
-namespace GiNaC {
-#endif // ndef NO_NAMESPACE_GINAC
+// CLN should pollute the global namespace as little as possible. Hence, we
+// include most of it here and include only the part needed for properly
+// declaring cln::cl_number in numeric.h. This can only be safely done in
+// namespaced versions of CLN, i.e. version > 1.1.0. Also, we only need a
+// subset of CLN, so we don't include the complete <cln/cln.h> but only the
+// essential stuff:
+#include <cln/output.h>
+#include <cln/integer_io.h>
+#include <cln/integer_ring.h>
+#include <cln/rational_io.h>
+#include <cln/rational_ring.h>
+#include <cln/lfloat_class.h>
+#include <cln/lfloat_io.h>
+#include <cln/real_io.h>
+#include <cln/real_ring.h>
+#include <cln/complex_io.h>
+#include <cln/complex_ring.h>
+#include <cln/numtheory.h>