<br>a) you can generate c++ with it :) (but don&#39;t tell it.<br>it may be regarded as offense)<br><br>b) - <br><br>c) - <br><br>d) stop debugging, you don&#39;t need it that much in<br>haskell. But you need profiler. If they really want<br>

to print something in pure function you can show<br>them function &#39;trace&#39;, from Debug.Trace<br><br>e) I don&#39;t think that C++ people think that types are bad.<br>If they do you can tell (beside the types don&#39;t let you<br>

mess up to much and stimulate clarity and documentation)<br>about how easy is to do refactoring in typed language. <br><br>f) You can show them Atom [1]. 5k Haskell code generates <br>20k C-code and it all works in real time in real trucks. <br>

Or Copilot. It&#39;s going to be used in airplanes.<br><br>4. I think it&#39;s bad idea. It&#39;s better to start with<br>examples. <br><br>What really strikes me about haskell is the simplicity of <br>data types. I think the best way to start is to show<br>
Booleans, then lists, then Trees. It&#39;s so simple and<br>beautiful<br><br>You can say. Do you really need to know anything <br>about syntax to understand this:<br><br>data Bool = False | True <br><br>or this <br><br>data Time = Time Hour Minute Second<br>
<br>or this<br><br>data List a = Nil | Cons a (List a)<br><br>and you can say that it is not built in. You can define it<br>yourself and it works as fast as any other data type<br>(or as slow). <br><br>You can stress the idea of haskell data types is<br>
haskell UML.<br><br>Don&#39;t show definitions just show them types like this:<br><br>not :: Bool -&gt; Bool <br>and :: Bool -&gt; Bool -&gt; Bool<br><br>reverse :: [a] -&gt; [a]<br>map     :: (a -&gt; b) -&gt; [a] -&gt; [b]<br>
<br>then you can show definitions and say about pattern matching.<br>It is very intuitive. <br><br><br>[1] <a href="http://hackage.haskell.org/package/atom" target="_blank">http://hackage.haskell.org/package/atom</a><br><br>
<br>