úΞkźä—      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•– non-portable experimentalgenerics@haskell.org Safe-Infered=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. ;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. ! —˜™š›œ žŸ ĄąŁ€„Ч —˜™š›œ      žŸ ĄąŁ€„Ч Safe-Infered !A navigation step in a fixpoint. A location within a fixpoint. )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.     Safe-Infered;Given a witness, convert the value of that type to String.  Safe-Infered$A value of some type in data family s wrapped in an f, together with its witness. $A value of some type in data family s, together with its witness. Helper constructor. ! Unify an  with an a. "Helper constructor. # Unify an  with an f a. $ Unwrap an  and pass it to a function. %#Removes the value from its functor f.  !"#$%©  !"#$%  !"#%$  !"#$%© Safe-Infered&7Captures hints for the exploration of annotated trees. (#Whether the current focus matches. )!Whether to explore the children. *)Whether to explore further to the right. &'()*&'()*&'()*&'()* Safe-Infered ,A fixpoint of a data family s annotated with an xM at every recursive position, with existentially quantified top-level index. -)A functor with fully annotated children. .A fully annotated tree. /3Supply a tree with an annotation at the top level. 0?Removes all annotations from a recursively annotated fixpoint. 15Collects the direct children of a functor in a list. 2PFlatten an annotated tree to a list of subtrees coupled with their annotations. 3;Yield all subtrees whose annotation matches the predicate. 4<Flatten an annotated tree and print all subtrees to stdout. 5;Recursively yield all annotations in the tree in preorder. 6-Extract the annotation of the current focus. 7HExplore an annotated tree. Starting with the root of the tree, at each B position the annotation at that position is matched against the  &) predicates and all the selections where ( was  positive are collected. The * and ) allow pruning : of the tree, preventing entire parts from being visited. 8GFind the deepest node in an annotated tree that matches the predicate. ; Starting with the root, the predicate tells whether a node' s annotation 1 matches. If so, the search continues at the node's children and the node's J siblings to the right are excluded from further exploration. If no child ' matches, the node itself is returned. +,-./012345678+,-./012345678.-/,012345+678+,-./012345678None9Yield over the identity monad. :@The Yield transformer. Allows yielding generic values in family fam with annotations of type x. ;9Monads that allow yielding recursively annotated values. <3Yielded values have types in this datatype family. =The type of the annotation. >$Yields a value with its annotation. 9:;<=>?@ABȘ« 9:;<=>?@AB ;<=>:9BA@? 9:;<=>?@ABȘ« Safe-InferedCExcept is like Either. but is meant to be used only in applicative D computations. When two exceptions are sequenced, their sum (using  Ź) is computed. CDE­źCDECEDCED­ź  Safe-InferedF"Algebras for error catamorphisms. GCoalgebras for anamorphisms. HAlgebras for catamorphisms. IFixpoint of functors. L4Reduces a tree to a value according to the algebra. M;Constructs a tree from a value according to the coalgebra. N Apply a transformation to a tree's direct children. ORReduces a tree to a value according to the algebra, propagating potential errors. FGHIJKLMNO FGHIJKLMNO IJKNHLGMFOFGHIJKLMNO  Safe-Infered PCaptures navigation steps in a S. Its Ż' instance specifies the identity step (°) and step composition (Ź). SkA quasi-zipper, meant for O(1), fixed-memory stepping through a tree structure, but not meant for updates. U"The current focus of this zipper. VMove up to the parent. WMove to the left sibling. XMove to the right sibling. Y#Move down into the leftmost child. ZMove into the root of the fixed point. The returned zipper builds a data structure with optimal sharing and fixed memory usage. For example, zLeft >=> zRight5 (if successful) returns to the same node in memory. [LWalk back up to the root of the fixed point and leave the zipper structure. \!Move down into a specific child. ]GTraverses the tree in preorder, yielding all possible tree selections. PQRSTUVWXYZ[\]±PQRSTUVWXYZ[\]STUVWXYZ[\]PQRPQRSTUVWXYZ[\]±  Safe-Infered ^)A functor with fully annotated children. _A fully annotated tree. `Lifted annotation of functors. b3Supply a tree with an annotation at the top level. c/Yields the annotation at the root of the tree. d!Recursively discard annotations. eIReduces a tree to a value according to the algebra, collecting potential K errors. The errors are combined with the annotations in the tree at the + positions at which the errors occurred. fHExplore an annotated tree. Starting with the root of the tree, at each B position the annotation at that position is matched against the  &) predicates and all the selections where ( was  positive are collected. The * and ) allow pruning : of the tree, preventing entire parts from being visited. gGFind the deepest node in an annotated tree that matches the predicate. ; Starting with the root, the predicate tells whether a node' s annotation 1 matches. If so, the search continues at the node's children and the node's J siblings to the right are excluded from further exploration. If no child ' matches, the node itself is returned. ^_`abcdefgČłŽ ^_`abcdefg `a_c^bdefg ^_`abcdefgČłŽ  Safe-InferedhDConverts convenient algebras to algebras that are able to work with  pattern functors. jHType family that converts pattern functors to convenient algebra types. k(An error algebra over pattern functors. lIReduces a tree to a value according to the algebra, collecting potential K errors. The errors are combined with the annotations in the tree at the + positions at which the errors occurred. m?For constructing algebras that are made of nested pairs rather D than n-ary tuples, it is helpful to use this pairing combinator. hijklm”¶·žčhijklmjkhilm hijklm”¶·žč  Safe-Infered nEA structural selection expressed as a textual selection. The margins A indicate the whitespace directly around the selected structure. r?A simple textual selection: starting offset and ending offset, $ respectively. Offsets are 0-based. sA Bounds'L inner range does not include the whitespace around the selected structure. tA Bounds'D outer range includes the whitespace around the selected structure. u7Tells whether the offset falls within the given range. v?Tells whether the first range is enclosed by the second range. wHA range is within certain bounds if its left offset is within the bounds' 6 left margin and its right offset is within the bounds' right margin. xrangesInBounds b yields all those ranges r for which  rangeInBounds r b. y4A measure for the dissimilarity between two ranges. 3distRange (l1, r1) (l2, r2) = |l1 - l2| + |r1 - r2| nopqrstuvwxy nopqrstuvwxy rnopqstuvwxy nopqrstuvwxy Safe-InferedzŽA parser that works on symbols coupled with token information. The state maintains the current position in the stream. This position is the range of whitespace between two tokens. {=Symbols form input for parsers. Minimal complete definition: |. |/Unparses a symbol, converting it back to text. }7Yields the size of a symbol. Default implementation is length . unparse. ~‚Given a predicate that tells what tokens to discard, keeps only the meaningful tokens and couples them with position information. )Yield the current position in the input. €)Recognise a symbol matching a predicate. Recognise a specific symbol. z{|}~€șz{|}~€{|}~z€z{|}~€ș Safe-Infered‚>Find the deepest node whose bounds match the given range. See w. ƒ?Find the deepest node whose bounds contain the given position. „œFind all selections in the tree and return their bounds. The tree is traversed in preorder. Consequently, the bounds are returned in lexicographical order. …repairBy cost tree range/ finds the the closest valid text selection to range, where  ''closest''/ is determined by the specified cost function. † Defined as … y. ‡'Move around in a tree according to the P+, expressed in tree selections. Although a r is required as input, a nt is returned, providing information about all the valid text selections that would select the particular tree node. ‚ƒ„…†‡‚ƒ„…†‡‚ƒ„…†‡‚ƒ„…†‡ Safe-InferedˆDGiven the left margin of a structure, asks the parser for the right J margin and wraps the position information around the root of the tree. ‰GWrap an unnotated tree with position information from the parse state. Š"Parse right-recursive structures. ‹!Parse left-recursive structures. ˆ‰Š‹ˆ‰Š‹ˆ‰Š‹ˆ‰Š‹ Safe-InferedŒ4A parser that yields its components, annotated with n. GWrap an unnotated tree with position information from the parse state. ŽDGiven the left margin of a structure, asks the parser for the right J margin and wraps the position information around the root of the tree. "Parse right-recursive structures. !Parse left-recursive structures. ŒŽŒŽŒŽŒŽ Safe-Infered‘>Find the deepest node whose bounds match the given range. See w. ” Defined as “ y. –'Move around in a tree according to the +, expressed in tree selections. Although a r is required as input, a nt is returned, providing information about all the valid text selections that would select the particular tree node. ‘’“”•–‘’“”•–‘’“”•–‘’“”•–» !"#$%&'()*+,-..//01234566789:;<=>?@ABCDEFGHIJKLMNOPQRST U V W X Y Z [ \ ] ^ " " _   ` a b c d  + e f < = g g > h ? i F G j k l m i n o o p q r s t u v w x yz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‰ˆŠ‹‚ƒ…†‡Ž‘’“”•–—˜™š›œžŸ ĄąŁ€Ÿ„Š§šŸ„©Ÿ„Ș « Ź ­ ź Ż ° ± Č łŽ”Annotations-0.2Annotations.MultiRec.ZipperAnnotations.MultiRec.ZipperFixAnnotations.MultiRec.ShowFamAnnotations.MultiRec.AnyAnnotations.ExploreHintsAnnotations.MultiRec.AnnotatedAnnotations.MultiRec.YieldAnnotations.ExceptAnnotations.F.FixpointsAnnotations.F.ZipperAnnotations.F.AnnotatedAnnotations.MultiRec.ErrorAlgAnnotations.BoundsAnnotations.BoundsParserAnnotations.F.PositionalAnnotations.F.ParserCombinators&Annotations.MultiRec.ParserCombinatorsAnnotations.MultiRec.PositionalZippercmapAfillfirstlastnextprevCtxCtxsPushEmptyLocenteronupdateNav FixZipperdowndown'uprightleftdfnextdfprevleaveShowFamshowFamAnyFAnymkAnymatchAnymkAnyF matchAnyF$? unwrapAnyF ExploreHints matchHere exploreDown exploreRight AnnZipper AnyAnnFixAnnFix1AnnFixmkAnnFix unannotatechildrenflatten filterAnnFix debugFlattenallAnnotationsfocusAnnexplorefindLeftmostDeepestYieldYieldT MonadYieldYieldFamAnnTypeyield runYieldTG runYieldT runYieldGrunYieldExceptOKFailed ErrorAlgebra CoalgebraAlgebraFixInoutcataanacomposcascadenavzFocuszUpzLeftzRightzDownchildallFociAnnrootAnn errorCata MkErrorAlg mkErrorAlgErrorAlg ErrorAlg_PF&Bounds leftMargin rightMarginRange innerRange outerRange posInRange rangeInRange rangeInBoundsrangesInBounds distRangePSymbolunparse symbolSizecollapsegetPossatisfypToken selectByRange selectByPos validBoundsrepairByrepair moveSelection mkBoundedunitchainrchainlYPsortOnCCCTagCIdC2C1CRCL $fZipperphiC$fZipperphi:>:$fZipperphi:*:$fZipperphi:+: $fZipperphiU $fZipperphiK $fZipperphiI$fHFunctorphiLoc$fHFunctorphiCtxs$fHFunctorphiCtxbase Data.MaybeNothing $fShowAny$fMonadYieldYieldT$fMonadTransYieldT Data.Monoidmappend$fApplicativeExcept$fFunctorExceptMonoidmempty $fMonoidNav$fTraversableAnn $fFoldableAnn $fFunctorAnn$fMkErrorAlg:+:$fMkErrorAlg:>:$fMkErrorAlg:*:$fMkErrorAlg:*:0 $fMkErrorAlgU $fSymbol[]