<div dir="ltr"><div>What pragma syntax should other Haskell compilers use? I don't think it's fair for GHC to have exclusive rights to the pragma syntax form the report, and other compilers should not be relegated to using {-# X-FOOHC ... #-}.  But now we have all the same issues again.</div><div><br></div><div>Cheers</div><div>Simon<br></div><div><br></div><div>On Thu, 25 Oct 2018 at 21:32, Ben Gamari <<a href="mailto:ben@smart-cactus.org">ben@smart-cactus.org</a>> wrote:</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Niklas Larsson <<a href="mailto:metaniklas@gmail.com" target="_blank">metaniklas@gmail.com</a>> writes:<br>
<br>
> Hi!<br>
><br>
> Why not follow the standard in that pragmas were intended for all<br>
> tools consuming Haskell ...<br>
<br>
That much isn't clear to me. The Report defines the syntax very<br>
specifically to be for "compiler pragmas" to be used by "compiler<br>
implementations". I personally consider "the compiler" to be something<br>
different from tools like HLint.<br>
<br>
Of course, on the other hand it also specified that implementations<br>
should ignore unknown pragmas, so the original authors clearly didn't<br>
anticipate that non-compiler tooling would be so common.<br>
<br>
> ... and not for GHCs exclusive use? <br>
> All that would require is to make the warning opt-in.<br>
><br>
Disabling the unknown pragma warning by default would mean that users<br>
not be warned if they mis-spelled LANGAGE or INILNE, which could result<br>
in frustrating error messages for the uninitiated. It seems to me that<br>
we should try to avoid this given just how common these pragmas are in<br>
practice.<br>
<br>
Finally, in general I think it would be generally useful to have a<br>
properly namespaced syntax for tooling pragmas. Afterall, we otherwise<br>
end up with tools claiming random bits of syntax, resulting in an<br>
unnecessarily steep learning curve and potentially<br>
syntactically-colliding tools.<br>
<br>
Cheers,<br>
<br>
- Ben<br>
<br>
</blockquote></div></div>