:: Tile).
  flipH (flipH t) = t

∀ (t :: Tile).
  flipH (cw (cw (flipH t)) = cw (cw t)
-}

{-
Exercise

 Prove flipH . cw^{2*n} . flipH = cw^{2*n}, where the ^ operation means repeated composition. For example, cw^4 = cw . cw . cw . cw.

Horizontally flipping a clockwise rotation is equivalent to rotating counterclockwise a horizontal flip.
This law that cw to ccw under flipH transformation:

∀ (t :: Tile).
   flipH (cw t) = ccw (flipH t)
-}

-- flipV(ertically)
flipV :: Tile -> Tile
flipV  = undefined

{-
can deriv
flipV :: Tile -> Tile
flipV  = undefined
flipV  = undefined