integrating types into reduction