It was basically that. I was doing TransformedMatrix = TransformedMatrix * TransformMatrrix<div>and should have been doing Transformed Matrix = RotatedMatrix * TransforrmMatrix<br><br><div class="gmail_quote">On Thu, Nov 11, 2010 at 10:03 AM, Dmitry Astapov <span dir="ltr">&lt;<a href="mailto:dastapov@gmail.com">dastapov@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Thu, Nov 11, 2010 at 4:58 PM, Ben Christy &lt;<a href="mailto:ben.christy@gmail.com">ben.christy@gmail.com</a>&gt; wrote:<br>

&gt; I have implemented a scene graph in Haskell and I have a problem. I walk<br>
&gt; down the scenegraph and at each node I recalculate translation matrix and<br>
&gt; pass it to each child. Well it seems to be causing a stack overflow and I am<br>
&gt; lost as to how to resolve the issue without issue a state variable of some<br>
&gt; kind to hold a &quot;matrix stack&quot; as is common in imperative implementations of<br>
&gt; scene graphs. When I run the program fromghci I get<br>
</div>[snip]<br>
<div class="im">&gt; Matrix4x4 {i1j1 = &lt;interactive&gt;: &lt;&lt;loop&gt;&gt;<br>
&gt; &lt;interactive&gt;: interrupted<br>
<br>
</div>Check the expression for i1j1 - seems like it boils down to &quot;let x = x in x&quot;<br>
<br>
--<br>
<font color="#888888">Dmitry Astapov<br>
</font></blockquote></div><br></div>