Index: libpolys/coeffs/longrat.cc
===================================================================
--- libpolys/coeffs/longrat.cc	(revision f284db60abd29db5bed239271c0b6f6b1b680996)
+++ libpolys/coeffs/longrat.cc	(revision 8181f5de8ac7b3396b44ed1178dee9ca26cb30d6)
@@ -69,40 +69,5 @@
 #endif
 
-/*-----------------------------------------------------------------*/
-/*3
-* parameter s in number:
-* 0 (or FALSE): not normalised rational
-* 1 (or TRUE):  normalised rational
-* 3          :  integer with n==NULL
-*/
-/*3
-**  'SR_INT' is the type of those integers small enough to fit into  29  bits.
-**  Therefor the value range of this small integers is: $-2^{28}...2^{28}-1$.
-**
-**  Small integers are represented by an immediate integer handle, containing
-**  the value instead of pointing  to  it,  which  has  the  following  form:
-**
-**      +-------+-------+-------+-------+- - - -+-------+-------+-------+
-**      | guard | sign  | bit   | bit   |       | bit   | tag   | tag   |
-**      | bit   | bit   | 27    | 26    |       | 0     | 0     | 1     |
-**      +-------+-------+-------+-------+- - - -+-------+-------+-------+
-**
-**  Immediate integers handles carry the tag 'SR_INT', i.e. the last bit is 1.
-**  This distuingishes immediate integers from other handles which  point  to
-**  structures aligned on 4 byte boundaries and therefor have last bit  zero.
-**  (The second bit is reserved as tag to allow extensions of  this  scheme.)
-**  Using immediates as pointers and dereferencing them gives address errors.
-**
-**  To aid overflow check the most significant two bits must always be equal,
-**  that is to say that the sign bit of immediate integers has a  guard  bit.
-**
-**  The macros 'INT_TO_SR' and 'SR_TO_INT' should be used to convert  between
-**  a small integer value and its representation as immediate integer handle.
-**
-**  Large integers and rationals are represented by z and n
-**  where n may be undefined (if s==3)
-**  NULL represents only deleted values
-*/
-#define SR_HDL(A) ((long)(A))
+//#define SR_HDL(A) ((long)(A))
 /*#define SR_INT    1L*/
 /*#define INT_TO_SR(INT)  ((number) (((long)INT << 2) + SR_INT))*/
Index: libpolys/coeffs/longrat.h
===================================================================
--- libpolys/coeffs/longrat.h	(revision f284db60abd29db5bed239271c0b6f6b1b680996)
+++ libpolys/coeffs/longrat.h	(revision 8181f5de8ac7b3396b44ed1178dee9ca26cb30d6)
@@ -13,4 +13,54 @@
 #include <coeffs/coeffs.h>
 
+struct snumber;
+typedef struct snumber  *number;
+
+/*-----------------------------------------------------------------*/
+/**
+**  'SR_INT' is the type of those integers small enough to fit into  29  bits.
+**  Therefor the value range of this small integers is: $-2^{28}...2^{28}-1$.
+**
+**  Small integers are represented by an immediate integer handle, containing
+**  the value instead of pointing  to  it,  which  has  the  following  form:
+**
+**      +-------+-------+-------+-------+- - - -+-------+-------+-------+
+**      | guard | sign  | bit   | bit   |       | bit   | tag   | tag   |
+**      | bit   | bit   | 27    | 26    |       | 0     | 0     | 1     |
+**      +-------+-------+-------+-------+- - - -+-------+-------+-------+
+**
+**  Immediate integers handles carry the tag 'SR_INT', i.e. the last bit is 1.
+**  This distuingishes immediate integers from other handles which  point  to
+**  structures aligned on 4 byte boundaries and therefor have last bit  zero.
+**  (The second bit is reserved as tag to allow extensions of  this  scheme.)
+**  Using immediates as pointers and dereferencing them gives address errors.
+**
+**  To aid overflow check the most significant two bits must always be equal,
+**  that is to say that the sign bit of immediate integers has a  guard  bit.
+**
+**  The macros 'INT_TO_SR' and 'SR_TO_INT' should be used to convert  between
+**  a small integer value and its representation as immediate integer handle.
+**
+**  Large integers and rationals are represented by z and n
+**  where n may be undefined (if s==3)
+**  NULL represents only deleted values
+*/
+
+struct snumber
+{
+  mpz_t z; //< Zaehler
+  mpz_t n; //< Nenner
+#if defined(LDEBUG)
+  int debug;
+#endif
+
+  /**
+   * parameter s in number:
+   * 0 (or FALSE): not normalised rational
+   * 1 (or TRUE):  normalised rational
+   * 3          :  integer with n==NULL
+   **/
+  BOOLEAN s; //< integer parameter
+};
+
 #define SR_HDL(A) ((long)(A))
 
@@ -22,15 +72,4 @@
 
 
-struct snumber;
-typedef struct snumber  *number;
-struct snumber
-{
-  mpz_t z;
-  mpz_t n;
-#if defined(LDEBUG)
-  int debug;
-#endif
-  BOOLEAN s;
-};
 
 // allow inlining only from p_Numbers.h and if ! LDEBUG
