<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Thanks, Ivan.<br><br>I may be back later, after I read<br><br>http://en.wikibooks.org/wiki/Haskell/Laziness<br><br>Michael<br><br>--- On <b>Sat, 7/31/10, Ivan Lazar Miljenovic <i>&lt;ivan.miljenovic@gmail.com&gt;</i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Ivan Lazar Miljenovic &lt;ivan.miljenovic@gmail.com&gt;<br>Subject: Re: [Haskell-cafe] Constructor question<br>To: "michael rice" &lt;nowgate@yahoo.com&gt;<br>Cc: haskell-cafe@haskell.org<br>Date: Saturday, July 31, 2010, 9:32 AM<br><br><div class="plainMail">michael rice &lt;<a ymailto="mailto:nowgate@yahoo.com" href="/mc/compose?to=nowgate@yahoo.com">nowgate@yahoo.com</a>&gt; writes:<br><br>&gt; From: Data.Complex<br>&gt;<br>&gt; data (RealFloat a) =&gt; Complex a<br>&gt;&nbsp;&nbsp;&nbsp;= !a :+ !a<br>&gt;<br>&gt; What's the
 purpose of the exclamation marks?<br><br>Forcing; it means that the values are evaluated (up to WHNF) before the<br>Complex value is constructed:<br><br><a href="http://www.haskell.org/ghc/docs/6.12.1/html/users_guide/bang-patterns.html" target="_blank">http://www.haskell.org/ghc/docs/6.12.1/html/users_guide/bang-patterns.html</a><br><br>-- <br>Ivan Lazar Miljenovic<br><a ymailto="mailto:Ivan.Miljenovic@gmail.com" href="/mc/compose?to=Ivan.Miljenovic@gmail.com">Ivan.Miljenovic@gmail.com</a><br>IvanMiljenovic.wordpress.com<br></div></blockquote></td></tr></table><br>