`sys/types.h` contains the native definition for `pthread_*_t`. This causes clashes if you want to use `semaphore` and `pthread` in the same application.