c `elem` [L, R, D, T, FL, FR, FD, FT, BL, BR, BD, BT, LD, LT,
RD, RT, FLD, FLT, FRD, FRT, BLD, BLT, BRD, BRT]
==> cwx c /= c
+
+-- | If you rotate a cardinal direction four times in the clockwise
+-- (with respect to x) direction, you should wind up with the same
+-- direction.
+prop_four_cwx_is_identity :: Cardinal -> Bool
+prop_four_cwx_is_identity c =
+ (cwx . cwx . cwx . cwx) c == c
+
+-- | If you rotate a cardinal direction four times in the
+-- counter-clockwise (with respect to x) direction, you should wind up
+-- with the same direction.
+prop_four_ccwx_is_identity :: Cardinal -> Bool
+prop_four_ccwx_is_identity c =
+ (ccwx . ccwx . ccwx . ccwx) c == c
+
+-- | If you rotate a cardinal direction four times in the clockwise
+-- (with respect to y) direction, you should wind up with the same
+-- direction.
+prop_four_cwy_is_identity :: Cardinal -> Bool
+prop_four_cwy_is_identity c =
+ (cwy . cwy . cwy . cwy) c == c
+
+-- | If you rotate a cardinal direction four times in the counter-clockwise
+-- (with respect to y) direction, you should wind up with the same
+-- direction.
+prop_four_ccwy_is_identity :: Cardinal -> Bool
+prop_four_ccwy_is_identity c =
+ (ccwy . ccwy . ccwy . ccwy) c == c
+
+-- | If you rotate a cardinal direction four times in the clockwise
+-- (with respect to z) direction, you should wind up with the same
+-- direction.
+prop_four_cwz_is_identity :: Cardinal -> Bool
+prop_four_cwz_is_identity c =
+ (cwz . cwz . cwz . cwz) c == c
+
+-- | If you rotate a cardinal direction four times in the
+-- counter-clockwise (with respect to z) direction, you should wind up
+-- with the same direction.
+prop_four_ccwz_is_identity :: Cardinal -> Bool
+prop_four_ccwz_is_identity c =
+ (ccwz . ccwz . ccwz . ccwz) c == c