úΗ       non-portable experimentalgenerics@haskell.org=It is in general not necessary to use the generic navigation 1 functions directly. The functions listed in the ` Interface' section  below are more user-friendly. AAbstract type of context frames. Not required for the high-level  navigation functions. BAbstract type of locations. A location contains the current focus A and its context. A location is parameterized over the family of 4 datatypes and over the type of the complete value.  :Start navigating a datastructure. Returns a location that 4 focuses the entire value and has an empty context. )Move down to the leftmost child. Returns  if the  current focus is a leaf. *Move down to the rightmost child. Returns  if the  current focus is a leaf. Move up to the parent. Returns  if the current  focus is the root. #Move to the right sibling. Returns  if the current ! focus is the rightmost sibling. "Move to the left sibling. Returns  if the current  focus is the leftmost sibling. ?Move through all positions in depth-first left-to-right order. ?Move through all positions in depth-first right-to-left order. ;Return the entire value, independent of the current focus. ;Operate on the current focus. This function can be used to % extract the current point of focus. 4Update the current focus without changing its type. Most general eliminator. Both  and  can be defined  in terms of .           ! zipper-0.3Generics.MultiRec.ZipperZippercmapAfillfirstlastnextprevCtxLocenterdowndown'uprightleftdfnextdfprevleaveonupdate foldZipperCtxsPushEmptybase Data.MaybeNothingdf impossiblecastIdcastTag