All the stuff trying to implement a protocol are usually better off using a language that has sum types imo, and I think that's a big enough argument to dismiss C.