drawScissor :: Context -> CFloat -> CFloat -> CFloat -> IO ()
drawScissor c x y t =
  do save c

     translate c x y
     rotate c (degToRad 5)
     beginPath c
     rect c (-20) (-20) 60 40
     fillColor c (rgba 255 0 0 255)
     fill c
     scissor c (-20) (-20) 60 40

     translate c 40 0
     rotate c t

     save c
     resetScissor c
     beginPath c
     rect c (-20) (-10) 60 30
     fillColor c (rgba 255 128 0 64)
     fill c
     restore c

     intersectScissor c (-20) (-10) 60 30
     beginPath c
     rect c (-20) (-10) 60 30
     fillColor c (rgba 255 128 0 255)
     fill c

     restore c
drawScissor :: Context -> CFloat -> CFloat -> CFloat -> IO ()
drawScissor c x y t =
  do save c

     translate c x y
     rotate c (degToRad 5)
     beginPath c
     rect c (-20) (-20) 60 40
     fillColor c (rgba 255 0 0 255)
     fill c
     scissor c (-20) (-20) 60 40

     translate c 40 0
     rotate c t

     save c
     resetScissor c
     beginPath c
     rect c (-20) (-10) 60 30
     fillColor c (rgba 255 128 0 64)
     fill c
     restore c

     intersectScissor c (-20) (-10) 60 30
     beginPath c
     rect c (-20) (-10) 60 30
     fillColor c (rgba 255 128 0 255)
     fill c

     restore c
drawScissor c x y t =
  do save c

     translate c x y
     rotate c (degToRad 5)
     beginPath c
     rect c (-20) (-20) 60 40
     fillColor c (rgba 255 0 0 255)
     fill c
     scissor c (-20) (-20) 60 40

     translate c 40 0
     rotate c t

     save c
     resetScissor c
     beginPath c
     rect c (-20) (-10) 60 30
     fillColor c (rgba 255 128 0 64)
     fill c
     restore c

     intersectScissor c (-20) (-10) 60 30
     beginPath c
     rect c (-20) (-10) 60 30
     fillColor c (rgba 255 128 0 255)
     fill c

     restore c