use compile and kill in guard