<div dir="ltr">Dear Committee,<div><br></div><div>Our own Alejandro has been proposed</div><div>Fine-grained pragmas for classes, families, and instances<br></div><div><a href="https://github.com/ghc-proposals/ghc-proposals/pull/390" rel="noreferrer" target="_blank">https://github.com/ghc-proposals/ghc-proposals/pull/390</a><br><a href="https://github.com/serras/ghc-proposals/blob/instance-pragmas/proposals/0000-fine-grained-undecidable.md" rel="noreferrer" target="_blank">https://github.com/serras/ghc-proposals/blob/instance-pragmas/proposals/0000-fine-grained-undecidable.md</a><br></div><div><br></div><div>His idea is to bring the flexibility of overlaps/overlapping/overlappable pragmas to termination checking, type inference, and constraint solving. Alejandro proposes to introduce the following %-modifiers (as in already accepted #370, <a href="https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0370-modifiers.rst">https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0370-modifiers.rst</a>):</div>%NoTerminationCheck<br>%LiberalCoverage<br>%LiberalInjectivity<br>%Overlapping<br>%Overlappable<br>%Overlaps<div>to liberate conditions for classes and instances, type families, forall-types, etc. The first three modifiers can be used instead of the scary-sounding UndecidableInstances extension. The last three modifiers are supposed to be used instead of the  overlap*-pragmas for instances we already have. Note that this proposal doesn't suggest deprecating those extensions and pragmas.</div><div><br></div><div>I think that this proposal goes in the right direction and recommend accepting it.</div><div><br></div><div>As far as I understand, all the committee members, including those with terms about to expire, have the right to either support this proposal or to raise a voice against it either here or at <a href="https://github.com/ghc-proposals/ghc-proposals/pull/390">https://github.com/ghc-proposals/ghc-proposals/pull/390</a>.</div><div><br></div><div>Regards,</div><div>Vitaly</div><div><br></div><div><br></div><div><br></div></div>