<br><br><div class="gmail_quote">On Fri, Mar 19, 2010 at 8:15 AM, Ozgur Akgun <span dir="ltr">&lt;<a href="mailto:ozgurakgun@gmail.com">ozgurakgun@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;">
Hi Cafe!<br><br>Disclaimer: I know what I&#39;m going to ask is now available as a language feature normally.<br></blockquote><div><br>Did you mean &quot;not available&quot;?  I don&#39;t know of a Haskell language feature for this, so if you really did mean &quot;now&quot; then I&#39;d love to learn about the feature you&#39;re thinking of. <br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Only think I can think of is having the constructors, as seperate data types, introducing new type classes to group every possible subset of [X,Y,Z] and [A,B,C,D] and use those type classes when defining the functions. But as you can imagine, this is not the only place I want to use this thing, and the code will start to look cryptic if I do so. I must add, I want to use this <i>disjunction of constructors</i> thingy in data type declerations as well.<br>
</blockquote><div><br>It looks to me like you want dependent types.  You might look at Agda.  It&#39;s similar to Haskell but features dependent types and other interesting things.<br><br>Jason<br></div></div>