compactness in writing and also namespace pollution .. ;^)<br><br>Vasili<br><br><br><div class="gmail_quote">On Fri, May 30, 2008 at 2:12 AM, Jonathan Cast &lt;<a href="mailto:jonathanccast@fastmail.fm">jonathanccast@fastmail.fm</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">On 29 May 2008, at 11:46 PM, Galchin, Vasili wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br>
<br>
 &nbsp; &nbsp; I don&#39;t want to write kludgy Haskell code!<br>
<br>
typedef struct blah<br>
{<br>
 &nbsp; &nbsp; &nbsp; int val1;<br>
<br>
 &nbsp; &nbsp; &nbsp; union {<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int &nbsp;val2;<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; struct {<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int val3;<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int val4;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; }<br>
} &nbsp; &nbsp;C_type;<br>
<br>
question: in Haskell, can I embed definition of the &quot;union&quot; inside of the C typedef, i.e. recursion definition? Or must I have a separate definition for the &quot;union&quot; which I &quot;instantiate&quot; inside the Haskell &quot;typedef&quot;, i.e. Haskell &quot;data&quot;?<br>

</blockquote>
<br></div></div>
Assuming all of these are semantic, you can say<br>
<br>
newtype HS_type = HS_type (Int, Either Int (Int, Int))<br>
<br>
But you lose named fields.<br>
<br>
It&#39;s hard to give other advice without some idea of /why/ you want to do something like this.<br>
<br>
jcc<br>
<br>
</blockquote></div><br>