Generic data structures in the c programming language