Semi-functional rule definitions