I don&#39;t know whether this is really applicable but: isn&#39;t emptyStack in Ertugrul last message some kind of constructor? You can add any kind of special constructors as functions in the type class which return a new queue. For example:<div>

<br></div><div>class Stack s where</div><div>  newEmptyStack :: s a</div><div>  newSingletonStack :: a -&gt; s a</div><div>  ...</div><div><br></div><div>Why doesn&#39;t this fulfill you needs of specifying ways to construct new elements?</div>

<div><br><div class="gmail_quote">2012/7/23 Patrick Browne <span dir="ltr">&lt;<a href="mailto:patrick.browne@dit.ie" target="_blank">patrick.browne@dit.ie</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="font-family:&#39;Times New Roman&#39;;font-size:16px"><div class="im"><br><br><span>On 22/07/12, <b>Ertugrul Söylemez </b> &lt;<a href="mailto:es@ertes.de" target="_blank">es@ertes.de</a>&gt; wrote:</span></div>

<div class="im"><blockquote style="border-left:1px solid #00f;padding-left:13px;margin-left:0" type="cite"><div><br><br>You are probably confusing the type class system with something from<br>OOP.  A type class captures a pattern in the way a type is used.  The<br>

corresponding concrete representation of that pattern is then written in<br>the instance definition:<br><br>   </div></blockquote></div>No really. I am investigating the strengths and weaknesses of type classes as a *unit of specification*. <br>

I am aware that their primarily intended to act as interface description, which I suppose is a form of specification.<br>To what degree could the  QUEUE_SPEC (repeated below) from my first posting be expressed as a type class?<br>