> If gl_array_list.h is carried within the library sources I'm not sure if it > should be included in the library public interface pdf.h.
At least the definition of `gl_list_t' (in gl_list.h) is needed in pdf.h. I don't think it's a good idea to include the full header from gnulib within the pdf.h file. How about redefining the contents of `struct pdf_stm_s' to avoid using gl_list_t? As this type is a pointer, we could use (void *) instead for the `read_filter_list' and `write_filter_list' variables. Another option could be to use (void *) instead of `pdf_stm_t' directly. That is legacy code. That is the reason we have defined a list module in the base layer: in order to provide an abstraction layer over the gnulib implementation.
