gl_set_search O(n) O(1) Here the search method returns a void *, with value (void*)-1 denoting "not found". Hmm, or should the search method better take a 'bool *' argument???
If 'gl_set_search' is merely testing the membership of an element in a set, would not suffice to make it to return a boolean value, like in: bool gl_set_search (void *key);