src/output-impl.lisp: Add a debugging dump of the known constraints.
[sod] / lib / sod.h
index efac06b..dc85843 100644 (file)
--- a/lib/sod.h
+++ b/lib/sod.h
@@ -7,7 +7,7 @@
 
 /*----- Licensing notice --------------------------------------------------*
  *
- * This file is part of the Sensble Object Design, an object system for C.
+ * This file is part of the Sensible Object Design, an object system for C.
  *
  * The SOD Runtime Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
   extern "C" {
 #endif
 
+/*----- Preliminary utilities ---------------------------------------------*/
+
+/* --- @SOD__CAR@ --- *
+ *
+ * Arguments:  @...@ = a nonempty list of arguments
+ *
+ * Returns:    The first argument only.
+ */
+
+#if __STDC_VERSION__ >= 199901
+#  define SOD__CAR(...) SOD__CARx(__VA_LIST__, _)
+#  define SOD__CARx(a, ...) a
+#endif
+
 /*----- Header files ------------------------------------------------------*/
 
 #include <stdarg.h>
@@ -125,25 +139,13 @@ struct sod_chain {
   ((struct cls##__ilayout *)                                           \
    ((char *)(obj) - offsetof(struct cls##__ilayout, chead)))
 
-/* --- @SOD_CAR@ --- *
- *
- * Arguments:  @...@ = a nonempty list of arguments
- *
- * Returns:    The first argument only.
- */
-
-#if __STDC_VERSION__ >= 199901
-#  define SOD_CAR(...) SOD__CARx(__VA_LIST__, _)
-#  define SOD__CARx(a, ...) a
-#endif
-
 /*----- Utility macros ----------------------------------------------------*/
 
 /* --- @SOD_CLASSOF@ --- *
  *
  * Arguments:  @p@ = pointer to an instance chain
  *
- * Returns:    A pointer to the instance's class, as a const SodClass.
+ * Returns:    A pointer to the instance's class, as a @const SodClass *@.
  */
 
 #define SOD_CLASSOF(obj) ((const SodClass *)(obj)->_vt->_class)