feat: new `#reduce` elaborator

closes #4465
3 files changed