Legend:
Library
Module
Module type
Parameter
Class
Class type
A polymorphic data structure parametrized by 'a to represent lists of elements of 'a while supporting constant time append operations.
One example of use is to manipulate a decorated text represented as a sequence of words. Eventually we are interested in producing the concatenation of all the word in some form, but we do not want to pay the allocation costs of buildings intermediate string concatenations.
This module is a generalization of the Rope module. Essentially: type Rope.t = string Appendable_list.t
The following operations all run in constant time: empty, of_list, singleton, append, concat, add_front, add_back
to_sequence builds a sequence where access to the next element has an amortized constant time.
All traversal operations such as iter and fold are tail recursive.
The monad exported by the module is semantically the same as the one in List. That is: bind t f applies f to each element of t and append the resulting list respecting the order in which the elements appear in t.
type+'a t
includeSexplib0.Sexpable.S1 withtype+'a t := 'at
val t_of_sexp : (Sexplib0__.Sexp.t ->'a)->Sexplib0__.Sexp.t ->'at
val sexp_of_t : ('a->Sexplib0__.Sexp.t)->'at->Sexplib0__.Sexp.t