ú΋³     Safe-Infered $Our zipper type, parameterized by a  and " history stack", 7 supporting completely type-checked zipper operations. #A lens on the focus of the zipper. Set the zipper focus  setf = set focus Modify the zipper focus  modf = modify focus "enter" a data type. Move the  with   and  . Exit  the zipper with .  zipper = Zipper Top *exit the zipper, rebuilding the structure a: $ close (Zipper st b) = runHist st b Hnavigate to a child element indicated by the passed lens, returning the  new Zipper in the monad m. This will be   when the standard ( ) $ Lens is used. For pure lenses, use  . >navigate to a child element indicated by the passed pure lens  moveP l = runIdentity . move l /navigate up a level in a zipper not already at  7 moveUp (Zipper (Snoc st cont) c) = Zipper st $ cont c            zippo-0.1Data.Lens.ZipperHistTop:>ZipperfocussetfmodfzipperclosemovemovePmoveUpbase Data.MaybeMaybe yall-0.2.0.1Data.Yall.Lens:~> $fHist:>ac $fHistTopab