...and you can always do <br><br><span style="font-family: courier new,monospace;">hack :: Vec n a -&gt; FixedVec a</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">hack x :: FixedVec undefined </span><br>
<br><div class="gmail_quote">Also I&#39;m guessing 1, 2 and 17 are just examples, he really wants arbitrary length finite lists.<br><br>/J<br><br>On 13 October 2010 20:47, Daniel Peebles <span dir="ltr">&lt;<a href="mailto:pumpkingod@gmail.com">pumpkingod@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">One option could be something like:<div><br></div><div>data Z</div><div>data S n</div><div><br>
</div><div>data Vec n a where</div><div>  Nil :: Vec Z a</div><div>  Cons :: a -&gt; Vec n a -&gt; Vec (S n) a</div><div><br></div>
<div>data Length n where</div><div>  One :: Length (S Z)</div><div>  Two :: Length (S (S Z))</div><div>  Seventeen :: Length (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S Z)))))))))))))))))</div><div><br></div><div>
data FixedVec a where</div>
<div>  FixedVec :: Legnth n -&gt; Vec n a -&gt; FixedVec a</div><div><br></div><div>But it&#39;s obviously rather cumbersome :)<div><div></div><div class="h5"><br><br><div class="gmail_quote">On Wed, Oct 13, 2010 at 7:57 AM, Jason Dusek <span dir="ltr">&lt;<a href="mailto:jason.dusek@gmail.com" target="_blank">jason.dusek@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">  Is there a way to write a Haskell data structure that is<br>
  necessarily only one or two or seventeen items long; but<br>
  that is nonetheless statically guaranteed to be of finite<br>
  length?<br>
<font color="#888888"><br>
--<br>
Jason Dusek<br>
Linux User #510144 | <a href="http://counter.li.org/" target="_blank">http://counter.li.org/</a><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</font></blockquote></div><br></div></div></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br>