recursive reduct