In dceAnnotatedExp (lib/Language/PureScript/Backend/IR/DCE.hs), the Abs case guards on not (paramId member reachableIds). A ParamUnused binder's id is never referenced, so the guard is true for every unused-parameter lambda and the rewrite fires, producing a Rewritten Recurse with an identical expression (the ParamUnused branch maps the parameter to itself and leaves the body alone).
Harmless but wasteful noise on every traversal. The guard should require ParamNamed, leaving ParamUnused lambdas untouched (NoChange).
Found during the 2026-07-02 backend audit.
In
dceAnnotatedExp(lib/Language/PureScript/Backend/IR/DCE.hs), theAbscase guards onnot (paramIdmemberreachableIds). AParamUnusedbinder's id is never referenced, so the guard is true for every unused-parameter lambda and the rewrite fires, producing aRewritten Recursewith an identical expression (theParamUnusedbranch maps the parameter to itself and leaves the body alone).Harmless but wasteful noise on every traversal. The guard should require
ParamNamed, leavingParamUnusedlambdas untouched (NoChange).Found during the 2026-07-02 backend audit.