-- | @push x z@ inserts x into the zipper, and advances
-- the cursor past it.
push :: a -> Zipper a -> Zipper a
push   a (Zip ls rs) = Zip (a:ls) rs
push :: a -> Zipper a -> Zipper a
push   a (Zip ls rs) = Zip (a:ls) rs
push   a (Zip ls rs) = Zip (a:ls) rs