úÎA'>-&      !"#$%None(&A movement operation such as , , , or . ,A generic zipper with a root object of type root. 9Move up a zipper to the root and return the root object. >Create a zipper. The focus starts at the root of the object. Move left. Returns '" iff already at leftmost sibling. Move right. Returns '# iff already at rightmost sibling. 9Move down. Moves to rightmost immediate child. Returns '+ iff at a leaf and thus no children exist. :Move down. Move to the leftmost immediate child. Returns '+ iff at a leaf and thus no children exist. Move up. Returns '0 iff already at root and thus no parent exists. #Apply a generic query to the hole. ,Apply a generic transformation to the hole. 3Apply a generic monadic transformation to the hole $Get the value in the hole. Returns ' iff a+ is not the type of the value in the hole. -Set the value in the hole. Does nothing iff a+ is not the type of the value in the hole. $Set the value in the hole. Returns ' iff a+ is not the type of the value in the hole. >Apply a generic query using the specified movement operation. EApply a generic transformer using the specified movement operations. MApply a generic monadic transformer using the specified movement operations. 9Apply a generic query to the left sibling if one exists. :Apply a generic query to the right sibling if one exists. 3Apply a generic query to the parent if it exists. <Apply a generic query to the rightmost child if one exists. hApply a generic transformer to the left sibling if one exists. Otherwise, leaves the zipper unchanged. iApply a generic transformer to the right sibling if one exists. Otherwise, leaves the zipper unchanged. kApply a generic transformer to the rightmost child if one exists. Otherwise, leaves the zipper unchanged. aApply a generic transformer to the parent if it exists. Otherwise, leaves the zipper unchanged. (GApply a generic monadic transformer to the left sibling if one exists. HApply a generic monadic transformer to the right sibling if one exists. JApply a generic monadic transformer to the rightmost child if one exists. @Apply a generic monadic transformer to the parent if it exists. Move to the leftmost sibling. Move to the rightmost sibling. 1Apply a generic query to the immediate children. :Apply a generic transformation to the immediate children. BApply a generic monadic transformation to the immediate children. !QApply a generic monadic transformation to at least one child that does not fail. "AApply a generic transformation everywhere in a bottom-up manner. #@Apply a generic transformation everywhere in a top-down manner. $YApply a generic monadic transformation once at the topmost leftmost successful location. %Repeatedly apply a monadic ) generic transformation at the > top-most, left-most position that the transformation returns  *%. Behaves like iteratively applying $ but is ; more efficient because it re-evaluates the transformation 9 at only the parents of the last successful application. 7&+,-./012345678 Move operation Default if can't move Query if can move Zipper Move to  Move back Default if can't move Transformer if can move Zipper Move to  Move back Default if can't move  Monadic transformer if can move Zipper +Value to return of no left sibling exists. ,Value to return if no right sibling exists. &Value to return if no children exist. *Value to return if parent does not exist. (+Value to return if no left sibling exists. ,Value to return if no right sibling exists. &Value to return if no children exist. *Value to return if parent does not exist.  !"#$%9&  !"#$%&  !"#$%0&+-,.0/13245678 ( !"#$%9:      !"#$%&'()*+,)*-)*./0123456789:;<= syz-0.2.0.0Data.Generics.ZipperZipper fromZippertoZipperleftrightdowndown'upquerytranstransMgetHolesetHolesetHole'moveQmoveTmoveMleftQrightQdownQupQleftTrightTdownTupTrightMdownMupMleftmost rightmostzmapQzmapTzmapMzmapMp zeverywhere zeverywhere' zsomewherezreduceMovebase Data.MaybeNothingleftMMaybeJustRight RightCons RightNullLeftLeftConsLeftUnitContextCtxtConsCtxtNullcombinetoLeftfromLeft fromRightreduceAncestors