new type of function: reduce-rule