Thanks for bringing in this angle, David.<br><br>My preference is for honest and humble practice and documentation of negative design.  Instead of saying that something &quot;won&#39;t work&quot;, &quot;can&#39;t work&quot;, &quot;is impossible&quot; etc (or rephrased via &quot;must&quot;, &quot;only&quot;, etc), I&#39;d like honest admissions like &quot;I couldn&#39;t figure out X&quot;, &quot;I got stuck on Y&quot;, etc.  After all, someone else might get further.  Or, in the rare cases, when something actually is impossible, say so prove it.<br>

<br><br><br><div class="gmail_quote">On Wed, May 27, 2009 at 8:34 PM, David Fox <span dir="ltr">&lt;<a href="mailto:ddssff@gmail.com">ddssff@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

What I do like about this so-called &quot;negative&quot; approach is that it represents a part of a program&#39;s documentation that is usually omitted.  You can look at the code and see exactly how and (to a certain extent) why the program does what it does, but what you can&#39;t see is all the things it doesn&#39;t do, and the reasons it doesn&#39;t do them.  This can be extremely important to know when you are thinking about modifying a program.  The change you are considering may have already been tried and rejected, but unless these sorts of negative decisions are documented in the software you may end up spinning your wheels.<br>


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