CMP
pl > (char *)a && CMP(thunk, pl - es, pl) > 0;
while (pb <= pc && (cmp_result = CMP(thunk, pb, a)) <= 0) {
while (pb <= pc && (cmp_result = CMP(thunk, pc, a)) >= 0) {
pl > (char *)a && CMP(thunk, pl - es, pl) > 0;
return CMP(thunk, a, b) < 0 ?
(CMP(thunk, b, c) < 0 ? b : (CMP(thunk, a, c) < 0 ? c : a ))
:(CMP(thunk, b, c) > 0 ? b : (CMP(thunk, a, c) < 0 ? a : c ));
for (pl = pm; pl > (char *)a && CMP(thunk, pl - es, pl) > 0;
while (pb <= pc && (r = CMP(thunk, pb, a)) <= 0) {
while (pb <= pc && (r = CMP(thunk, pc, a)) >= 0) {
for (pl = pm; pl > (char *)a && CMP(thunk, pl - es, pl) > 0;
return CMP(thunk, a, b) < 0 ?
(CMP(thunk, b, c) < 0 ? b : (CMP(thunk, a, c) < 0 ? c : a ))
:(CMP(thunk, b, c) > 0 ? b : (CMP(thunk, a, c) < 0 ? a : c ));
#define HASHTABLE_GENERATE(name, entry_, type, field, HASH, CMP) \
sizeof(type), CMP); \
the_entry->field.size, sizeof(type), CMP)); \