Perhaps one has to get used to it but `has_pending_events` is more readable to me than `kl_empty(Event, event_queue)`. Did you consider to inline this function and have it return `!kl_empty(...)`?