trifecta- Parser combinators with slicing and diagnostic support




grab :: Delta -> Rope -> (Delta -> ByteString -> r) -> r -> rSource

grab a lazy bytestring starting from some point. This bytestring does not cross path nodes if the index is to the start of a bytestring fragment, we update it to deal with any intervening path fragments

lastNewline :: Rope -> Bool -> DeltaSource

obtain the byte location of the last newline in a rope, or the end of the rope if at EOF