There are some LIBLINCKS functions that, logically, result in lists of various kinds. For instance, there is a function GLV_GETLINKVAL() that returns the value of a field in a group in the links section, which thus is a list of links. To handle such cases, we have adopted the policy to use functions that take a function pointer as argument. So, for example, the function GLV_GETLINKVAL() is called with an argument mapfn, which is a function that gets applied once for each argument in the list. The application program can then form its own structure.
The exact form of the mapfn is documented where it is used. See section 10 for some example mapfn's.