zipper -package:streams -package:traverse-with-class -package:zippers is:module
A zipper is a structure for walking a value and manipulating it in
constant time.
This module was inspired by the paper: Michael D. Adams. Scrap Your
Zippers: A Generic Zipper for Heterogeneous Types, Workshop on Generic
Programming 2010.
This module provides a two-dimensional text zipper data structure.
This structure represents a body of text and an editing cursor which
can be moved throughout the text, along with a set of editing
transformations.
Text zippers are generalized over the set of data types that might be
used to store lists of characters (e.g.,
String,
Text,
etc.). As a result, the most general way to create a text zipper is to
use
mkZipper and provide all of the functions required to
manipulate the underlying text data.
Implementations using
Text and
String are provided.
Creation date: Thu Jul 23 08:42:37 2020.
Spine-lazy radix tree location manipulation.
Allows lookup and successive insertion without retaining the entirety
of the key in memory.
Spine-strict radix tree location manipulation.
Allows lookup and successive insertion without retaining the entirety
of the key in memory.