Matrix package:OpenGL

This module corresponds to chapter 4 (Matrix Manipulation) of the GLU specs.
A matrix stack.
The matrix palette stack.
Controls which matrix stack is the target for subsequent matrix operations. The initial value is (Modelview 0).
Push the current matrix stack down by one, duplicating the current matrix, excute the given action, and pop the current matrix stack, replacing the current matrix with the one below it on the stack (i.e. restoring it to its previous state). The returned value is that of the given action. Note that a round-trip to the server is probably required. For a more efficient version, see unsafePreservingMatrix.
A more efficient, but potentially dangerous version of preservingMatrix: The given action is not allowed to throw an exception or change the current matrix mode permanently.
Call the action with the given matrix. Note: The action is not allowed to modify the matrix elements!
Create a new matrix of the given order (containing undefined elements) and call the action to fill it with 4x4 elements.