Testing whether a node is NIL with < 0 rather than == -1 allows
the compiler to know that a node is >= in subsequent code, thus
opening the door to more aggressive optimizations.
// returns NULLT if the test is true
#define NULLT_IF(x) do { if (x) return NULLT; } while (0)
// returns NULLT if the test is true
#define NULLT_IF(x) do { if (x) return NULLT; } while (0)
+#define IS_NIL(x) ((x) < 0)
// Direct calls to sarray library
// Direct calls to sarray library