<div dir="ltr"><font style="font-family: arial,helvetica,sans-serif;" size="2">Hi all,<br><br>I was wondering if there is syntactic sugar in Haskell for defining a default value for fields in a data type. For instance, say I have a type that is defined in record syntax:<br>
</font><pre style="margin-left: 40px; font-family: arial,helvetica,sans-serif;" id="BookStore.hs:BetterReview" class="programlisting"><font size="2">type CustomerID = Int<br>type Address = Maybe String<br></font></pre><div style="margin-left: 40px; font-family: arial,helvetica,sans-serif;">
<font size="2">data Customer = Customer {<br>      customerID      :: CustomerID<br>    , customerName    :: String<br>    , customerAddress :: Address<br>    } deriving (Show)<br></font></div><pre style="font-family: arial,helvetica,sans-serif;" id="BookStore.hs:Customer" class="programlisting">
<font size="2">Is there any way to define default values for some (or all) fields such that they may be omitted from a declaration, and still have it generate a valid object?<br><br></font></pre><div style="margin-left: 40px; font-family: arial,helvetica,sans-serif;">
<font size="2">e.g.) <br>a = Customer{customerID = 12, customerName=&quot;Bill&quot;}<br>-- I would like a{customerAddress} to default to Nothing (for instance).<br></font></div><div style="font-family: arial,helvetica,sans-serif;">
<br>It seems to me that this would be a nice feature to have, if it does not exist. Am I missing something?<br><br>Mike<br><br><br></div><div style="margin-left: 40px; font-family: arial,helvetica,sans-serif;"><font size="2"><br>
</font></div><pre style="font-family: arial,helvetica,sans-serif;" id="BookStore.hs:Customer" class="programlisting"><font size="2"><br><br><br></font></pre><font style="font-family: arial,helvetica,sans-serif;" size="2"><br>
</font></div>