<div dir="ltr">Yes, my __todo and __fixme are just trivial tricks that work slightly better than -- FIXME and -- TODO as comments. I think I did miss some message from your initial post: could you elaborate how/why {-# WARNING ... #-} does not work within a module? About use-site and definition-site problem, _todo function itself need not be warned., but the functions defined in terms of it are the one we care about. So in that sense, it's still warned at definition site (i.e., __todo becomes the trigger).<div><br></div><div>Cheers,</div><div>Zilin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 18, 2015 at 7:58 PM, Christopher Done <span dir="ltr"><<a href="mailto:chrisdone@gmail.com" target="_blank">chrisdone@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I found WARNING fell short because it doesn't work on module-local definitions, and only triggers on use.<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 18 May 2015 at 08:25, Zilin Chen <span dir="ltr"><<a href="mailto:zilinc.dev@gmail.com" target="_blank">zilinc.dev@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <font face="monospace">I also wanted such a feature but eventually I
      just went with:<br>
      <br>
      __todo :: String -> a<br>
      {-# WARNING __todo "TODO" #-}<br>
      __todo msg = error $ "TODO: " ++ msg<br>
      <br>
      __fixme :: a -> a<br>
      {-# WARNING __fixme "FIXME" #-}<br>
      __fixme = id<br>
      <br>
      Cheers,<br>
      Zilin<br>
    </font><div><div><br>
    <div>On 18/05/15 12:47, Richard Eisenberg
      wrote:<br>
    </div>
    <blockquote type="cite">
      <pre>-1

I like the idea of having GHC spit out warnings and such of this form, but this is so straightforward to do with Template Haskell:

$([] <$ reportWarning "Fix this function!")

You could do something similar in terms, spitting out `id` instead of an empty list of declarations. (You'd have to be careful where you do this, admittedly.)

If it's this easy to do in userland without affecting the compiler, let's do it that way. And, even better, with some library support, you could customize this behavior in all sorts of ways.

Richard

On May 17, 2015, at 4:10 PM, Roman Cheplyaka <a href="mailto:roma@ro-che.info" target="_blank"><roma@ro-che.info></a> wrote:

</pre>
      <blockquote type="cite">
        <pre>On 17/05/15 19:42, Christopher Done wrote:
</pre>
        <blockquote type="cite">
          <pre>What's the feeling on having a FIXME pragma so that I can attach
warnings to unfinished things?

|{-# FIXME foo "Reasons here." #-}|

I would use the WARNING pragma but that doesn't work within a module and
only triggers on use. Compiler errors are the one thing I and everyone
else pays attention to, it would be very handy to have more control over
things GHC reports to the developer to aid development.
</pre>
        </blockquote>
        <pre>+1. I actively use WARNING in such cases, and I'd prefer the warning to
be reported at the definition site.

It'd also be great to allow this pragma anywhere in the code, but I
realize it'd complicate the parser.

Roman

_______________________________________________
Haskell-Cafe mailing list
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a>
</pre>
      </blockquote>
      <pre>_______________________________________________
Haskell-Cafe mailing list
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a>
</pre>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>