And in partially answering my own question I forgot to add that this gives you a less queasy-making way of identifying the cstr used to create a structure:<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
--Also, the {} pattern can be used for matching a constructor regardless of the datatype elements even if you don&#39;t use records in the data declaration:<br>
<br>data Foo = Bar | Baz Int<br>g :: Foo -&gt; Bool<br>g Bar {} = True<br>g Baz {} = False       <br></blockquote></div><br>Regarding my comments on the lack of good Haskell books, I just checked LYAHFAGG and RWH and neither of them covered either the problem, or the two mechanisms used for a solution. This is very poor, given that the problem is such an obvious one and the solutions are such general mechanisms. I&#39;m pretty sure that Hutton doesn&#39;t cover this either - in fact &quot;record syntax&quot; isn&#39;t even in the index.<br>