úÎ3x->g      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f $This type may be best read infix. A c  m is a g m that maps  values of type c through unit to values of type m. A c- may also ) supply operations which tack-on another c to an existing g m on the left P or right. These specialized reductions may be more efficient in some scenarios $ and are used when appropriate by a  Generator . The names  and  work = by analogy to the synonymous operations in the list monoid. LThis class deliberately avoids functional-dependencies, so that () can be a c -Reducer  for all cJ, and so many common reducers can work over multiple types, for instance,  First and Last may reduce both a and h a . Since a  Generator has a fixed element Z type, the input to the reducer is generally known and extracting from the monoid usually Z is sufficient to fix the result type. Combinators are available for most scenarios where X this is not the case, and the few remaining cases can be handled by using an explicit  type annotation. Minimal definition:  or  Convert a value into a g Append a value to a g$ for use in left-to-right reduction Prepend a value onto a g( for use during right-to-left reduction Apply a  to a iK container, after mapping the contents into a suitable form for reduction. Apply a  to a i mapping each element through          ) !"#$%&'()*+,-./01jklm234n5op6q! !"#$%&'()*+,-./0123456!!"#$%&,-./01*+')(234 65!  !"#"#$%&'()*+,-./0123456789r:;<=789:;<=789:;<=78989:;<=  !%&'()*+,-./01234 !*+ 234%,&-/01.'() >? split an  Annotation about a !R into two annotations, one about the first n bytes, the other about the remainder @ truncate the  Annotation to s n A drop the first n bytes from the  Annotation BC construct an  Annotation from a ! out of whole cloth DThe !W has been updated to contains n more bytes on the right than the one used to build the  Annotation , update the  Annotation EThe !B contains n more bytes on the left than the one used to build the  Annotation , update the  Annotation FGbuild an empty  Annotation Happend two annotations >?@ABCDEFGH FGHBCDE>?@A >?@A?@ABCDECDEFGHGHIA Rope  Annotation product. JKLIJKLIJKLIJJKLMMMM NtOuPQvRwSxTUyVWXYZ[\]^_`abcdef'79:;<=>BFIJKLMNOPQRSTUVWXYZ[\]^_`abcdef'79WFB>X:;<=YZ[_`\]^abcdefRSPQONTVUIJKLMNOPQRSTUVWXYZ[\]^_`abcdefz    !"#$%&'()**+,-./0123456789:;<=>??@3!" ABCDEFGHIJKLLMNO P Q R S T U V W X Y Z - [  : < ;   & ' ( ) # $\]^\_`\abcdefghijk\l2 m n o p q rsrope-0.4Data.Rope.Util.ComonadData.Rope.Util.ReducerData.Rope.BodyData.Rope.InternalData.Rope.Annotated.InternalData.Rope.AnnotationData.Rope.Annotation.ProductData.Rope.Annotation.UnitData.Rope.Annotated Data.RopeComonadextract duplicateextendReducerunitsnoccons foldMapReduce foldReduce returnUnitpureUnitBodyChunkunchunkOffset getOffset measureBodycons'snoc' Unpackableunpackheadlastunconsunsnoc Breakablebreakspan takeWhile dropWhileRopebodypackempty fromChunkstoChunkstoLazyByteStringtoStringlengthnullfromByteStringfromLazyByteString fromString fromWordsfromChar fromWord8splitAttakedropfindIndexOrEndw2cArope BreakableAsplitAtAtakeAdropAReducerAunitAsnocAconsAMonoidAemptyAappendA:*:fstFsndFUnitInitTailSnocConsDropTakeReturn:<>NilAnnrunAnnappendbase Data.MonoidMonoid Data.MaybeMaybe Data.FoldableFoldablecons8 emptyConstr consConstr ropeDataTypebreak8uncons8unsnoc8errorEmptyListextractAGHC.ListInitedTailedTokenDroppedTaken:>