Hi all,<br><br>I'm now using existential types.&nbsp; I avoided learning about them because the name sounded so highly technical and obscure it did not occur to me they could be related to OO.<br><br>Thanks,<br>

<br>
-John<br><br><div><span class="gmail_quote">On 12/7/06, <b class="gmail_sendername">John Ky</b> &lt;<a href="mailto:newhoggy@gmail.com">newhoggy@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;">
Hi,<br><br>I've got an object model that I have a difficult time conceptualising how it might look like in Haskell:<br><br>class Element { }<br><br>class Inline : Element { }<br><br>class ParentInline : Inline {<br>&nbsp;&nbsp; List&lt;Inline&gt; children;
<br>}<br><br>class Bold : ParentInline { }<br>class Underline : ParentInline { }<br><br>class Link : ParentInline {<br>&nbsp;&nbsp; String link;<br>}<br><br>class Text : Inline {<br>&nbsp;&nbsp; String text;<br>}<br><br>class Block : Element { }
<br><br>class Paragraph : Block {<br>&nbsp;&nbsp; List&lt;Inline&gt; paragraph;<br>}<br><br>class Heading : Block {<br>&nbsp;&nbsp; List&lt;Inline&gt; heading;<br>}<br><br>class Document : Element {<br>&nbsp;&nbsp; List&lt;Block&gt; blocks;<br>}<br>
<br>How best to represent this OO data model in Haskell?<br><br>Thanks<br><span class="sg"><br>-John<br><br>

</span></blockquote></div><br>