sl provides a generic implementation of singly-linked lists and stacks.
sl does not do extra allocations behind the scenes for placeholder nodes, yet users of the library can define their node structure almost any way they want. The one important thing is that the ->next member is the first member of the structure.
Check the FunctionReference for details.
This project is in maintenance mode, but moving to google code to preserve it for posterity.