applyMatrixToPoint :: Matrix -> Point -> Point
applyMatrixToPoint m (x, y, z) = (a1, a2, a3)
   where
      a1 = dotProduct row1 v
      a2 = dotProduct row2 v
      a3 = dotProduct row3 v
      (row1, row2, row3, row4) = rows m
      v = (x, y, z, 1)
applyMatrixToPoint :: Matrix -> Point -> Point
applyMatrixToPoint m (x, y, z) = (a1, a2, a3)
   where
      a1 = dotProduct row1 v
      a2 = dotProduct row2 v
      a3 = dotProduct row3 v
      (row1, row2, row3, row4) = rows m
      v = (x, y, z, 1)
applyMatrixToPoint m (x, y, z) = (a1, a2, a3)
   where
      a1 = dotProduct row1 v
      a2 = dotProduct row2 v
      a3 = dotProduct row3 v
      (row1, row2, row3, row4) = rows m
      v = (x, y, z, 1)