duplicatez :: Zipper a -> Zipper (Zipper a)
duplicatez z@(Zip _ _) = Zip ls' rs' where
    rs' = foldrz (:) [] z
    ls' = map reversez $
          foldrz (\z' xs -> right z' : xs) [] $
          reversez z
duplicatez :: Zipper a -> Zipper (Zipper a)
duplicatez z@(Zip _ _) = Zip ls' rs' where
    rs' = foldrz (:) [] z
    ls' = map reversez $
          foldrz (\z' xs -> right z' : xs) [] $
          reversez z
duplicatez z@(Zip _ _) = Zip ls' rs' where
    rs' = foldrz (:) [] z
    ls' = map reversez $
          foldrz (\z' xs -> right z' : xs) [] $
          reversez z