úÎgA     None $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.3Data.Lens.ZipperHistrunHistTop:>SnocZipperhistviewffocussetfmodfzipperclosemovemovePmoveUpbase Data.MaybeMaybe yall-0.2.1Data.Yall.Lens:~> $fHist:>ac $fHistTopab