It has very good comments in my mind. Reading good and commented code is always helpful.
I agree completely.
That said, the interface itself is pretty decent from what I saw, and I perfectly well understand the comments documenting the intended state of the list. Those comments are great for this, but the sort of thing here is not what we want newbies emulating.
Code:
if (n_th(alist, 2, &v)) /* Return 2nd element */
That sort of thing is awful. If `n_th' is documented properly, the comment is redundant in the worst way. If someone comes along and changes that to get the third element without updating the comment we have "out of sync" documentation. It is annoying to work with in small doses; in complex projects it can be a significant problem.
Again, I know this tutorial, but we don't want newbies learning that kind of commenting.
Soma