<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Folks,<div><br></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Proposal: Fine-Grained Unused Warnings (#42)</span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Author: Jakob Brünker</span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Rendered proposal: </span><a href="https://github.com/JakobBruenker/ghc-proposals/blob/fine-grained-unused/proposals/0000-fine-grained-unused-warnings.rst">https://github.com/JakobBruenker/ghc-proposals/blob/fine-grained-unused/proposals/0000-fine-grained-unused-warnings.rst</a><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Discussion: </span><a href="https://github.com/ghc-proposals/ghc-proposals/pull/434">https://github.com/ghc-proposals/ghc-proposals/pull/434</a><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Recommendation: Acceptance</span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">## Summary</span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">The proposal partitions warning about unused identifiers into </span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">a) bindings that are truly unused (not mentioned anywhere) and </span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">b) bindings that are mentioned exclusively in code that is itself (transitively) unused,</span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">and controls the latter with the new flag </span><span style="white-space: break-spaces; color: rgb(16, 25, 32); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 13.6px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgba(159, 170, 183, 0.4); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">-Windirectly-unused-binds</span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); orphans: 2; widows: 2;">, which is enabled by default (to preserve existing behaviour).</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Everybody seems to be in favour of the proposal in general and it has been extensively revised for clarity and to ensure in interoperates consistently with the existing warning-flags mechanisms.</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">I propose</span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"> that we accept this proposal if nobody objects by the start of next week (Monday, 2024-03-18).</span></div><div><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Chris</span></div></body></html>