fix: prefer reduce(module,ideal) over reduce(module,module)