Guarding with compose