rotateDS :: Double -> DrawState -> DrawState
rotateDS r = mapDSAT $ \(AffineTransformation a b c d e f) ->
  AffineTransformation
    (a * cos r + c * sin r)
    (b * cos r + d * sin r)
    (c * cos r - a * sin r)
    (d * cos r - b * sin r)
    e
    f
rotateDS :: Double -> DrawState -> DrawState
rotateDS r = mapDSAT $ \(AffineTransformation a b c d e f) ->
  AffineTransformation
    (a * cos r + c * sin r)
    (b * cos r + d * sin r)
    (c * cos r - a * sin r)
    (d * cos r - b * sin r)
    e
    f
rotateDS r = mapDSAT $ \(AffineTransformation a b c d e f) ->
  AffineTransformation
    (a * cos r + c * sin r)
    (b * cos r + d * sin r)
    (c * cos r - a * sin r)
    (d * cos r - b * sin r)
    e
    f