```size``` is not used anywhere except ```kl_pushp``` and ```kl_shift```, where it is just incremented/decremented.
I see three possibilities to deal with it:
- remove ```size``` and save some memory if we will use these lists more actively
- rewrite ```kl_empty``` as ```return kl->size == 0```
- create ```#define kl_size``` to access ```size```(and maybe replace usages of ```kl_empty``` by ```kl_size == 0```)