<div><span class="gmail_quote">On 4/13/07, <b class="gmail_sendername">Neil Mitchell</b> &lt;<a href="mailto:ndmitchell@gmail.com">ndmitchell@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt; Second, if Haskell should be more successful in the<br>&gt; real world there has to be a way of demonstrating<br>&gt; basic ideas of a big program to &quot;customers&quot;. How<br>&gt; would you do this? Everybody knows UML class
<br>&gt; diagrams, for example. In contrast, nobody knows<br>&gt; about termgraphs or lambda *g*.<br><br>The UML is not executable, draw a pretty picture. No one knows UML,<br>everyone knows pretty pictures - most people can guess at the meaning
<br>of UML because they know the meaning of pictures. As to reverse<br>engineering a diagram from code, that always leads to ugly (and<br>pointless) diagrams.</blockquote><div><br>Speaking of pretty pictures, there&#39;s a tool from Business Objects called Gems, which is based on a &quot;lazily evaluated, strictly-typed language called CAL, with many similarities to Haskell&quot;
<br><br>From <a href="http://labs.businessobjects.com/cal/default.asp">http://labs.businessobjects.com/cal/default.asp</a><br>
&quot;These pieces of business logic, which we called &quot;Gems&quot; to give them a
nice friendly face, are declarative &#39;functional&#39; objects.&quot;<br>
<br>Although unrelated to UML, it provides a nice way of graphically representing functions, check it out:<br><a href="http://resources.businessobjects.com/labs/cal/gem_cutter_manual.pdf">http://resources.businessobjects.com/labs/cal/gem_cutter_manual.pdf
</a><br><br>Or, if you prefer a (boring) video:<br><a href="http://resources.businessobjects.com/labs/cal/gem_part_1_mov.zip">http://resources.businessobjects.com/labs/cal/gem_part_1_mov.zip</a><br>
</div><br></div>I haven&#39;t put much thought on that, but I think it&#39;s possible representing (de-sugared) Haskell functions using GraphML and relying on existing renderers for simplicity ... anyone tried that already ?
<br><br>-- <br>Ricardo Guimar„es Herrmann<br>&quot;You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete&quot; - R. Buckminster Fuller