úÎ3ù-¿l      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k $This type may be best read infix. A c  m is a l 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 l 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 m 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 l Append a value to a l$ for use in left-to-right reduction Prepend a value onto a l( for use during right-to-left reduction Apply a  to a nK container, after mapping the contents into a suitable form for reduction. Apply a  to a n mapping each element through          ) !"#$%&'()*+,-./01opqr234s5tu6v! !"#$%&'()*+,-./0123456!!"#$%&,-./01*+')(234 65!  !"#"#$%&'()*+,-./0123456789w:;<=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 x 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 NOPQRSyTUVWXYZ[\]^_`abcdefghijk,79:;<=>BFIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk-79\FB>]:;<=^_`deabcfghijkTVRSPNX[YQOUW[ZIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkz    !"#$%&'()**+,-./0123456789:;<=>??@3!" ABCDEFGHIJKLLMNO P Q R S T U V W X Y Z [ \ ] ^ _ - `  : < ;   & ' ( ) # $abcadeafghijklmnopaq2 rsrope-0.5Data.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:*:fstFsndFUnitInitInitedTailTailedSnocConsDropDroppedTakeTakenReturn:<>:>NilAnnrunAnnappendbase Data.MonoidMonoid Data.MaybeMaybe Data.FoldableFoldablecons8 emptyConstr consConstr ropeDataTypebreak8uncons8unsnoc8errorEmptyListextractAGHC.ListToken