How to write generics in C

Implementing type-safe generics in C step by step