diff --git a/2.0/containers.data/CCBV/.jbuilder-keep b/2.0/containers.data/CCBV/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCBV/index.html b/2.0/containers.data/CCBV/index.html
new file mode 100644
index 00000000..d4f5f68b
--- /dev/null
+++ b/2.0/containers.data/CCBV/index.html
@@ -0,0 +1,18 @@
+
+
CCBV (containers.data.CCBV)
ModuleCCBV
Imperative Bitvectors
BREAKING CHANGES since 1.2:
+size is now stored along with the bitvector. Some functions have
+a new signature.
The size of the bitvector used to be rounded up to the multiple of 30 or 62.
+In other words some functions such as iter would iterate on more
+bits than what was originally asked for. This is not the case anymore.
select arr bv selects the elements of arr whose index
+corresponds to a true bit in bv. If bv is too short, elements of arr
+with too high an index cannot be selected and are therefore not
+selected.
\ No newline at end of file
diff --git a/2.0/containers.data/CCBitField/.jbuilder-keep b/2.0/containers.data/CCBitField/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCBitField/Make/argument-1-X/index.html b/2.0/containers.data/CCBitField/Make/argument-1-X/index.html
new file mode 100644
index 00000000..558bcf7e
--- /dev/null
+++ b/2.0/containers.data/CCBitField/Make/argument-1-X/index.html
@@ -0,0 +1,2 @@
+
+1-X (containers.data.CCBitField.Make.1-X)
ParameterCCBitField.Make.1-X
\ No newline at end of file
diff --git a/2.0/containers.data/CCBitField/Make/index.html b/2.0/containers.data/CCBitField/Make/index.html
new file mode 100644
index 00000000..265d8a11
--- /dev/null
+++ b/2.0/containers.data/CCBitField/Make/index.html
@@ -0,0 +1,4 @@
+
+Make (containers.data.CCBitField.Make)
Prevent new fields from being added. From now on, creating
+a field will raise Frozen.
val total_width : unit ‑> int
Current width of the bitfield.
\ No newline at end of file
diff --git a/2.0/containers.data/CCBitField/index.html b/2.0/containers.data/CCBitField/index.html
new file mode 100644
index 00000000..696411e0
--- /dev/null
+++ b/2.0/containers.data/CCBitField/index.html
@@ -0,0 +1,17 @@
+
+CCBitField (containers.data.CCBitField)
ModuleCCBitField
Bit Field
This module defines efficient bitfields
+up to 30 or 62 bits (depending on the architecture) in
+a relatively type-safe way.
module B = CCBitField.Make(struct end);;
+
+ #install_printer B.pp;;
+
+ let x = B.mk_field ()
+ let y = B.mk_field ()
+ let z = B.mk_field ()
+
+ let f = B.empty |> B.set x true |> B.set y true;;
+
+ assert (not (B.get z f)) ;;
+
+ assert (f |> B.set z true |> B.get z);;
+
exception TooManyFields
Raised when too many fields are packed into one bitfield.
exception Frozen
Raised when a frozen bitfield is modified.
val max_width : int
System-dependent maximum width for a bitfield, typically 30 or 62.
\ No newline at end of file
diff --git a/2.0/containers.data/CCBitField/module-type-S/index.html b/2.0/containers.data/CCBitField/module-type-S/index.html
new file mode 100644
index 00000000..b9fe76af
--- /dev/null
+++ b/2.0/containers.data/CCBitField/module-type-S/index.html
@@ -0,0 +1,4 @@
+
+S (containers.data.CCBitField.S)
Module typeCCBitField.S
Bitfield Signature
type t = private int
Generative type of bitfields. Each instantiation of the functor
+should create a new, incompatible type
Prevent new fields from being added. From now on, creating
+a field will raise Frozen.
val total_width : unit ‑> int
Current width of the bitfield.
\ No newline at end of file
diff --git a/2.0/containers.data/CCCache/.jbuilder-keep b/2.0/containers.data/CCCache/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCCache/index.html b/2.0/containers.data/CCCache/index.html
new file mode 100644
index 00000000..109f0921
--- /dev/null
+++ b/2.0/containers.data/CCCache/index.html
@@ -0,0 +1,38 @@
+
+CCCache (containers.data.CCCache)
Typical use case: one wants to memoize a function f : 'a -> 'b. Code sample:
+
let f x =
+ print_endline "call f";
+ x + 1;;
+
+ let f' = with_cache (lru 256) f;;
+ f' 0;; (* prints *)
+ f' 1;; (* prints *)
+ f' 0;; (* doesn't print, returns cached value *)
with_cache c f behaves like f, but caches calls to f in the
+cache c. It always returns the same value as
+f x, if f x returns, or raise the same exception.
+However, f may not be called if x is in the cache.
Parametercb: called after the value is generated or retrieved.
with_cache_rec c f is a function that first, applies f to
+some f' = fix f, such that recursive calls to f' are cached in c.
+It is similar to with_cache but with a function that takes as
+first argument its own recursive version.
+Example (memoized Fibonacci function):
+
let fib = with_cache_rec (lru 256)
+ (fun fib' n -> match n with
+ | 1 | 2 -> 1
+ | _ -> fib' (n-1) + fib' (n-2)
+ );;
+
+ fib 70;;
Parametercb: called after the value is generated or retrieved.
Linear cache with the given size. It stores key/value pairs in
+an array and does linear search at every call, so it should only be used
+with small size.
Parametereq: optional equality predicate for keys.
val replacing : eq:'aequal‑> ?hash:'ahash‑> int ‑> ('a, 'b) t
Replacing cache of the given size. Equality and hash functions can be
+parametrized. It's a hash table that handles collisions by replacing
+the old value with the new (so a cache entry is evicted when another
+entry with the same hash (modulo size) is added).
+Never grows wider than the given size.
val lru : eq:'aequal‑> ?hash:'ahash‑> int ‑> ('a, 'b) t
LRU cache of the given size ("Least Recently Used": keys that have not been
+used recently are deleted first). Never grows wider than the given size.
val unbounded : eq:'aequal‑> ?hash:'ahash‑> int ‑> ('a, 'b) t
Unbounded cache, backed by a Hash table. Will grow forever
+unless clear is called manually.
\ No newline at end of file
diff --git a/2.0/containers.data/CCDeque/.jbuilder-keep b/2.0/containers.data/CCDeque/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCDeque/index.html b/2.0/containers.data/CCDeque/index.html
new file mode 100644
index 00000000..ce2c3ad4
--- /dev/null
+++ b/2.0/containers.data/CCDeque/index.html
@@ -0,0 +1,12 @@
+
+CCDeque (containers.data.CCDeque)
ModuleCCDeque
Imperative deque
This structure provides fast access to its front and back elements,
+with O(1) operations
\ No newline at end of file
diff --git a/2.0/containers.data/CCFQueue/.jbuilder-keep b/2.0/containers.data/CCFQueue/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCFQueue/index.html b/2.0/containers.data/CCFQueue/index.html
new file mode 100644
index 00000000..98f230cc
--- /dev/null
+++ b/2.0/containers.data/CCFQueue/index.html
@@ -0,0 +1,8 @@
+
+CCFQueue (containers.data.CCFQueue)
ModuleCCFQueue
Functional queues
type 'a sequence = ('a‑> unit) ‑> unit
type 'a klist = unit ‑> [ `Nil | `Cons of 'a * 'aklist ]
take_back_l n q removes and returns the last n elements of q. The
+elements are in the order of the queue, that is, the head of the returned
+list is the first element to appear via take_front.
+take_back_l 2 (of_list [1;2;3;4]) = of_list [1;2], [3;4].
RaisesInvalid_argument: if n<0.
val take_back_while : ('a‑> bool) ‑>'at‑>'at * 'a list
\ No newline at end of file
diff --git a/2.0/containers.data/CCGraph/.jbuilder-keep b/2.0/containers.data/CCGraph/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCGraph/Dot/index.html b/2.0/containers.data/CCGraph/Dot/index.html
new file mode 100644
index 00000000..1f92574f
--- /dev/null
+++ b/2.0/containers.data/CCGraph/Dot/index.html
@@ -0,0 +1,2 @@
+
+Dot (containers.data.CCGraph.Dot)
val with_out : string ‑> (Format.formatter ‑>'a) ‑>'a
Shortcut to open a file and write to it.
\ No newline at end of file
diff --git a/2.0/containers.data/CCGraph/Lazy_tree/index.html b/2.0/containers.data/CCGraph/Lazy_tree/index.html
new file mode 100644
index 00000000..d81d6e6d
--- /dev/null
+++ b/2.0/containers.data/CCGraph/Lazy_tree/index.html
@@ -0,0 +1,2 @@
+
+Lazy_tree (containers.data.CCGraph.Lazy_tree)
val fold_v : ('acc‑>'v‑>'acc) ‑>'acc‑> ('v, _) t‑>'acc
\ No newline at end of file
diff --git a/2.0/containers.data/CCGraph/Map/index.html b/2.0/containers.data/CCGraph/Map/index.html
new file mode 100644
index 00000000..5c6ebc6c
--- /dev/null
+++ b/2.0/containers.data/CCGraph/Map/index.html
@@ -0,0 +1,4 @@
+
+Map (containers.data.CCGraph.Map)
\ No newline at end of file
diff --git a/2.0/containers.data/CCGraph/Seq/index.html b/2.0/containers.data/CCGraph/Seq/index.html
new file mode 100644
index 00000000..7ce3f580
--- /dev/null
+++ b/2.0/containers.data/CCGraph/Seq/index.html
@@ -0,0 +1,2 @@
+
+Seq (containers.data.CCGraph.Seq)
\ No newline at end of file
diff --git a/2.0/containers.data/CCGraph/Traverse/Event/index.html b/2.0/containers.data/CCGraph/Traverse/Event/index.html
new file mode 100644
index 00000000..9e4d561e
--- /dev/null
+++ b/2.0/containers.data/CCGraph/Traverse/Event/index.html
@@ -0,0 +1,2 @@
+
+Event (containers.data.CCGraph.Traverse.Event)
\ No newline at end of file
diff --git a/2.0/containers.data/CCGraph/Traverse/index.html b/2.0/containers.data/CCGraph/Traverse/index.html
new file mode 100644
index 00000000..4a58ac70
--- /dev/null
+++ b/2.0/containers.data/CCGraph/Traverse/index.html
@@ -0,0 +1,7 @@
+
+Traverse (containers.data.CCGraph.Traverse)
Traversal of the given graph, starting from a sequence
+of vertices, using the given bag to choose the next vertex to
+explore. Each vertex is visited at most once.
val dijkstra : tbl:'vset‑> ?dist:('e‑> int) ‑> graph:('v, 'e) t‑>'vsequence‑> ('v * int * ('v, 'e) path) sequence_once
Dijkstra algorithm, traverses a graph in increasing distance order.
+Yields each vertex paired with its distance to the set of initial vertices
+(the smallest distance needed to reach the node from the initial vertices)
Parameterdist: distance from origin of the edge to destination,
+must be strictly positive. Default is 1 for every edge.
\ No newline at end of file
diff --git a/2.0/containers.data/CCGraph/index.html b/2.0/containers.data/CCGraph/index.html
new file mode 100644
index 00000000..58554f70
--- /dev/null
+++ b/2.0/containers.data/CCGraph/index.html
@@ -0,0 +1,36 @@
+
+CCGraph (containers.data.CCGraph)
ModuleCCGraph
Simple Graph Interface
A collections of algorithms on (mostly read-only) graph structures.
+The user provides her own graph structure as a ('v, 'e) CCGraph.t,
+where 'v is the type of vertices and 'e the type of edges
+(for instance, 'e = ('v * 'v) is perfectly fine in many cases).
Such a ('v, 'e) CCGraph.t structure is a record containing
+three functions: two relate edges to their origin and destination,
+and one maps vertices to their outgoing edges.
+This abstract notion of graph makes it possible to run the algorithms
+on any user-specific type that happens to have a graph structure.
Many graph algorithms here take a sequence of vertices as input.
+If the user only has a single vertex (e.g., for a topological sort
+from a given vertex), she can use Seq.return x to build a sequence
+of one element.
is_dag ~graph vs returns true if the subset of graph reachable
+from vs is acyclic.
Since: 0.18
Topological Sort
exception Has_cycle
val topo_sort : eq:('v‑>'v‑> bool) ‑> ?rev:bool ‑> tbl:'vset‑> graph:('v, 'e) t‑>'vsequence‑>'v list
topo_sort ~graph seq returns a list of vertices l where each
+element of l is reachable from seq.
+The list is sorted in a way such that if v -> v' in the graph, then
+v comes before v' in the list (i.e. has a smaller index).
+Basically v -> v' means that v is smaller than v'.
+See wikipedia.
Parametereq: equality predicate on vertices (default (=)).
Parameterrev: if true, the dependency relation is inverted (v -> v' means
+v' occurs before v).
RaisesHas_cycle: if the graph is not a DAG.
val topo_sort_tag : eq:('v‑>'v‑> bool) ‑> ?rev:bool ‑> tags:'vtag_set‑> graph:('v, 'e) t‑>'vsequence‑>'v list
Strongly connected components reachable from the given vertices.
+Each component is a list of vertices that are all mutually reachable
+in the graph.
+The components are explored in a topological order (if C1 and C2 are
+components, and C1 points to C2, then C2 will be yielded before C1).
+Uses Tarjan's algorithm.
Parametertbl: table used to map nodes to some hidden state.
RaisesSequence_once: if the result is iterated on more than once.
Pretty printing in the DOT (graphviz) format
Example (print divisors from 42):
let open CCGraph in
+ let open Dot in
+ with_out "/tmp/truc.dot"
+ (fun out ->
+ pp ~attrs_v:(fun i -> [`Label (string_of_int i)]) ~graph:divisors_graph out 42
+ )
val mk_mut_tbl : eq:('v‑>'v‑> bool) ‑> ?hash:('v‑> int) ‑> int ‑> ('v, 'a) mut_graph
Make a new mutable graph from a Hashtbl. Edges are labelled with type 'a.
Immutable Graph
A classic implementation of a graph structure on totally ordered vertices,
+with unlabelled edges. The graph allows to add and remove edges and vertices,
+and to iterate on edges and vertices.
\ No newline at end of file
diff --git a/2.0/containers.data/CCGraph/module-type-MAP/index.html b/2.0/containers.data/CCGraph/module-type-MAP/index.html
new file mode 100644
index 00000000..34b99c3a
--- /dev/null
+++ b/2.0/containers.data/CCGraph/module-type-MAP/index.html
@@ -0,0 +1,4 @@
+
+MAP (containers.data.CCGraph.MAP)
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashSet/.jbuilder-keep b/2.0/containers.data/CCHashSet/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCHashSet/Make/argument-1-E/index.html b/2.0/containers.data/CCHashSet/Make/argument-1-E/index.html
new file mode 100644
index 00000000..204296e7
--- /dev/null
+++ b/2.0/containers.data/CCHashSet/Make/argument-1-E/index.html
@@ -0,0 +1,2 @@
+
+1-E (containers.data.CCHashSet.Make.1-E)
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashSet/Make/index.html b/2.0/containers.data/CCHashSet/Make/index.html
new file mode 100644
index 00000000..9c64d2d2
--- /dev/null
+++ b/2.0/containers.data/CCHashSet/Make/index.html
@@ -0,0 +1,3 @@
+
+Make (containers.data.CCHashSet.Make)
pp pp_elt returns a set printer, given a printer for
+individual elements.
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashSet/index.html b/2.0/containers.data/CCHashSet/index.html
new file mode 100644
index 00000000..abc75e6a
--- /dev/null
+++ b/2.0/containers.data/CCHashSet/index.html
@@ -0,0 +1,2 @@
+
+CCHashSet (containers.data.CCHashSet)
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashSet/module-type-ELEMENT/index.html b/2.0/containers.data/CCHashSet/module-type-ELEMENT/index.html
new file mode 100644
index 00000000..ddb7c32b
--- /dev/null
+++ b/2.0/containers.data/CCHashSet/module-type-ELEMENT/index.html
@@ -0,0 +1,2 @@
+
+ELEMENT (containers.data.CCHashSet.ELEMENT)
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashSet/module-type-S/index.html b/2.0/containers.data/CCHashSet/module-type-S/index.html
new file mode 100644
index 00000000..1d95066c
--- /dev/null
+++ b/2.0/containers.data/CCHashSet/module-type-S/index.html
@@ -0,0 +1,3 @@
+
+S (containers.data.CCHashSet.S)
pp pp_elt returns a set printer, given a printer for
+individual elements.
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashTrie/.jbuilder-keep b/2.0/containers.data/CCHashTrie/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCHashTrie/Make/argument-1-K/index.html b/2.0/containers.data/CCHashTrie/Make/argument-1-K/index.html
new file mode 100644
index 00000000..ab7c51b5
--- /dev/null
+++ b/2.0/containers.data/CCHashTrie/Make/argument-1-K/index.html
@@ -0,0 +1,2 @@
+
+1-K (containers.data.CCHashTrie.Make.1-K)
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashTrie/Make/index.html b/2.0/containers.data/CCHashTrie/Make/index.html
new file mode 100644
index 00000000..b13bc6e9
--- /dev/null
+++ b/2.0/containers.data/CCHashTrie/Make/index.html
@@ -0,0 +1,9 @@
+
+Make (containers.data.CCHashTrie.Make)
add_mut ~id k v m behaves like add k v m, except it will mutate
+in place whenever possible. Changes done with an id might affect all
+versions of the structure obtained with the same id (but not
+other versions).
val as_tree : 'at‑> [ `L of int * (key * 'a) list | `N ] ktree
For debugging purpose: explore the structure of the tree,
+with `L (h,l) being a leaf (with shared hash h)
+and `N an inner node.
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashTrie/Transient/index.html b/2.0/containers.data/CCHashTrie/Transient/index.html
new file mode 100644
index 00000000..0fc0e08b
--- /dev/null
+++ b/2.0/containers.data/CCHashTrie/Transient/index.html
@@ -0,0 +1,7 @@
+
+Transient (containers.data.CCHashTrie.Transient)
ModuleCCHashTrie.Transient
Transient Identifiers
type t
Identifiers for transient modifications. A transient modification
+is uniquely identified by a Transient.t. Once Transient.freeze r
+is called, r cannot be used to modify the structure again.
with_ f creates a transient ID i, calls f i,
+freezes the ID i and returns the result of f i.
exception Frozen
Raised when a frozen ID is used.
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashTrie/index.html b/2.0/containers.data/CCHashTrie/index.html
new file mode 100644
index 00000000..fc1d3a9e
--- /dev/null
+++ b/2.0/containers.data/CCHashTrie/index.html
@@ -0,0 +1,6 @@
+
+CCHashTrie (containers.data.CCHashTrie)
ModuleCCHashTrie
Hash Tries
Trie indexed by the hash of the keys, where the branching factor is fixed.
+The goal is to have a quite efficient functional structure with fast
+update and access if the hash function is good.
+The trie is not binary, to improve cache locality and decrease depth.
Preliminary benchmarks (see the "tbl" section of benchmarks) tend to show
+that this type is quite efficient for small data sets.
status: unstable
Since: 0.13
type 'a sequence = ('a‑> unit) ‑> unit
type 'a gen = unit ‑>'a option
type 'a printer = Format.formatter ‑>'a‑> unit
type 'a ktree = unit ‑> [ `Nil | `Node of 'a * 'aktree list ]
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashTrie/module-type-KEY/index.html b/2.0/containers.data/CCHashTrie/module-type-KEY/index.html
new file mode 100644
index 00000000..5d53860f
--- /dev/null
+++ b/2.0/containers.data/CCHashTrie/module-type-KEY/index.html
@@ -0,0 +1,2 @@
+
+KEY (containers.data.CCHashTrie.KEY)
\ No newline at end of file
diff --git a/2.0/containers.data/CCHashTrie/module-type-S/index.html b/2.0/containers.data/CCHashTrie/module-type-S/index.html
new file mode 100644
index 00000000..3326cb26
--- /dev/null
+++ b/2.0/containers.data/CCHashTrie/module-type-S/index.html
@@ -0,0 +1,9 @@
+
+S (containers.data.CCHashTrie.S)
add_mut ~id k v m behaves like add k v m, except it will mutate
+in place whenever possible. Changes done with an id might affect all
+versions of the structure obtained with the same id (but not
+other versions).
val as_tree : 'at‑> [ `L of int * (key * 'a) list | `N ] ktree
For debugging purpose: explore the structure of the tree,
+with `L (h,l) being a leaf (with shared hash h)
+and `N an inner node.
\ No newline at end of file
diff --git a/2.0/containers.data/CCHet/.jbuilder-keep b/2.0/containers.data/CCHet/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCHet/Key/index.html b/2.0/containers.data/CCHet/Key/index.html
new file mode 100644
index 00000000..bccb4e3b
--- /dev/null
+++ b/2.0/containers.data/CCHet/Key/index.html
@@ -0,0 +1,2 @@
+
+Key (containers.data.CCHet.Key)
\ No newline at end of file
diff --git a/2.0/containers.data/CCHet/Map/index.html b/2.0/containers.data/CCHet/Map/index.html
new file mode 100644
index 00000000..c9bf358f
--- /dev/null
+++ b/2.0/containers.data/CCHet/Map/index.html
@@ -0,0 +1,2 @@
+
+Map (containers.data.CCHet.Map)
\ No newline at end of file
diff --git a/2.0/containers.data/CCHet/Tbl/index.html b/2.0/containers.data/CCHet/Tbl/index.html
new file mode 100644
index 00000000..e76d3701
--- /dev/null
+++ b/2.0/containers.data/CCHet/Tbl/index.html
@@ -0,0 +1,2 @@
+
+Tbl (containers.data.CCHet.Tbl)
\ No newline at end of file
diff --git a/2.0/containers.data/CCHet/index.html b/2.0/containers.data/CCHet/index.html
new file mode 100644
index 00000000..e8fc8a2c
--- /dev/null
+++ b/2.0/containers.data/CCHet/index.html
@@ -0,0 +1,3 @@
+
+CCHet (containers.data.CCHet)
ModuleCCHet
Associative containers with Heterogenerous Values
This is similar to CCMixtbl, but the injection is directly used as
+a key.
\ No newline at end of file
diff --git a/2.0/containers.data/CCImmutArray/.jbuilder-keep b/2.0/containers.data/CCImmutArray/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCImmutArray/index.html b/2.0/containers.data/CCImmutArray/index.html
new file mode 100644
index 00000000..e402418a
--- /dev/null
+++ b/2.0/containers.data/CCImmutArray/index.html
@@ -0,0 +1,8 @@
+
+CCImmutArray (containers.data.CCImmutArray)
ModuleCCImmutArray
Immutable Arrays
Purely functional use of arrays. Update is costly, but reads are very fast.
+Sadly, it is not possible to make this type covariant without using black
+magic.
Since: 0.17
type 'a t
Array of values of type 'a. The underlying type really is
+an array, but it will never be modified.
It should be covariant but OCaml will not accept it.
sub a start len returns a fresh array of length len, containing the elements
+from start to pstart + len - 1 of array a.
Raises Invalid_argument "Array.sub" if start and len do not designate a
+valid subarray of a; that is, if start < 0, or len < 0, or start + len > Array.length a.
val pp : ?start:string ‑> ?stop:string ‑> ?sep:string ‑>'aprinter‑>'atprinter
\ No newline at end of file
diff --git a/2.0/containers.data/CCIntMap/.jbuilder-keep b/2.0/containers.data/CCIntMap/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCIntMap/index.html b/2.0/containers.data/CCIntMap/index.html
new file mode 100644
index 00000000..762faec4
--- /dev/null
+++ b/2.0/containers.data/CCIntMap/index.html
@@ -0,0 +1,3 @@
+
+CCIntMap (containers.data.CCIntMap)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMixmap/.jbuilder-keep b/2.0/containers.data/CCMixmap/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCMixmap/Make/argument-1-X/index.html b/2.0/containers.data/CCMixmap/Make/argument-1-X/index.html
new file mode 100644
index 00000000..7c387271
--- /dev/null
+++ b/2.0/containers.data/CCMixmap/Make/argument-1-X/index.html
@@ -0,0 +1,2 @@
+
+1-X (containers.data.CCMixmap.Make.1-X)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMixmap/Make/index.html b/2.0/containers.data/CCMixmap/Make/index.html
new file mode 100644
index 00000000..f4dc7647
--- /dev/null
+++ b/2.0/containers.data/CCMixmap/Make/index.html
@@ -0,0 +1,4 @@
+
+Make (containers.data.CCMixmap.Make)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMixmap/index.html b/2.0/containers.data/CCMixmap/index.html
new file mode 100644
index 00000000..a22eedc1
--- /dev/null
+++ b/2.0/containers.data/CCMixmap/index.html
@@ -0,0 +1,8 @@
+
+CCMixmap (containers.data.CCMixmap)
ModuleCCMixmap
type 'a injection
An accessor for values of type 'a in any map. Values put
+in the map using a key can only be retrieved using this
+very same key.
Return a value that works for a given type of values. This function is
+normally called once for each type of value. Several keys may be
+created for the same type, but a value set with a given setter can only be
+retrieved with the matching getter. The same key can be reused
+across multiple maps (although not in a thread-safe way).
\ No newline at end of file
diff --git a/2.0/containers.data/CCMixmap/module-type-ORD/index.html b/2.0/containers.data/CCMixmap/module-type-ORD/index.html
new file mode 100644
index 00000000..1a27ae60
--- /dev/null
+++ b/2.0/containers.data/CCMixmap/module-type-ORD/index.html
@@ -0,0 +1,2 @@
+
+ORD (containers.data.CCMixmap.ORD)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMixmap/module-type-S/index.html b/2.0/containers.data/CCMixmap/module-type-S/index.html
new file mode 100644
index 00000000..e188bea9
--- /dev/null
+++ b/2.0/containers.data/CCMixmap/module-type-S/index.html
@@ -0,0 +1,4 @@
+
+S (containers.data.CCMixmap.S)
Module typeCCMixmap.S
type key
type t
A map containing values of different types, indexed by key.
\ No newline at end of file
diff --git a/2.0/containers.data/CCMixset/.jbuilder-keep b/2.0/containers.data/CCMixset/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCMixset/index.html b/2.0/containers.data/CCMixset/index.html
new file mode 100644
index 00000000..28db5be9
--- /dev/null
+++ b/2.0/containers.data/CCMixset/index.html
@@ -0,0 +1,17 @@
+
+CCMixset (containers.data.CCMixset)
ModuleCCMixset
Set of Heterogeneous Values
let k1 : int key = newkey () in
+ let k2 : int key = newkey () in
+ let k3 : string key = newkey () in
+ let set =
+ empty
+ |> set ~key:k1 1
+ |> set ~key:k2 2
+ |> set ~key:k3 "3"
+ in
+ assert (get ~key:k1 set = Some 1);
+ assert (get ~key:k2 set = Some 2);
+ assert (get ~key:k3 set = Some "3");
+ ()
Since: 0.11
type t
A set of values of heterogeneous types
type 'a key
A unique "key" to access a value of type 'a in a set
newkey () creates a new unique key that can be used to access
+a 'a value in a set. Each key created with newkey is distinct
+from any other key, even if they have the same type.
\ No newline at end of file
diff --git a/2.0/containers.data/CCMixtbl/.jbuilder-keep b/2.0/containers.data/CCMixtbl/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCMixtbl/index.html b/2.0/containers.data/CCMixtbl/index.html
new file mode 100644
index 00000000..dec2856d
--- /dev/null
+++ b/2.0/containers.data/CCMixtbl/index.html
@@ -0,0 +1,32 @@
+
+CCMixtbl (containers.data.CCMixtbl)
ModuleCCMixtbl
Hash Table with Heterogeneous Keys
From https://github.com/mjambon/mixtbl (thanks to him).
+Example:
Return a value that works for a given type of values. This function is
+normally called once for each type of value. Several keys may be
+created for the same type, but a value set with a given setter can only be
+retrieved with the matching getter. The same key can be reused
+across multiple tables (although not in a thread-safe way).
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/.jbuilder-keep b/2.0/containers.data/CCMultiMap/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCMultiMap/Make/argument-1-K/index.html b/2.0/containers.data/CCMultiMap/Make/argument-1-K/index.html
new file mode 100644
index 00000000..7d3a9e97
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/Make/argument-1-K/index.html
@@ -0,0 +1,2 @@
+
+1-K (containers.data.CCMultiMap.Make.1-K)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/Make/argument-2-V/index.html b/2.0/containers.data/CCMultiMap/Make/argument-2-V/index.html
new file mode 100644
index 00000000..a4b4688d
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/Make/argument-2-V/index.html
@@ -0,0 +1,2 @@
+
+2-V (containers.data.CCMultiMap.Make.2-V)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/Make/index.html b/2.0/containers.data/CCMultiMap/Make/index.html
new file mode 100644
index 00000000..a35e9d2b
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/Make/index.html
@@ -0,0 +1,3 @@
+
+Make (containers.data.CCMultiMap.Make)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/MakeBidir/argument-1-L/index.html b/2.0/containers.data/CCMultiMap/MakeBidir/argument-1-L/index.html
new file mode 100644
index 00000000..41379937
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/MakeBidir/argument-1-L/index.html
@@ -0,0 +1,2 @@
+
+1-L (containers.data.CCMultiMap.MakeBidir.1-L)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/MakeBidir/argument-2-R/index.html b/2.0/containers.data/CCMultiMap/MakeBidir/argument-2-R/index.html
new file mode 100644
index 00000000..cc041fdf
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/MakeBidir/argument-2-R/index.html
@@ -0,0 +1,2 @@
+
+2-R (containers.data.CCMultiMap.MakeBidir.2-R)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/MakeBidir/index.html b/2.0/containers.data/CCMultiMap/MakeBidir/index.html
new file mode 100644
index 00000000..13c55798
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/MakeBidir/index.html
@@ -0,0 +1,2 @@
+
+MakeBidir (containers.data.CCMultiMap.MakeBidir)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/index.html b/2.0/containers.data/CCMultiMap/index.html
new file mode 100644
index 00000000..62059049
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/index.html
@@ -0,0 +1,4 @@
+
+CCMultiMap (containers.data.CCMultiMap)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/module-type-BIDIR/index.html b/2.0/containers.data/CCMultiMap/module-type-BIDIR/index.html
new file mode 100644
index 00000000..7edb3f7c
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/module-type-BIDIR/index.html
@@ -0,0 +1,2 @@
+
+BIDIR (containers.data.CCMultiMap.BIDIR)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/module-type-OrderedType/index.html b/2.0/containers.data/CCMultiMap/module-type-OrderedType/index.html
new file mode 100644
index 00000000..018a1206
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/module-type-OrderedType/index.html
@@ -0,0 +1,2 @@
+
+OrderedType (containers.data.CCMultiMap.OrderedType)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiMap/module-type-S/index.html b/2.0/containers.data/CCMultiMap/module-type-S/index.html
new file mode 100644
index 00000000..ac2f7d00
--- /dev/null
+++ b/2.0/containers.data/CCMultiMap/module-type-S/index.html
@@ -0,0 +1,3 @@
+
+S (containers.data.CCMultiMap.S)
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiSet/.jbuilder-keep b/2.0/containers.data/CCMultiSet/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCMultiSet/Make/index.html b/2.0/containers.data/CCMultiSet/Make/index.html
new file mode 100644
index 00000000..ab31ad40
--- /dev/null
+++ b/2.0/containers.data/CCMultiSet/Make/index.html
@@ -0,0 +1,8 @@
+
+Make (containers.data.CCMultiSet.Make)
update set x f calls f n where n is the current multiplicity
+of x in set (0 to indicate its absence); the result of f n
+is the new multiplicity of x.
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiSet/index.html b/2.0/containers.data/CCMultiSet/index.html
new file mode 100644
index 00000000..88cb381c
--- /dev/null
+++ b/2.0/containers.data/CCMultiSet/index.html
@@ -0,0 +1,2 @@
+
+CCMultiSet (containers.data.CCMultiSet)
module Make : functor (O : Set.OrderedType) -> S with type elt = O.t
\ No newline at end of file
diff --git a/2.0/containers.data/CCMultiSet/module-type-S/index.html b/2.0/containers.data/CCMultiSet/module-type-S/index.html
new file mode 100644
index 00000000..b15236b5
--- /dev/null
+++ b/2.0/containers.data/CCMultiSet/module-type-S/index.html
@@ -0,0 +1,8 @@
+
+S (containers.data.CCMultiSet.S)
update set x f calls f n where n is the current multiplicity
+of x in set (0 to indicate its absence); the result of f n
+is the new multiplicity of x.
\ No newline at end of file
diff --git a/2.0/containers.data/CCPersistentArray/.jbuilder-keep b/2.0/containers.data/CCPersistentArray/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCPersistentArray/index.html b/2.0/containers.data/CCPersistentArray/index.html
new file mode 100644
index 00000000..8d20a92d
--- /dev/null
+++ b/2.0/containers.data/CCPersistentArray/index.html
@@ -0,0 +1,20 @@
+
+CCPersistentArray (containers.data.CCPersistentArray)
ModuleCCPersistentArray
Persistent Arrays
From the paper by Jean-Christophe Filliâtre,
+"A persistent Union-Find data structure", see
+the ps version
make n x returns a persistent array of length n, with x. All the
+elements of this new array are initially physically equal to x
+(in the sense of the == predicate). Consequently, if x is mutable, it is
+shared among all elements of the array, and modifying x through one of the
+array entries will modify all other entries at the same time.
RaisesInvalid_argument: if n < 0 or n > Sys.max_array_length.
+If the value of x is a floating-point number, then the maximum size is
+only Sys.max_array_length / 2.
init n f returns a persistent array of length n, with element
+i initialized to the result of f i.
RaisesInvalid_argument: if n < 0 or n > Sys.max_array_length.
+If the value of x is a floating-point number, then the maximum size is
+only Sys.max_array_length / 2.
Applies the given function to all elements of the array, and returns
+a persistent array initialized by the results of f. In the case of mapi,
+the function is also given the index of the element.
+It is equivalent to fun f t -> init (fun i -> f (get t i)).
\ No newline at end of file
diff --git a/2.0/containers.data/CCPersistentHashtbl/.jbuilder-keep b/2.0/containers.data/CCPersistentHashtbl/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCPersistentHashtbl/Make/argument-1-H/index.html b/2.0/containers.data/CCPersistentHashtbl/Make/argument-1-H/index.html
new file mode 100644
index 00000000..d683e46b
--- /dev/null
+++ b/2.0/containers.data/CCPersistentHashtbl/Make/argument-1-H/index.html
@@ -0,0 +1,2 @@
+
+1-H (containers.data.CCPersistentHashtbl.Make.1-H)
\ No newline at end of file
diff --git a/2.0/containers.data/CCPersistentHashtbl/Make/index.html b/2.0/containers.data/CCPersistentHashtbl/Make/index.html
new file mode 100644
index 00000000..04339b3b
--- /dev/null
+++ b/2.0/containers.data/CCPersistentHashtbl/Make/index.html
@@ -0,0 +1,10 @@
+
+Make (containers.data.CCPersistentHashtbl.Make)
Add the binding to the table, returning a new table. This erases
+the current binding for key, if any.
val update : 'at‑>key‑> ('a option ‑>'a option) ‑>'at
update tbl key f calls f None if key doesn't belong in tbl,
+f (Some v) if key -> v otherwise; If f returns None then
+key is removed, else it returns Some v' and key -> v' is added.
Fresh copy of the table; the underlying structure is not shared
+anymore, so using both tables alternatively will be efficient.
val merge : f:(key‑> [ `Left of 'a | `Right of 'b | `Both of 'a * 'b ] ‑>'c option) ‑>'at‑>'bt‑>'ct
Merge two tables together into a new table. The function's argument
+correspond to values associated with the key (if present); if the
+function returns None the key will not appear in the result.
\ No newline at end of file
diff --git a/2.0/containers.data/CCPersistentHashtbl/index.html b/2.0/containers.data/CCPersistentHashtbl/index.html
new file mode 100644
index 00000000..7e53ad85
--- /dev/null
+++ b/2.0/containers.data/CCPersistentHashtbl/index.html
@@ -0,0 +1,5 @@
+
+CCPersistentHashtbl (containers.data.CCPersistentHashtbl)
ModuleCCPersistentHashtbl
Persistent hash-table on top of OCaml's hashtables
Almost as efficient as the regular Hashtbl type, but with a persistent
+interface (rewinding changes to get back in the past history). This is
+mostly useful for backtracking-like uses, or forward uses (never using
+old values).
\ No newline at end of file
diff --git a/2.0/containers.data/CCPersistentHashtbl/module-type-HashedType/index.html b/2.0/containers.data/CCPersistentHashtbl/module-type-HashedType/index.html
new file mode 100644
index 00000000..3af4a03a
--- /dev/null
+++ b/2.0/containers.data/CCPersistentHashtbl/module-type-HashedType/index.html
@@ -0,0 +1,2 @@
+
+HashedType (containers.data.CCPersistentHashtbl.HashedType)
\ No newline at end of file
diff --git a/2.0/containers.data/CCPersistentHashtbl/module-type-S/index.html b/2.0/containers.data/CCPersistentHashtbl/module-type-S/index.html
new file mode 100644
index 00000000..5f05a082
--- /dev/null
+++ b/2.0/containers.data/CCPersistentHashtbl/module-type-S/index.html
@@ -0,0 +1,10 @@
+
+S (containers.data.CCPersistentHashtbl.S)
Add the binding to the table, returning a new table. This erases
+the current binding for key, if any.
val update : 'at‑>key‑> ('a option ‑>'a option) ‑>'at
update tbl key f calls f None if key doesn't belong in tbl,
+f (Some v) if key -> v otherwise; If f returns None then
+key is removed, else it returns Some v' and key -> v' is added.
Fresh copy of the table; the underlying structure is not shared
+anymore, so using both tables alternatively will be efficient.
val merge : f:(key‑> [ `Left of 'a | `Right of 'b | `Both of 'a * 'b ] ‑>'c option) ‑>'at‑>'bt‑>'ct
Merge two tables together into a new table. The function's argument
+correspond to values associated with the key (if present); if the
+function returns None the key will not appear in the result.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRAL/.jbuilder-keep b/2.0/containers.data/CCRAL/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCRAL/Infix/index.html b/2.0/containers.data/CCRAL/Infix/index.html
new file mode 100644
index 00000000..0b49d774
--- /dev/null
+++ b/2.0/containers.data/CCRAL/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.data.CCRAL.Infix)
a --^ b is the integer range from a to b, where b is excluded.
Since: 0.17
\ No newline at end of file
diff --git a/2.0/containers.data/CCRAL/index.html b/2.0/containers.data/CCRAL/index.html
new file mode 100644
index 00000000..19b39e31
--- /dev/null
+++ b/2.0/containers.data/CCRAL/index.html
@@ -0,0 +1,6 @@
+
+CCRAL (containers.data.CCRAL)
ModuleCCRAL
Random-Access Lists
This is an OCaml implementation of Okasaki's paper
+"Purely Functional Random Access Lists". It defines a list-like data
+structure with O(1) cons/tail operations, and O(log(n)) lookup/modification
+operations.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/.jbuilder-keep b/2.0/containers.data/CCRingBuffer/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCRingBuffer/Array/Byte/index.html b/2.0/containers.data/CCRingBuffer/Array/Byte/index.html
new file mode 100644
index 00000000..c791abab
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/Array/Byte/index.html
@@ -0,0 +1,5 @@
+
+Byte (containers.data.CCRingBuffer.Array.Byte)
iter f t iterates over the array t invoking f with
+the current element, in array order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/Array/Make/argument-1-Elt/index.html b/2.0/containers.data/CCRingBuffer/Array/Make/argument-1-Elt/index.html
new file mode 100644
index 00000000..690a5bc5
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/Array/Make/argument-1-Elt/index.html
@@ -0,0 +1,2 @@
+
+1-Elt (containers.data.CCRingBuffer.Array.Make.1-Elt)
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/Array/Make/index.html b/2.0/containers.data/CCRingBuffer/Array/Make/index.html
new file mode 100644
index 00000000..996bdf1e
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/Array/Make/index.html
@@ -0,0 +1,5 @@
+
+Make (containers.data.CCRingBuffer.Array.Make)
iter f t iterates over the array t invoking f with
+the current element, in array order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/Array/index.html b/2.0/containers.data/CCRingBuffer/Array/index.html
new file mode 100644
index 00000000..37060726
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/Array/index.html
@@ -0,0 +1,2 @@
+
+Array (containers.data.CCRingBuffer.Array)
module Byte : S with type elt = char and type t = Bytes.t
Efficient array version for the char type
module Make : functor (Elt : sig ... end) -> S with type elt = Elt.t and type t = Elt.t array
Makes an array given an arbitrary element type
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/Array/module-type-S/index.html b/2.0/containers.data/CCRingBuffer/Array/module-type-S/index.html
new file mode 100644
index 00000000..77509e4e
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/Array/module-type-S/index.html
@@ -0,0 +1,5 @@
+
+S (containers.data.CCRingBuffer.Array.S)
iter f t iterates over the array t invoking f with
+the current element, in array order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/Byte/index.html b/2.0/containers.data/CCRingBuffer/Byte/index.html
new file mode 100644
index 00000000..0358d1dd
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/Byte/index.html
@@ -0,0 +1,15 @@
+
+Byte (containers.data.CCRingBuffer.Byte)
create size creates a new bounded buffer with given size.
+The underlying array is allocated immediately and no further (large)
+allocation will happen from now on.
blit_from buf from_buf o len copies the slice o, ... o + len - 1 from
+a input buffer from_buf to the end of the buffer.
+If the slice is too large for the buffer, only the last part of the array
+will be copied.
RaisesInvalid_argument: if o,len is not a valid slice of s.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/Make/Array/index.html b/2.0/containers.data/CCRingBuffer/Make/Array/index.html
new file mode 100644
index 00000000..eed8626a
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/Make/Array/index.html
@@ -0,0 +1,5 @@
+
+Array (containers.data.CCRingBuffer.Make.Array)
iter f t iterates over the array t invoking f with
+the current element, in array order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/Make/argument-1-X/index.html b/2.0/containers.data/CCRingBuffer/Make/argument-1-X/index.html
new file mode 100644
index 00000000..77d276ab
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/Make/argument-1-X/index.html
@@ -0,0 +1,2 @@
+
+1-X (containers.data.CCRingBuffer.Make.1-X)
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/Make/index.html b/2.0/containers.data/CCRingBuffer/Make/index.html
new file mode 100644
index 00000000..e5684aa2
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/Make/index.html
@@ -0,0 +1,15 @@
+
+Make (containers.data.CCRingBuffer.Make)
create size creates a new bounded buffer with given size.
+The underlying array is allocated immediately and no further (large)
+allocation will happen from now on.
blit_from buf from_buf o len copies the slice o, ... o + len - 1 from
+a input buffer from_buf to the end of the buffer.
+If the slice is too large for the buffer, only the last part of the array
+will be copied.
RaisesInvalid_argument: if o,len is not a valid slice of s.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/MakeFromArray/argument-1-A/index.html b/2.0/containers.data/CCRingBuffer/MakeFromArray/argument-1-A/index.html
new file mode 100644
index 00000000..45eea5e2
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/MakeFromArray/argument-1-A/index.html
@@ -0,0 +1,5 @@
+
+1-A (containers.data.CCRingBuffer.MakeFromArray.1-A)
iter f t iterates over the array t invoking f with
+the current element, in array order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/MakeFromArray/index.html b/2.0/containers.data/CCRingBuffer/MakeFromArray/index.html
new file mode 100644
index 00000000..2a92412e
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/MakeFromArray/index.html
@@ -0,0 +1,15 @@
+
+MakeFromArray (containers.data.CCRingBuffer.MakeFromArray)
ModuleCCRingBuffer.MakeFromArray
Makes a ring buffer module with the given array type.
create size creates a new bounded buffer with given size.
+The underlying array is allocated immediately and no further (large)
+allocation will happen from now on.
blit_from buf from_buf o len copies the slice o, ... o + len - 1 from
+a input buffer from_buf to the end of the buffer.
+If the slice is too large for the buffer, only the last part of the array
+will be copied.
RaisesInvalid_argument: if o,len is not a valid slice of s.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/index.html b/2.0/containers.data/CCRingBuffer/index.html
new file mode 100644
index 00000000..dd774b64
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/index.html
@@ -0,0 +1,2 @@
+
+CCRingBuffer (containers.data.CCRingBuffer)
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/module-type-S/Array/index.html b/2.0/containers.data/CCRingBuffer/module-type-S/Array/index.html
new file mode 100644
index 00000000..e20d55b7
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/module-type-S/Array/index.html
@@ -0,0 +1,5 @@
+
+Array (containers.data.CCRingBuffer.S.Array)
iter f t iterates over the array t invoking f with
+the current element, in array order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCRingBuffer/module-type-S/index.html b/2.0/containers.data/CCRingBuffer/module-type-S/index.html
new file mode 100644
index 00000000..be2c33ee
--- /dev/null
+++ b/2.0/containers.data/CCRingBuffer/module-type-S/index.html
@@ -0,0 +1,16 @@
+
+S (containers.data.CCRingBuffer.S)
Module typeCCRingBuffer.S
Ring Buffer
The abstract ring buffer type, made concrete by choice of
+ARRAY module implementation
create size creates a new bounded buffer with given size.
+The underlying array is allocated immediately and no further (large)
+allocation will happen from now on.
blit_from buf from_buf o len copies the slice o, ... o + len - 1 from
+a input buffer from_buf to the end of the buffer.
+If the slice is too large for the buffer, only the last part of the array
+will be copied.
RaisesInvalid_argument: if o,len is not a valid slice of s.
\ No newline at end of file
diff --git a/2.0/containers.data/CCSimple_queue/.jbuilder-keep b/2.0/containers.data/CCSimple_queue/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCSimple_queue/Infix/index.html b/2.0/containers.data/CCSimple_queue/Infix/index.html
new file mode 100644
index 00000000..83ae918b
--- /dev/null
+++ b/2.0/containers.data/CCSimple_queue/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.data.CCSimple_queue.Infix)
\ No newline at end of file
diff --git a/2.0/containers.data/CCSimple_queue/index.html b/2.0/containers.data/CCSimple_queue/index.html
new file mode 100644
index 00000000..521b50ab
--- /dev/null
+++ b/2.0/containers.data/CCSimple_queue/index.html
@@ -0,0 +1,4 @@
+
+CCSimple_queue (containers.data.CCSimple_queue)
ModuleCCSimple_queue
Functional queues (fifo)
Simple implementation of functional queues
Since: 1.3
type 'a sequence = ('a‑> unit) ‑> unit
type 'a printer = Format.formatter ‑>'a‑> unit
type 'a klist = unit ‑> [ `Nil | `Cons of 'a * 'aklist ]
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/.jbuilder-keep b/2.0/containers.data/CCTrie/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCTrie/Make/argument-1-W/index.html b/2.0/containers.data/CCTrie/Make/argument-1-W/index.html
new file mode 100644
index 00000000..a009cb92
--- /dev/null
+++ b/2.0/containers.data/CCTrie/Make/argument-1-W/index.html
@@ -0,0 +1,2 @@
+
+1-W (containers.data.CCTrie.Make.1-W)
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/Make/index.html b/2.0/containers.data/CCTrie/Make/index.html
new file mode 100644
index 00000000..8aa89f72
--- /dev/null
+++ b/2.0/containers.data/CCTrie/Make/index.html
@@ -0,0 +1,11 @@
+
+Make (containers.data.CCTrie.Make)
longest_prefix k m finds the longest prefix of k that leads to
+at least one path in m (it does not mean that the prefix is bound to
+a value.
Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m
+will return "abc".
Since: 0.17
val update : key‑> ('a option ‑>'a option) ‑>'at‑>'at
Update the binding for the given key. The function is given
+None if the key is absent, or Some v if key is bound to v;
+if it returns None the key is removed, otherwise it
+returns Some y and key becomes bound to y.
All bindings whose key is smaller or equal to the given key,
+in decreasing order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/MakeArray/argument-1-X/index.html b/2.0/containers.data/CCTrie/MakeArray/argument-1-X/index.html
new file mode 100644
index 00000000..8aad7177
--- /dev/null
+++ b/2.0/containers.data/CCTrie/MakeArray/argument-1-X/index.html
@@ -0,0 +1,2 @@
+
+1-X (containers.data.CCTrie.MakeArray.1-X)
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/MakeArray/index.html b/2.0/containers.data/CCTrie/MakeArray/index.html
new file mode 100644
index 00000000..c7bb46e7
--- /dev/null
+++ b/2.0/containers.data/CCTrie/MakeArray/index.html
@@ -0,0 +1,11 @@
+
+MakeArray (containers.data.CCTrie.MakeArray)
longest_prefix k m finds the longest prefix of k that leads to
+at least one path in m (it does not mean that the prefix is bound to
+a value.
Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m
+will return "abc".
Since: 0.17
val update : key‑> ('a option ‑>'a option) ‑>'at‑>'at
Update the binding for the given key. The function is given
+None if the key is absent, or Some v if key is bound to v;
+if it returns None the key is removed, otherwise it
+returns Some y and key becomes bound to y.
All bindings whose key is smaller or equal to the given key,
+in decreasing order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/MakeList/argument-1-X/index.html b/2.0/containers.data/CCTrie/MakeList/argument-1-X/index.html
new file mode 100644
index 00000000..f29b9408
--- /dev/null
+++ b/2.0/containers.data/CCTrie/MakeList/argument-1-X/index.html
@@ -0,0 +1,2 @@
+
+1-X (containers.data.CCTrie.MakeList.1-X)
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/MakeList/index.html b/2.0/containers.data/CCTrie/MakeList/index.html
new file mode 100644
index 00000000..1a9d8aa4
--- /dev/null
+++ b/2.0/containers.data/CCTrie/MakeList/index.html
@@ -0,0 +1,11 @@
+
+MakeList (containers.data.CCTrie.MakeList)
longest_prefix k m finds the longest prefix of k that leads to
+at least one path in m (it does not mean that the prefix is bound to
+a value.
Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m
+will return "abc".
Since: 0.17
val update : key‑> ('a option ‑>'a option) ‑>'at‑>'at
Update the binding for the given key. The function is given
+None if the key is absent, or Some v if key is bound to v;
+if it returns None the key is removed, otherwise it
+returns Some y and key becomes bound to y.
All bindings whose key is smaller or equal to the given key,
+in decreasing order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/String/index.html b/2.0/containers.data/CCTrie/String/index.html
new file mode 100644
index 00000000..984ef4ed
--- /dev/null
+++ b/2.0/containers.data/CCTrie/String/index.html
@@ -0,0 +1,11 @@
+
+String (containers.data.CCTrie.String)
longest_prefix k m finds the longest prefix of k that leads to
+at least one path in m (it does not mean that the prefix is bound to
+a value.
Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m
+will return "abc".
Since: 0.17
val update : key‑> ('a option ‑>'a option) ‑>'at‑>'at
Update the binding for the given key. The function is given
+None if the key is absent, or Some v if key is bound to v;
+if it returns None the key is removed, otherwise it
+returns Some y and key becomes bound to y.
All bindings whose key is smaller or equal to the given key,
+in decreasing order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/index.html b/2.0/containers.data/CCTrie/index.html
new file mode 100644
index 00000000..55fa3a34
--- /dev/null
+++ b/2.0/containers.data/CCTrie/index.html
@@ -0,0 +1,2 @@
+
+CCTrie (containers.data.CCTrie)
ModuleCCTrie
Prefix Tree
type 'a sequence = ('a‑> unit) ‑> unit
type 'a ktree = unit ‑> [ `Nil | `Node of 'a * 'aktree list ]
Signatures
A Composite Word
Words are made of characters, who belong to a total order
module String : S with type key = string and type char_ = char
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/module-type-ORDERED/index.html b/2.0/containers.data/CCTrie/module-type-ORDERED/index.html
new file mode 100644
index 00000000..b2352f56
--- /dev/null
+++ b/2.0/containers.data/CCTrie/module-type-ORDERED/index.html
@@ -0,0 +1,2 @@
+
+ORDERED (containers.data.CCTrie.ORDERED)
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/module-type-S/index.html b/2.0/containers.data/CCTrie/module-type-S/index.html
new file mode 100644
index 00000000..e9c3f55f
--- /dev/null
+++ b/2.0/containers.data/CCTrie/module-type-S/index.html
@@ -0,0 +1,11 @@
+
+S (containers.data.CCTrie.S)
longest_prefix k m finds the longest prefix of k that leads to
+at least one path in m (it does not mean that the prefix is bound to
+a value.
Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m
+will return "abc".
Since: 0.17
val update : key‑> ('a option ‑>'a option) ‑>'at‑>'at
Update the binding for the given key. The function is given
+None if the key is absent, or Some v if key is bound to v;
+if it returns None the key is removed, otherwise it
+returns Some y and key becomes bound to y.
All bindings whose key is smaller or equal to the given key,
+in decreasing order.
\ No newline at end of file
diff --git a/2.0/containers.data/CCTrie/module-type-WORD/index.html b/2.0/containers.data/CCTrie/module-type-WORD/index.html
new file mode 100644
index 00000000..2f9b256f
--- /dev/null
+++ b/2.0/containers.data/CCTrie/module-type-WORD/index.html
@@ -0,0 +1,2 @@
+
+WORD (containers.data.CCTrie.WORD)
\ No newline at end of file
diff --git a/2.0/containers.data/CCWBTree/.jbuilder-keep b/2.0/containers.data/CCWBTree/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCWBTree/Make/argument-1-X/index.html b/2.0/containers.data/CCWBTree/Make/argument-1-X/index.html
new file mode 100644
index 00000000..e31dd146
--- /dev/null
+++ b/2.0/containers.data/CCWBTree/Make/argument-1-X/index.html
@@ -0,0 +1,2 @@
+
+1-X (containers.data.CCWBTree.Make.1-X)
\ No newline at end of file
diff --git a/2.0/containers.data/CCWBTree/Make/index.html b/2.0/containers.data/CCWBTree/Make/index.html
new file mode 100644
index 00000000..5e4d6a35
--- /dev/null
+++ b/2.0/containers.data/CCWBTree/Make/index.html
@@ -0,0 +1,12 @@
+
+Make (containers.data.CCWBTree.Make)
val get_rank : key‑>'at‑> [ `At of int | `After of int | `First ]
get_rank k m looks for the rank of k in m, i.e. the index
+of k in the sorted list of bindings of m.
+let (`At n) = get_rank k m in nth_exn n m = get m k should hold.
split k t returns l, o, r where l is the part of the map
+with keys smaller than k, r has keys bigger than k,
+and o = Some v if k, v belonged to the map.
val merge : f:(key‑>'a option ‑>'b option ‑>'c option) ‑>'at‑>'bt‑>'ct
\ No newline at end of file
diff --git a/2.0/containers.data/CCWBTree/MakeFull/argument-1-X/index.html b/2.0/containers.data/CCWBTree/MakeFull/argument-1-X/index.html
new file mode 100644
index 00000000..708c2c23
--- /dev/null
+++ b/2.0/containers.data/CCWBTree/MakeFull/argument-1-X/index.html
@@ -0,0 +1,2 @@
+
+1-X (containers.data.CCWBTree.MakeFull.1-X)
\ No newline at end of file
diff --git a/2.0/containers.data/CCWBTree/MakeFull/index.html b/2.0/containers.data/CCWBTree/MakeFull/index.html
new file mode 100644
index 00000000..a74870e2
--- /dev/null
+++ b/2.0/containers.data/CCWBTree/MakeFull/index.html
@@ -0,0 +1,12 @@
+
+MakeFull (containers.data.CCWBTree.MakeFull)
val get_rank : key‑>'at‑> [ `At of int | `After of int | `First ]
get_rank k m looks for the rank of k in m, i.e. the index
+of k in the sorted list of bindings of m.
+let (`At n) = get_rank k m in nth_exn n m = get m k should hold.
split k t returns l, o, r where l is the part of the map
+with keys smaller than k, r has keys bigger than k,
+and o = Some v if k, v belonged to the map.
val merge : f:(key‑>'a option ‑>'b option ‑>'c option) ‑>'at‑>'bt‑>'ct
\ No newline at end of file
diff --git a/2.0/containers.data/CCWBTree/index.html b/2.0/containers.data/CCWBTree/index.html
new file mode 100644
index 00000000..361872d4
--- /dev/null
+++ b/2.0/containers.data/CCWBTree/index.html
@@ -0,0 +1,2 @@
+
+CCWBTree (containers.data.CCWBTree)
\ No newline at end of file
diff --git a/2.0/containers.data/CCWBTree/module-type-KEY/index.html b/2.0/containers.data/CCWBTree/module-type-KEY/index.html
new file mode 100644
index 00000000..3e1a6e17
--- /dev/null
+++ b/2.0/containers.data/CCWBTree/module-type-KEY/index.html
@@ -0,0 +1,2 @@
+
+KEY (containers.data.CCWBTree.KEY)
\ No newline at end of file
diff --git a/2.0/containers.data/CCWBTree/module-type-ORD/index.html b/2.0/containers.data/CCWBTree/module-type-ORD/index.html
new file mode 100644
index 00000000..0d379fa4
--- /dev/null
+++ b/2.0/containers.data/CCWBTree/module-type-ORD/index.html
@@ -0,0 +1,2 @@
+
+ORD (containers.data.CCWBTree.ORD)
\ No newline at end of file
diff --git a/2.0/containers.data/CCWBTree/module-type-S/index.html b/2.0/containers.data/CCWBTree/module-type-S/index.html
new file mode 100644
index 00000000..9f4eaa8a
--- /dev/null
+++ b/2.0/containers.data/CCWBTree/module-type-S/index.html
@@ -0,0 +1,12 @@
+
+S (containers.data.CCWBTree.S)
val get_rank : key‑>'at‑> [ `At of int | `After of int | `First ]
get_rank k m looks for the rank of k in m, i.e. the index
+of k in the sorted list of bindings of m.
+let (`At n) = get_rank k m in nth_exn n m = get m k should hold.
split k t returns l, o, r where l is the part of the map
+with keys smaller than k, r has keys bigger than k,
+and o = Some v if k, v belonged to the map.
val merge : f:(key‑>'a option ‑>'b option ‑>'c option) ‑>'at‑>'bt‑>'ct
\ No newline at end of file
diff --git a/2.0/containers.data/CCZipper/.jbuilder-keep b/2.0/containers.data/CCZipper/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.data/CCZipper/index.html b/2.0/containers.data/CCZipper/index.html
new file mode 100644
index 00000000..bb1329f0
--- /dev/null
+++ b/2.0/containers.data/CCZipper/index.html
@@ -0,0 +1,11 @@
+
+CCZipper (containers.data.CCZipper)
ModuleCCZipper
List Zipper
Since: 1.0
type 'a t = 'a list * 'a list
The pair l, r represents the list List.rev_append l r, but
+with the focus on r.
Drop every element on the "right" (calling right then will do nothing),
+including the focused element if it is present.
\ No newline at end of file
diff --git a/2.0/containers.data/index.html b/2.0/containers.data/index.html
new file mode 100644
index 00000000..107e18ff
--- /dev/null
+++ b/2.0/containers.data/index.html
@@ -0,0 +1,3 @@
+
+containers_data-generated (containers.data.containers_data-generated)
Library containers.data
+This library exposes the following toplevel modules:
\ No newline at end of file
diff --git a/2.0/containers.iter/CCKList/.jbuilder-keep b/2.0/containers.iter/CCKList/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.iter/CCKList/Infix/index.html b/2.0/containers.iter/CCKList/Infix/index.html
new file mode 100644
index 00000000..45dfb5e1
--- /dev/null
+++ b/2.0/containers.iter/CCKList/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.iter.CCKList.Infix)
\ No newline at end of file
diff --git a/2.0/containers.iter/CCKList/Traverse/argument-1-M/index.html b/2.0/containers.iter/CCKList/Traverse/argument-1-M/index.html
new file mode 100644
index 00000000..791fe65e
--- /dev/null
+++ b/2.0/containers.iter/CCKList/Traverse/argument-1-M/index.html
@@ -0,0 +1,2 @@
+
+1-M (containers.iter.CCKList.Traverse.1-M)
\ No newline at end of file
diff --git a/2.0/containers.iter/CCKList/Traverse/index.html b/2.0/containers.iter/CCKList/Traverse/index.html
new file mode 100644
index 00000000..e466f737
--- /dev/null
+++ b/2.0/containers.iter/CCKList/Traverse/index.html
@@ -0,0 +1,2 @@
+
+Traverse (containers.iter.CCKList.Traverse)
\ No newline at end of file
diff --git a/2.0/containers.iter/CCKList/index.html b/2.0/containers.iter/CCKList/index.html
new file mode 100644
index 00000000..82ec5c6c
--- /dev/null
+++ b/2.0/containers.iter/CCKList/index.html
@@ -0,0 +1,16 @@
+
+CCKList (containers.iter.CCKList)
uniq eq l returns l but removes consecutive duplicates. Lazy.
+In other words, if several values that are equal follow one another,
+only the first of them is kept.
Print the list with the given separator (default ",").
+Does not print opening/closing delimiters.
\ No newline at end of file
diff --git a/2.0/containers.iter/CCKList/module-type-MONAD/index.html b/2.0/containers.iter/CCKList/module-type-MONAD/index.html
new file mode 100644
index 00000000..700bb5df
--- /dev/null
+++ b/2.0/containers.iter/CCKList/module-type-MONAD/index.html
@@ -0,0 +1,2 @@
+
+MONAD (containers.iter.CCKList.MONAD)
\ No newline at end of file
diff --git a/2.0/containers.iter/CCKTree/.jbuilder-keep b/2.0/containers.iter/CCKTree/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.iter/CCKTree/Dot/index.html b/2.0/containers.iter/CCKTree/Dot/index.html
new file mode 100644
index 00000000..145d7b73
--- /dev/null
+++ b/2.0/containers.iter/CCKTree/Dot/index.html
@@ -0,0 +1,4 @@
+
+Dot (containers.iter.CCKTree.Dot)
print_to_file filename g prints g into a file whose name
+is filename.
Since: 0.6.1
val to_file : ?name:string ‑> string ‑>attribute list t list ‑> unit
to_file filename trees makes a graph out of the trees, opens the
+file filename and prints the graph into the file.
Parametername: name of the graph.
Since: 0.6.1
\ No newline at end of file
diff --git a/2.0/containers.iter/CCKTree/class-type-pset/index.html b/2.0/containers.iter/CCKTree/class-type-pset/index.html
new file mode 100644
index 00000000..63f80230
--- /dev/null
+++ b/2.0/containers.iter/CCKTree/class-type-pset/index.html
@@ -0,0 +1,2 @@
+
+pset (containers.iter.CCKTree.pset)
\ No newline at end of file
diff --git a/2.0/containers.iter/CCKTree/index.html b/2.0/containers.iter/CCKTree/index.html
new file mode 100644
index 00000000..aa1279f8
--- /dev/null
+++ b/2.0/containers.iter/CCKTree/index.html
@@ -0,0 +1,22 @@
+
+CCKTree (containers.iter.CCKTree)
ModuleCCKTree
Lazy Tree Structure
+This structure can be used to represent trees and directed
+graphs (as infinite trees) in a lazy fashion. Like CCKList, it
+is a structural type.
type 'a sequence = ('a‑> unit) ‑> unit
type 'a gen = unit ‑>'a option
type 'a klist = unit ‑> [ `Nil | `Cons of 'a * 'aklist ]
type 'a printer = Format.formatter ‑>'a‑> unit
Basics
type +'a t = unit ‑> [ `Nil | `Node of 'a * 'at list ]
val force : 'at‑> [ `Nil | `Node of 'a * 'b list ] as b
force t evaluates t completely and returns a regular tree
+structure.
Since: 0.13
val find : pset:'apset‑> ('a‑>'b option) ‑>'at‑>'b option
Look for an element that maps to Some _.
Pretty-printing
Example (tree of calls for naive Fibonacci function):
+
let mk_fib n =
+ let rec fib' l r i =
+ if i=n then r else fib' r (l+r) (i+1)
+ in fib' 1 1 1;;
+
+ let rec fib n = match n with
+ | 0 | 1 -> CCKTree.singleton (`Cst n)
+ | _ -> CCKTree.node2 (`Plus (mk_fib n)) (fib (n-1)) (fib (n-2));;
+
+ let pp_node fmt = function
+ | `Cst n -> Format.fprintf fmt "%d" n
+ | `Plus n -> Format.fprintf fmt "%d" n;;
+
+ Format.printf "%a@." (CCKTree.print pp_node) (fib 8);;
\ No newline at end of file
diff --git a/2.0/containers.iter/CCLazy_list/.jbuilder-keep b/2.0/containers.iter/CCLazy_list/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.iter/CCLazy_list/Infix/index.html b/2.0/containers.iter/CCLazy_list/Infix/index.html
new file mode 100644
index 00000000..49af966d
--- /dev/null
+++ b/2.0/containers.iter/CCLazy_list/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.iter.CCLazy_list.Infix)
\ No newline at end of file
diff --git a/2.0/containers.iter/CCLazy_list/index.html b/2.0/containers.iter/CCLazy_list/index.html
new file mode 100644
index 00000000..b8340dba
--- /dev/null
+++ b/2.0/containers.iter/CCLazy_list/index.html
@@ -0,0 +1,3 @@
+
+CCLazy_list (containers.iter.CCLazy_list)
\ No newline at end of file
diff --git a/2.0/containers.iter/index.html b/2.0/containers.iter/index.html
new file mode 100644
index 00000000..518390cf
--- /dev/null
+++ b/2.0/containers.iter/index.html
@@ -0,0 +1,3 @@
+
+containers_iter-generated (containers.iter.containers_iter-generated)
Library containers.iter
+This library exposes the following toplevel modules:
\ No newline at end of file
diff --git a/2.0/containers.monomorphic/CCMonomorphic/.jbuilder-keep b/2.0/containers.monomorphic/CCMonomorphic/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.monomorphic/CCMonomorphic/index.html b/2.0/containers.monomorphic/CCMonomorphic/index.html
new file mode 100644
index 00000000..6667eccc
--- /dev/null
+++ b/2.0/containers.monomorphic/CCMonomorphic/index.html
@@ -0,0 +1,2 @@
+
+CCMonomorphic (containers.monomorphic.CCMonomorphic)
ModuleCCMonomorphic
Shadow unsafe functions and operators from Pervasives
Since: 2.0
val (=) : int ‑> int ‑> bool
val (<>) : int ‑> int ‑> bool
val (<) : int ‑> int ‑> bool
val (>) : int ‑> int ‑> bool
val (<=) : int ‑> int ‑> bool
val (>=) : int ‑> int ‑> bool
val compare : int ‑> int ‑> int
val min : int ‑> int ‑> int
val max : int ‑> int ‑> int
val (==) : [ `Consider_using_CCEqual_physical ]
Deprecated Please use CCEqual.physical or Pervasives.(==) instead.
\ No newline at end of file
diff --git a/2.0/containers.monomorphic/index.html b/2.0/containers.monomorphic/index.html
new file mode 100644
index 00000000..191d4a32
--- /dev/null
+++ b/2.0/containers.monomorphic/index.html
@@ -0,0 +1,3 @@
+
+containers_monomorphic-generated (containers.monomorphic.containers_monomorphic-generated)
Library containers.monomorphic
+This library exposes the following toplevel modules:
\ No newline at end of file
diff --git a/2.0/containers.sexp/CCSexp/.jbuilder-keep b/2.0/containers.sexp/CCSexp/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.sexp/CCSexp/Decoder/index.html b/2.0/containers.sexp/CCSexp/Decoder/index.html
new file mode 100644
index 00000000..6a8a2937
--- /dev/null
+++ b/2.0/containers.sexp/CCSexp/Decoder/index.html
@@ -0,0 +1,3 @@
+
+Decoder (containers.sexp.CCSexp.Decoder)
Parse the next S-expression or return an error if the input isn't
+long enough or isn't a proper S-expression.
\ No newline at end of file
diff --git a/2.0/containers.sexp/CCSexp/index.html b/2.0/containers.sexp/CCSexp/index.html
new file mode 100644
index 00000000..46e2b5fa
--- /dev/null
+++ b/2.0/containers.sexp/CCSexp/index.html
@@ -0,0 +1,8 @@
+
+CCSexp (containers.sexp.CCSexp)
val parse_chan : Pervasives.in_channel ‑>tor_error
Parse a S-expression from the given channel. Can read more data than
+necessary, so don't use this if you need finer-grained control (e.g.
+to read something else after the S-exp).
val parse_chan_gen : Pervasives.in_channel ‑>tor_errorgen
Parse a channel into a generator of S-expressions.
val parse_chan_list : Pervasives.in_channel ‑>t list or_error
\ No newline at end of file
diff --git a/2.0/containers.sexp/CCSexp_lex/.jbuilder-keep b/2.0/containers.sexp/CCSexp_lex/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.sexp/CCSexp_lex/index.html b/2.0/containers.sexp/CCSexp_lex/index.html
new file mode 100644
index 00000000..ae2b6348
--- /dev/null
+++ b/2.0/containers.sexp/CCSexp_lex/index.html
@@ -0,0 +1,2 @@
+
+CCSexp_lex (containers.sexp.CCSexp_lex)
ModuleCCSexp_lex
type token =
| ATOM of string
| LIST_OPEN
| LIST_CLOSE
| EOI
exception Error of int * int * string
val error : Lexing.lexbuf ‑> string ‑>'a
type unescape_state =
| Not_escaped
| Escaped
| Escaped_int_1 of int
| Escaped_int_2 of int
val char_equal : char ‑> char ‑> bool
val remove_quotes : Lexing.lexbuf ‑> string ‑> string
val __ocaml_lex_token_rec : Lexing.lexbuf ‑> int ‑>token
\ No newline at end of file
diff --git a/2.0/containers.sexp/index.html b/2.0/containers.sexp/index.html
new file mode 100644
index 00000000..844363e6
--- /dev/null
+++ b/2.0/containers.sexp/index.html
@@ -0,0 +1,3 @@
+
+containers_sexp-generated (containers.sexp.containers_sexp-generated)
Library containers.sexp
+This library exposes the following toplevel modules:
\ No newline at end of file
diff --git a/2.0/containers.thread/CCBlockingQueue/.jbuilder-keep b/2.0/containers.thread/CCBlockingQueue/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.thread/CCBlockingQueue/index.html b/2.0/containers.thread/CCBlockingQueue/index.html
new file mode 100644
index 00000000..f2d80da4
--- /dev/null
+++ b/2.0/containers.thread/CCBlockingQueue/index.html
@@ -0,0 +1,9 @@
+
+CCBlockingQueue (containers.thread.CCBlockingQueue)
ModuleCCBlockingQueue
Blocking Queue
This queue has a limited size. Pushing a value on the queue when it
+is full will block.
Create a new queue of size n. Using n=max_int amounts to using
+an infinite queue (2^61 items is a lot to fit in memory); using n=1
+amounts to using a box with 0 or 1 elements inside.
\ No newline at end of file
diff --git a/2.0/containers.thread/CCLock/.jbuilder-keep b/2.0/containers.thread/CCLock/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.thread/CCLock/LockRef/index.html b/2.0/containers.thread/CCLock/LockRef/index.html
new file mode 100644
index 00000000..8fc800dd
--- /dev/null
+++ b/2.0/containers.thread/CCLock/LockRef/index.html
@@ -0,0 +1,2 @@
+
+LockRef (containers.thread.CCLock.LockRef)
ModuleCCLock.LockRef
Type allowing to manipulate the lock as a reference
\ No newline at end of file
diff --git a/2.0/containers.thread/CCLock/index.html b/2.0/containers.thread/CCLock/index.html
new file mode 100644
index 00000000..cfcf647b
--- /dev/null
+++ b/2.0/containers.thread/CCLock/index.html
@@ -0,0 +1,10 @@
+
+CCLock (containers.thread.CCLock)
with_lock l f runs f x where x is the value protected with
+the lock l, in a critical section. If f x fails, with_lock l f
+fails too but the lock is released.
try_with_lock l f runs f x in a critical section if l is not
+locked. x is the value protected by the lock l. If f x
+fails, try_with_lock l f fails too but the lock is released.
Type allowing to manipulate the lock as a reference
val with_lock_as_ref : 'at‑> f:('aLockRef.t‑>'b) ‑>'b
with_lock_as_ref l f calls f with a reference-like object
+that allows to manipulate the value of l safely.
+The object passed to f must not escape the function call.
get_then_clear b sets b to false, and returns the old value.
Since: 0.16
\ No newline at end of file
diff --git a/2.0/containers.thread/CCPool/.jbuilder-keep b/2.0/containers.thread/CCPool/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.thread/CCPool/Make/Fut/Infix/index.html b/2.0/containers.thread/CCPool/Make/Fut/Infix/index.html
new file mode 100644
index 00000000..30f43a14
--- /dev/null
+++ b/2.0/containers.thread/CCPool/Make/Fut/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.thread.CCPool.Make.Fut.Infix)
\ No newline at end of file
diff --git a/2.0/containers.thread/CCPool/Make/Fut/index.html b/2.0/containers.thread/CCPool/Make/Fut/index.html
new file mode 100644
index 00000000..3f6b305e
--- /dev/null
+++ b/2.0/containers.thread/CCPool/Make/Fut/index.html
@@ -0,0 +1,22 @@
+
+Fut (containers.thread.CCPool.Make.Fut)
ModuleCCPool.Make.Fut
Futures
The futures are registration points for callbacks, storing a state,
+that are executed in the pool using run.
Blocking get: wait for the future to be evaluated, and get the value,
+or the exception that failed the future is returned.
+raise e if the future failed with e.
Attach a handler to be called upon success.
+The handler should not call functions on the future.
+Might be evaluated now if the future is already done.
Attach a handler to be called upon failure.
+The handler should not call any function on the future.
+Might be evaluated now if the future is already done.
Attach a handler to be called when the future is evaluated.
+The handler should not call functions on the future.
+Might be evaluated now if the future is already done.
\ No newline at end of file
diff --git a/2.0/containers.thread/CCPool/Make/argument-1-P/index.html b/2.0/containers.thread/CCPool/Make/argument-1-P/index.html
new file mode 100644
index 00000000..98a72428
--- /dev/null
+++ b/2.0/containers.thread/CCPool/Make/argument-1-P/index.html
@@ -0,0 +1,2 @@
+
+1-P (containers.thread.CCPool.Make.1-P)
ParameterCCPool.Make.1-P
val max_size : int
Maximum number of threads in the pool.
\ No newline at end of file
diff --git a/2.0/containers.thread/CCPool/Make/index.html b/2.0/containers.thread/CCPool/Make/index.html
new file mode 100644
index 00000000..27c85347
--- /dev/null
+++ b/2.0/containers.thread/CCPool/Make/index.html
@@ -0,0 +1,3 @@
+
+Make (containers.thread.CCPool.Make)
\ No newline at end of file
diff --git a/2.0/containers.thread/CCPool/index.html b/2.0/containers.thread/CCPool/index.html
new file mode 100644
index 00000000..4f73775d
--- /dev/null
+++ b/2.0/containers.thread/CCPool/index.html
@@ -0,0 +1,2 @@
+
+CCPool (containers.thread.CCPool)
\ No newline at end of file
diff --git a/2.0/containers.thread/CCPool/module-type-PARAM/index.html b/2.0/containers.thread/CCPool/module-type-PARAM/index.html
new file mode 100644
index 00000000..d1ceb97a
--- /dev/null
+++ b/2.0/containers.thread/CCPool/module-type-PARAM/index.html
@@ -0,0 +1,2 @@
+
+PARAM (containers.thread.CCPool.PARAM)
Module typeCCPool.PARAM
val max_size : int
Maximum number of threads in the pool.
\ No newline at end of file
diff --git a/2.0/containers.thread/CCSemaphore/.jbuilder-keep b/2.0/containers.thread/CCSemaphore/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.thread/CCSemaphore/index.html b/2.0/containers.thread/CCSemaphore/index.html
new file mode 100644
index 00000000..dfe11acb
--- /dev/null
+++ b/2.0/containers.thread/CCSemaphore/index.html
@@ -0,0 +1,6 @@
+
+CCSemaphore (containers.thread.CCSemaphore)
with_acquire ~n s ~f first acquires s with n units,
+calls f (), and then releases s with n units.
+Safely release the semaphore even if f () fails.
val wait_until_at_least : n:int ‑>t‑> f:(unit ‑>'a) ‑>'a
wait_until_at_least ~n s ~f waits until get s >= n, then calls f ()
+and returns its result. Doesn't modify the semaphore.
\ No newline at end of file
diff --git a/2.0/containers.thread/CCThread/.jbuilder-keep b/2.0/containers.thread/CCThread/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.thread/CCThread/Arr/index.html b/2.0/containers.thread/CCThread/Arr/index.html
new file mode 100644
index 00000000..8e8a3a33
--- /dev/null
+++ b/2.0/containers.thread/CCThread/Arr/index.html
@@ -0,0 +1,3 @@
+
+Arr (containers.thread.CCThread.Arr)
\ No newline at end of file
diff --git a/2.0/containers.thread/CCThread/Barrier/index.html b/2.0/containers.thread/CCThread/Barrier/index.html
new file mode 100644
index 00000000..5c8077d6
--- /dev/null
+++ b/2.0/containers.thread/CCThread/Barrier/index.html
@@ -0,0 +1,6 @@
+
+Barrier (containers.thread.CCThread.Barrier)
wait b waits for barrier b to be activated by activate b.
+All threads calling this wait until activate b is called.
+If b is already activated, wait b does nothing.
activated b returns true iff activate b was called, and reset b
+was not called since. In other words, activated b = true means
+wait b will not block.
\ No newline at end of file
diff --git a/2.0/containers.thread/CCThread/index.html b/2.0/containers.thread/CCThread/index.html
new file mode 100644
index 00000000..1b8a1dbe
--- /dev/null
+++ b/2.0/containers.thread/CCThread/index.html
@@ -0,0 +1,2 @@
+
+CCThread (containers.thread.CCThread)
\ No newline at end of file
diff --git a/2.0/containers.thread/CCTimer/.jbuilder-keep b/2.0/containers.thread/CCTimer/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.thread/CCTimer/index.html b/2.0/containers.thread/CCTimer/index.html
new file mode 100644
index 00000000..96891d3f
--- /dev/null
+++ b/2.0/containers.thread/CCTimer/index.html
@@ -0,0 +1,6 @@
+
+CCTimer (containers.thread.CCTimer)
ModuleCCTimer
Event timer
Used to be part of CCFuture
Since: 0.16
type t
A scheduler for events. It runs in its own thread.
\ No newline at end of file
diff --git a/2.0/containers.thread/index.html b/2.0/containers.thread/index.html
new file mode 100644
index 00000000..0ee900b0
--- /dev/null
+++ b/2.0/containers.thread/index.html
@@ -0,0 +1,3 @@
+
+containers_thread-generated (containers.thread.containers_thread-generated)
Library containers.thread
+This library exposes the following toplevel modules:
\ No newline at end of file
diff --git a/2.0/containers.top/Containers_top/.jbuilder-keep b/2.0/containers.top/Containers_top/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.top/Containers_top/index.html b/2.0/containers.top/Containers_top/index.html
new file mode 100644
index 00000000..e6c24d1b
--- /dev/null
+++ b/2.0/containers.top/Containers_top/index.html
@@ -0,0 +1,2 @@
+
+Containers_top (containers.top.Containers_top)
ModuleContainers_top
type 'a printer = Format.formatter ‑>'a‑> unit
val eval_exn : string ‑> bool
val install_printer : string ‑> unit
val install_printers : string list ‑> unit
\ No newline at end of file
diff --git a/2.0/containers.top/index.html b/2.0/containers.top/index.html
new file mode 100644
index 00000000..8db20a51
--- /dev/null
+++ b/2.0/containers.top/index.html
@@ -0,0 +1,3 @@
+
+containers_top-generated (containers.top.containers_top-generated)
Library containers.top
+This library exposes the following toplevel modules:
\ No newline at end of file
diff --git a/2.0/containers.unix/CCUnix/.jbuilder-keep b/2.0/containers.unix/CCUnix/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers.unix/CCUnix/Infix/index.html b/2.0/containers.unix/CCUnix/Infix/index.html
new file mode 100644
index 00000000..f990dc03
--- /dev/null
+++ b/2.0/containers.unix/CCUnix/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.unix.CCUnix.Infix)
ModuleCCUnix.Infix
val (?|) : ('a, Buffer.t, unit, call_result) Pervasives.format4 ‑>'a
\ No newline at end of file
diff --git a/2.0/containers.unix/CCUnix/index.html b/2.0/containers.unix/CCUnix/index.html
new file mode 100644
index 00000000..c901d5b9
--- /dev/null
+++ b/2.0/containers.unix/CCUnix/index.html
@@ -0,0 +1,18 @@
+
+CCUnix (containers.unix.CCUnix)
ModuleCCUnix
High-level Functions on top of Unix
Some useful functions built on top of Unix.
status: unstable
Since: 0.10
type 'a or_error = ('a, string) Result.result
type 'a gen = unit ‑>'a option
Calling Commands
val escape_str : string ‑> string
Escape a string so it can be a shell argument.
type call_result = < stdout : string; stderr : string; status : Unix.process_status; errcode : int; >
val call_full : ?bufsize:int ‑> ?stdin:[ `Gen of string gen | `Str of string ] ‑> ?env:string array ‑> ('a, Buffer.t, unit, call_result) Pervasives.format4 ‑>'a
call_full cmd wraps the result of Unix.open_process_full cmd into an
+object. It reads the full stdout and stderr of the subprocess before
+returning.
Parameterstdin: if provided, the generator or string is consumed and fed to
+the subprocess input channel, which is then closed.
Parameterbufsize: buffer size used to read stdout and stderr.
Parameterenv: environment to run the command in.
val call : ?bufsize:int ‑> ?stdin:[ `Gen of string gen | `Str of string ] ‑> ?env:string array ‑> ('a, Buffer.t, unit, string * string * int) Pervasives.format4 ‑>'a
call cmd is similar to call_full cmd but returns
+a tuple stdout, stderr, errcode instead of an object.
val call_stdout : ?bufsize:int ‑> ?stdin:[ `Gen of string gen | `Str of string ] ‑> ?env:string array ‑> ('a, Buffer.t, unit, string) Pervasives.format4 ‑>'a
A subprocess for interactive usage (read/write channels line by line)
Since: 0.11
val async_call : ?env:string array ‑> ('a, Buffer.t, unit, async_call_result) Pervasives.format4 ‑>'a
Spawns a subprocess, like call, but the subprocess's channels are
+line generators and line sinks (for stdin).
+If p is async_call "cmd", then p#wait waits for the subprocess
+to die. Channels can be closed independently.
Since: 0.11
Accessors
Since: 0.11
val stdout : < stdout : 'a; .. > ‑>'a
val stderr : < stderr : 'a; .. > ‑>'a
val status : < status : 'a; .. > ‑>'a
val errcode : < errcode : 'a; .. > ‑>'a
Simple IO
val with_in : ?mode:int ‑> ?flags:Unix.open_flag list ‑> string ‑> f:(Pervasives.in_channel ‑>'a) ‑>'a
Open an input file with the given optional flag list, calls the function
+on the input channel. When the function raises or returns, the
+channel is closed.
Parameterflags: opening flags. Unix.O_RDONLY is used in any cases.
Since: 0.16
val with_out : ?mode:int ‑> ?flags:Unix.open_flag list ‑> string ‑> f:(Pervasives.out_channel ‑>'a) ‑>'a
val with_process_out : string ‑> f:(Pervasives.out_channel ‑>'a) ‑>'a
Open a subprocess and obtain a handle to its stdin.
Since: 0.16
type process_full = < stdin : Pervasives.out_channel; stdout : Pervasives.in_channel; stderr : Pervasives.in_channel; close : Unix.process_status; >
Handle to a subprocess.
Since: 0.16
val with_process_full : ?env:string array ‑> string ‑> f:(process_full‑>'a) ‑>'a
Open a subprocess and obtain a handle to its channels.
Parameterenv: environment to pass to the subprocess.
Since: 0.16
val with_connection : Unix.sockaddr ‑> f:(Pervasives.in_channel ‑> Pervasives.out_channel ‑>'a) ‑>'a
Wrap Unix.open_connection with a handler.
Since: 0.16
exception ExitServer
val establish_server : Unix.sockaddr ‑> f:(Pervasives.in_channel ‑> Pervasives.out_channel ‑>_) ‑> unit
Listen on the address and calls the handler in a blocking fashion.
+Using Thread is recommended if handlers might take time.
+The callback should raise ExitServer to stop the loop.
with_file_lock ~kind filename f puts a lock on the offset 0
+of the file named filename, calls f and returns its result after
+the file is unlocked. If f () raises an exception the exception is
+re-raised after the file is unlocked.
Parameterkind: specifies whether the lock is read-only or read-write.
\ No newline at end of file
diff --git a/2.0/containers.unix/index.html b/2.0/containers.unix/index.html
new file mode 100644
index 00000000..b1620616
--- /dev/null
+++ b/2.0/containers.unix/index.html
@@ -0,0 +1,3 @@
+
+containers_unix-generated (containers.unix.containers_unix-generated)
Library containers.unix
+This library exposes the following toplevel modules:
\ No newline at end of file
diff --git a/2.0/containers/CCArray/.jbuilder-keep b/2.0/containers/CCArray/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCArray/index.html b/2.0/containers/CCArray/index.html
new file mode 100644
index 00000000..c156b693
--- /dev/null
+++ b/2.0/containers/CCArray/index.html
@@ -0,0 +1,50 @@
+
+CCArray (containers.CCArray)
ModuleCCArray
Array utils
type 'a sequence = ('a‑> unit) ‑> unit
type 'a klist = unit ‑> [ `Nil | `Cons of 'a * 'aklist ]
type 'a gen = unit ‑>'a option
type 'a equal = 'a‑>'a‑> bool
type 'a ord = 'a‑>'a‑> int
type 'a random_gen = Random.State.t ‑>'a
type 'a printer = Format.formatter ‑>'a‑> unit
Arrays
include module type of Array
external length : 'a array ‑> int = "%array_length"
external get : 'a array ‑> int ‑>'a = "%array_safe_get"
external set : 'a array ‑> int ‑>'a‑> unit = "%array_safe_set"
external make : int ‑>'a‑>'a array = "caml_make_vect"
external create : int ‑>'a‑>'a array = "caml_make_vect"
Deprecated Use Array.make instead.
external create_float : int ‑> float array = "caml_make_float_vect"
val make_float : int ‑> float array
Deprecated Use Array.create_float instead.
val init : int ‑> (int ‑>'a) ‑>'a array
val make_matrix : int ‑> int ‑>'a‑>'a array array
val create_matrix : int ‑> int ‑>'a‑>'a array array
Deprecated Use Array.make_matrix instead.
val append : 'a array ‑>'a array ‑>'a array
val concat : 'a array list ‑>'a array
val sub : 'a array ‑> int ‑> int ‑>'a array
val copy : 'a array ‑>'a array
val fill : 'a array ‑> int ‑> int ‑>'a‑> unit
val blit : 'a array ‑> int ‑>'a array ‑> int ‑> int ‑> unit
val to_list : 'a array ‑>'a list
val of_list : 'a list ‑>'a array
val iter : ('a‑> unit) ‑>'a array ‑> unit
val iteri : (int ‑>'a‑> unit) ‑>'a array ‑> unit
val map : ('a‑>'b) ‑>'a array ‑>'b array
val mapi : (int ‑>'a‑>'b) ‑>'a array ‑>'b array
val fold_left : ('a‑>'b‑>'a) ‑>'a‑>'b array ‑>'a
val fold_right : ('b‑>'a‑>'a) ‑>'b array ‑>'a‑>'a
val iter2 : ('a‑>'b‑> unit) ‑>'a array ‑>'b array ‑> unit
val map2 : ('a‑>'b‑>'c) ‑>'a array ‑>'b array ‑>'c array
val for_all : ('a‑> bool) ‑>'a array ‑> bool
val exists : ('a‑> bool) ‑>'a array ‑> bool
val mem : 'a‑>'a array ‑> bool
val memq : 'a‑>'a array ‑> bool
val sort : ('a‑>'a‑> int) ‑>'a array ‑> unit
val stable_sort : ('a‑>'a‑> int) ‑>'a array ‑> unit
val fast_sort : ('a‑>'a‑> int) ‑>'a array ‑> unit
external unsafe_get : 'a array ‑> int ‑>'a = "%array_unsafe_get"
external unsafe_set : 'a array ‑> int ‑>'a‑> unit = "%array_unsafe_set"
get a n returns the element number n of array a.
+The first element has number 0.
+The last element has number length a - 1.
+You can also write a.(n) instead of get a n.
Raise Invalid_argument "index out of bounds"
+if n is outside the range 0 to (length a - 1).
blit v1 o1 v2 o2 len copies len elements
+from array v1, starting at element number o1, to array v2,
+starting at element number o2. It works correctly even if
+v1 and v2 are the same array, and the source and
+destination chunks overlap.
Raise Invalid_argument "Array.blit" if o1 and len do not
+designate a valid subarray of v1, or if o2 and len do not
+designate a valid subarray of v2.
sorted cmp a makes a copy of a and sorts it with cmp.
Since: 1.0
val sort_indices : ('a‑>'a‑> int) ‑>'at‑> int array
sort_indices cmp a returns a new array b, with the same length as a,
+such that b.(i) is the index at which the i-th element of sorted cmp a
+appears in a. a is not modified.
In other words, map (fun i -> a.(i)) (sort_indices cmp a) = sorted cmp a.
+sort_indices yields the inverse permutation of sort_ranking.
Since: 1.0
val sort_ranking : ('a‑>'a‑> int) ‑>'at‑> int array
sort_ranking cmp a returns a new array b, with the same length as a,
+such that b.(i) is the index at which the i-the element of a appears
+in sorted cmp a. a is not modified.
In other words, map (fun i -> (sorted cmp a).(i)) (sort_ranking cmp a) = a.
+sort_ranking yields the inverse permutation of sort_indices.
In the absence of duplicate elements in a, we also have
+lookup_exn a.(i) (sorted a) = (sorted_ranking a).(i).
val bsearch : cmp:('a‑>'a‑> int) ‑>'a‑>'at‑> [ `All_lower | `All_bigger | `Just_after of int | `Empty | `At of int ]
bsearch ?cmp x arr finds the index of the object x in the array arr,
+provided arr is sorted using cmp. If the array is not sorted,
+the result is not specified (may raise Invalid_argument).
Complexity: O(log n) where n is the length of the array
+(dichotomic search).
Returns
`At i if cmp arr.(i) x = 0 (for some i)
`All_lower if all elements of arr are lower than x
`All_bigger if all elements of arr are bigger than x
`Just_after i if arr.(i) < x < arr.(i+1)
`Empty if the array is empty.
RaisesInvalid_argument: if the array is found to be unsorted w.r.t cmp.
exists p [|a1; ...; an|] checks if at least one element of
+the array satisfies the predicate p. That is, it returns
+(p a1) || (p a2) || ... || (p an).
map f a applies function f to all the elements of a,
+and builds an array with the results returned by f:
+[| f a.(0); f a.(1); ...; f a.(length a - 1) |].
map2 f a b applies function f to all the elements of a and b,
+and builds an array with the results returned by f:
+[| f a.(0) b.(0); ...; f a.(length a - 1) b.(length b - 1)|].
RaisesInvalid_argument: if they have distinct lengths.
val sort_generic : (module MONO_ARRAYwithtype elt='elt and type t='arr) ‑> cmp:('elt‑>'elt‑> int) ‑>'arr‑> unit
Sort the array, without allocating (eats stack space though). Performance
+might be lower than Array.sort.
Since: 0.14
\ No newline at end of file
diff --git a/2.0/containers/CCArray/module-type-MONO_ARRAY/index.html b/2.0/containers/CCArray/module-type-MONO_ARRAY/index.html
new file mode 100644
index 00000000..81b820cf
--- /dev/null
+++ b/2.0/containers/CCArray/module-type-MONO_ARRAY/index.html
@@ -0,0 +1,2 @@
+
+MONO_ARRAY (containers.CCArray.MONO_ARRAY)
\ No newline at end of file
diff --git a/2.0/containers/CCArrayLabels/.jbuilder-keep b/2.0/containers/CCArrayLabels/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCArrayLabels/index.html b/2.0/containers/CCArrayLabels/index.html
new file mode 100644
index 00000000..98800f43
--- /dev/null
+++ b/2.0/containers/CCArrayLabels/index.html
@@ -0,0 +1,48 @@
+
+CCArrayLabels (containers.CCArrayLabels)
ModuleCCArrayLabels
Array utils
type 'a sequence = ('a‑> unit) ‑> unit
type 'a klist = unit ‑> [ `Nil | `Cons of 'a * 'aklist ]
type 'a gen = unit ‑>'a option
type 'a equal = 'a‑>'a‑> bool
type 'a ord = 'a‑>'a‑> int
type 'a random_gen = Random.State.t ‑>'a
type 'a printer = Format.formatter ‑>'a‑> unit
Arrays
include module type of ArrayLabels
external length : 'a array ‑> int = "%array_length"
external get : 'a array ‑> int ‑>'a = "%array_safe_get"
external set : 'a array ‑> int ‑>'a‑> unit = "%array_safe_set"
external make : int ‑>'a‑>'a array = "caml_make_vect"
external create : int ‑>'a‑>'a array = "caml_make_vect"
Deprecated Use Array.make instead.
val init : int ‑> f:(int ‑>'a) ‑>'a array
val make_matrix : dimx:int ‑> dimy:int ‑>'a‑>'a array array
val create_matrix : dimx:int ‑> dimy:int ‑>'a‑>'a array array
Deprecated Use Array.make_matrix instead.
val append : 'a array ‑>'a array ‑>'a array
val concat : 'a array list ‑>'a array
val sub : 'a array ‑> pos:int ‑> len:int ‑>'a array
val copy : 'a array ‑>'a array
val fill : 'a array ‑> pos:int ‑> len:int ‑>'a‑> unit
val blit : src:'a array ‑> src_pos:int ‑> dst:'a array ‑> dst_pos:int ‑> len:int ‑> unit
val to_list : 'a array ‑>'a list
val of_list : 'a list ‑>'a array
val iter : f:('a‑> unit) ‑>'a array ‑> unit
val map : f:('a‑>'b) ‑>'a array ‑>'b array
val iteri : f:(int ‑>'a‑> unit) ‑>'a array ‑> unit
val mapi : f:(int ‑>'a‑>'b) ‑>'a array ‑>'b array
val fold_left : f:('a‑>'b‑>'a) ‑> init:'a‑>'b array ‑>'a
val fold_right : f:('b‑>'a‑>'a) ‑>'b array ‑> init:'a‑>'a
val iter2 : f:('a‑>'b‑> unit) ‑>'a array ‑>'b array ‑> unit
val map2 : f:('a‑>'b‑>'c) ‑>'a array ‑>'b array ‑>'c array
val exists : f:('a‑> bool) ‑>'a array ‑> bool
val for_all : f:('a‑> bool) ‑>'a array ‑> bool
val mem : 'a‑> set:'a array ‑> bool
val memq : 'a‑> set:'a array ‑> bool
external create_float : int ‑> float array = "caml_make_float_vect"
val make_float : int ‑> float array
Deprecated Use Array.create_float instead.
val sort : cmp:('a‑>'a‑> int) ‑>'a array ‑> unit
val stable_sort : cmp:('a‑>'a‑> int) ‑>'a array ‑> unit
val fast_sort : cmp:('a‑>'a‑> int) ‑>'a array ‑> unit
external unsafe_get : 'a array ‑> int ‑>'a = "%array_unsafe_get"
external unsafe_set : 'a array ‑> int ‑>'a‑> unit = "%array_unsafe_set"
get a n returns the element number n of array a.
+The first element has number 0.
+The last element has number length a - 1.
+You can also write a.(n) instead of get a n.
Raise Invalid_argument "index out of bounds"
+if n is outside the range 0 to (length a - 1).
blit v1 o1 v2 o2 len copies len elements
+from array v1, starting at element number o1, to array v2,
+starting at element number o2. It works correctly even if
+v1 and v2 are the same array, and the source and
+destination chunks overlap.
Raise Invalid_argument "Array.blit" if o1 and len do not
+designate a valid subarray of v1, or if o2 and len do not
+designate a valid subarray of v2.
sorted cmp a makes a copy of a and sorts it with cmp.
Since: 1.0
val sort_indices : f:('a‑>'a‑> int) ‑>'at‑> int array
sort_indices cmp a returns a new array b, with the same length as a,
+such that b.(i) is the index at which the i-th element of sorted cmp a
+appears in a. a is not modified.
In other words, map (fun i -> a.(i)) (sort_indices cmp a) = sorted cmp a.
+sort_indices yields the inverse permutation of sort_ranking.
Since: 1.0
val sort_ranking : f:('a‑>'a‑> int) ‑>'at‑> int array
sort_ranking cmp a returns a new array b, with the same length as a,
+such that b.(i) is the index at which the i-the element of a appears
+in sorted cmp a. a is not modified.
In other words, map (fun i -> (sorted cmp a).(i)) (sort_ranking cmp a) = a.
+sort_ranking yields the inverse permutation of sort_indices.
In the absence of duplicate elements in a, we also have
+lookup_exn a.(i) (sorted a) = (sorted_ranking a).(i).
val bsearch : cmp:('a‑>'a‑> int) ‑> key:'a‑>'at‑> [ `All_lower | `All_bigger | `Just_after of int | `Empty | `At of int ]
bsearch ?cmp key arr finds the index of the object key in the array arr,
+provided arr is sorted using cmp. If the array is not sorted,
+the result is not specified (may raise Invalid_argument).
Complexity: O(log n) where n is the length of the array
+(dichotomic search).
Returns
`At i if cmp arr.(i) key = 0 (for some i)
`All_lower if all elements of arr are lower than key
`All_bigger if all elements of arr are bigger than key
`Just_after i if arr.(i) < key < arr.(i+1)
`Empty if the array is empty.
RaisesInvalid_argument: if the array is found to be unsorted w.r.t cmp.
exists p [|a1; ...; an|] checks if at least one element of
+the array satisfies the predicate p. That is, it returns
+(p a1) || (p a2) || ... || (p an).
map f a applies function f to all the elements of a,
+and builds an array with the results returned by f:
+[| f a.(0); f a.(1); ...; f a.(length a - 1) |].
map2 f a b applies function f to all the elements of a and b,
+and builds an array with the results returned by f:
+[| f a.(0) b.(0); ...; f a.(length a - 1) b.(length b - 1)|].
RaisesInvalid_argument: if they have distinct lengths.
val sort_generic : (module MONO_ARRAYwithtype elt='elt and type t='arr) ‑> cmp:('elt‑>'elt‑> int) ‑>'arr‑> unit
Sort the array, without allocating (eats stack space though). Performance
+might be lower than Array.sort.
Since: 0.14
\ No newline at end of file
diff --git a/2.0/containers/CCArrayLabels/module-type-MONO_ARRAY/index.html b/2.0/containers/CCArrayLabels/module-type-MONO_ARRAY/index.html
new file mode 100644
index 00000000..132c122c
--- /dev/null
+++ b/2.0/containers/CCArrayLabels/module-type-MONO_ARRAY/index.html
@@ -0,0 +1,2 @@
+
+MONO_ARRAY (containers.CCArrayLabels.MONO_ARRAY)
\ No newline at end of file
diff --git a/2.0/containers/CCArray_slice/.jbuilder-keep b/2.0/containers/CCArray_slice/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCArray_slice/index.html b/2.0/containers/CCArray_slice/index.html
new file mode 100644
index 00000000..4c514f9a
--- /dev/null
+++ b/2.0/containers/CCArray_slice/index.html
@@ -0,0 +1,42 @@
+
+CCArray_slice (containers.CCArray_slice)
ModuleCCArray_slice
Array Slice
type 'a sequence = ('a‑> unit) ‑> unit
type 'a klist = unit ‑> [ `Nil | `Cons of 'a * 'aklist ]
get a n returns the element number n of array a.
+The first element has number 0.
+The last element has number length a - 1.
+You can also write a.(n) instead of get a n.
Raise Invalid_argument "index out of bounds"
+if n is outside the range 0 to (length a - 1).
blit v1 o1 v2 o2 len copies len elements
+from array v1, starting at element number o1, to array v2,
+starting at element number o2. It works correctly even if
+v1 and v2 are the same array, and the source and
+destination chunks overlap.
Raise Invalid_argument "Array.blit" if o1 and len do not
+designate a valid subarray of v1, or if o2 and len do not
+designate a valid subarray of v2.
sorted cmp a makes a copy of a and sorts it with cmp.
Since: 1.0
val sort_indices : ('a‑>'a‑> int) ‑>'at‑> int array
sort_indices cmp a returns a new array b, with the same length as a,
+such that b.(i) is the index at which the i-th element of sorted cmp a
+appears in a. a is not modified.
In other words, map (fun i -> a.(i)) (sort_indices cmp a) = sorted cmp a.
+sort_indices yields the inverse permutation of sort_ranking.
Since: 1.0
val sort_ranking : ('a‑>'a‑> int) ‑>'at‑> int array
sort_ranking cmp a returns a new array b, with the same length as a,
+such that b.(i) is the index at which the i-the element of a appears
+in sorted cmp a. a is not modified.
In other words, map (fun i -> (sorted cmp a).(i)) (sort_ranking cmp a) = a.
+sort_ranking yields the inverse permutation of sort_indices.
In the absence of duplicate elements in a, we also have
+lookup_exn a.(i) (sorted a) = (sorted_ranking a).(i).
val bsearch : cmp:('a‑>'a‑> int) ‑>'a‑>'at‑> [ `All_lower | `All_bigger | `Just_after of int | `Empty | `At of int ]
bsearch ?cmp x arr finds the index of the object x in the array arr,
+provided arr is sorted using cmp. If the array is not sorted,
+the result is not specified (may raise Invalid_argument).
Complexity: O(log n) where n is the length of the array
+(dichotomic search).
Returns
`At i if cmp arr.(i) x = 0 (for some i)
`All_lower if all elements of arr are lower than x
`All_bigger if all elements of arr are bigger than x
`Just_after i if arr.(i) < x < arr.(i+1)
`Empty if the array is empty
RaisesInvalid_argument: if the array is found to be unsorted w.r.t cmp
exists p [|a1; ...; an|] checks if at least one element of
+the array satisfies the predicate p. That is, it returns
+(p a1) || (p a2) || ... || (p an).
Print an array, giving the printing function both index and item.
\ No newline at end of file
diff --git a/2.0/containers/CCBool/.jbuilder-keep b/2.0/containers/CCBool/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCBool/index.html b/2.0/containers/CCBool/index.html
new file mode 100644
index 00000000..a43d7198
--- /dev/null
+++ b/2.0/containers/CCBool/index.html
@@ -0,0 +1,2 @@
+
+CCBool (containers.CCBool)
\ No newline at end of file
diff --git a/2.0/containers/CCChar/.jbuilder-keep b/2.0/containers/CCChar/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCChar/index.html b/2.0/containers/CCChar/index.html
new file mode 100644
index 00000000..2c2c40e1
--- /dev/null
+++ b/2.0/containers/CCChar/index.html
@@ -0,0 +1,9 @@
+
+CCChar (containers.CCChar)
The comparison function for characters, with the same specification as
+Pervasives.compare. Along with the type t, this function compare
+allows the module Char to be passed as argument to the functors
+Set.Make and Map.Make.
\ No newline at end of file
diff --git a/2.0/containers/CCEqual/.jbuilder-keep b/2.0/containers/CCEqual/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCEqual/Infix/index.html b/2.0/containers/CCEqual/Infix/index.html
new file mode 100644
index 00000000..0eadc4f7
--- /dev/null
+++ b/2.0/containers/CCEqual/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.CCEqual.Infix)
\ No newline at end of file
diff --git a/2.0/containers/CCEqual/index.html b/2.0/containers/CCEqual/index.html
new file mode 100644
index 00000000..d33b321c
--- /dev/null
+++ b/2.0/containers/CCEqual/index.html
@@ -0,0 +1,7 @@
+
+CCEqual (containers.CCEqual)
ModuleCCEqual
Equality Combinators
Since: 1.2
type 'a t = 'a‑>'a‑> bool
Equality function. Must be transitive, symmetric, and reflexive.
map f eq is the equality function that, given objects x and y,
+projects x and y using f (e.g. using a record field) and then
+compares those projections with eq.
+Example:
+map fst int compares values of type (int * 'a) by their
+first component.
\ No newline at end of file
diff --git a/2.0/containers/CCFloat/.jbuilder-keep b/2.0/containers/CCFloat/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCFloat/Infix/index.html b/2.0/containers/CCFloat/Infix/index.html
new file mode 100644
index 00000000..11aacbb7
--- /dev/null
+++ b/2.0/containers/CCFloat/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.CCFloat.Infix)
\ No newline at end of file
diff --git a/2.0/containers/CCFloat/index.html b/2.0/containers/CCFloat/index.html
new file mode 100644
index 00000000..4db558f0
--- /dev/null
+++ b/2.0/containers/CCFloat/index.html
@@ -0,0 +1,5 @@
+
+CCFloat (containers.CCFloat)
\ No newline at end of file
diff --git a/2.0/containers/CCFormat/.jbuilder-keep b/2.0/containers/CCFormat/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCFormat/Dump/index.html b/2.0/containers/CCFormat/Dump/index.html
new file mode 100644
index 00000000..4e4116e9
--- /dev/null
+++ b/2.0/containers/CCFormat/Dump/index.html
@@ -0,0 +1,2 @@
+
+Dump (containers.CCFormat.Dump)
\ No newline at end of file
diff --git a/2.0/containers/CCFormat/index.html b/2.0/containers/CCFormat/index.html
new file mode 100644
index 00000000..21586267
--- /dev/null
+++ b/2.0/containers/CCFormat/index.html
@@ -0,0 +1,48 @@
+
+CCFormat (containers.CCFormat)
adds functions to support color tags to the given formatter.
Since: 0.15
val set_color_default : bool ‑> unit
set_color_default b enables color handling on the standard formatters
+(stdout, stderr) if b = true as well as on sprintf formatters;
+it disables the color handling if b = false.
val with_color_ksf : f:(string ‑>'b) ‑> string ‑> ('a, t, unit, 'b) Pervasives.format4 ‑>'a
with_color_ksf "Blue" ~f "%s %d" "yolo" 42 will behave like
+ksprintf, but wrapping the content with the given style
+Example:
+the following with raise Failure with a colored message
+
val with_out_chan : Pervasives.out_channel ‑> (t‑>'a) ‑>'a
with_out_chan oc f turns oc into a formatter fmt, and call f fmt.
+Behaves like f fmt from then on, but whether the call to f fails
+or returns, fmt is flushed before the call terminates.
\ No newline at end of file
diff --git a/2.0/containers/CCFun/.jbuilder-keep b/2.0/containers/CCFun/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCFun/Monad/argument-1-X/index.html b/2.0/containers/CCFun/Monad/argument-1-X/index.html
new file mode 100644
index 00000000..2aecaebc
--- /dev/null
+++ b/2.0/containers/CCFun/Monad/argument-1-X/index.html
@@ -0,0 +1,2 @@
+
+1-X (containers.CCFun.Monad.1-X)
ParameterCCFun.Monad.1-X
type t
\ No newline at end of file
diff --git a/2.0/containers/CCFun/Monad/index.html b/2.0/containers/CCFun/Monad/index.html
new file mode 100644
index 00000000..28ec149e
--- /dev/null
+++ b/2.0/containers/CCFun/Monad/index.html
@@ -0,0 +1,2 @@
+
+Monad (containers.CCFun.Monad)
\ No newline at end of file
diff --git a/2.0/containers/CCFun/index.html b/2.0/containers/CCFun/index.html
new file mode 100644
index 00000000..8c62a05f
--- /dev/null
+++ b/2.0/containers/CCFun/index.html
@@ -0,0 +1,14 @@
+
+CCFun (containers.CCFun)
ModuleCCFun
Basic Functions
val (|>) : 'a‑> ('a‑>'b) ‑>'b
Pipeline. x |> f is the same as f x.
val compose : ('a‑>'b) ‑> ('b‑>'c) ‑>'a‑>'c
Composition
val compose_binop : ('a‑>'b) ‑> ('b‑>'b‑>'c) ‑>'a‑>'a‑>'c
compose_binop f g is fun x y -> g (f x) (f y)
+Example (partial order):
+List.sort (compose_binop fst CCInt.compare) [1, true; 2, false; 1, false]
Since: 0.6
val (%>) : ('a‑>'b) ‑> ('b‑>'c) ‑>'a‑>'c
Alias to compose
val (@@) : ('a‑>'b) ‑>'a‑>'b
f @@ x is the same as f x, but right-associative.
Since: 0.5
val id : 'a‑>'a
Identity function
val const : 'a‑>'b‑>'a
const x y = x for any y
val flip : ('a‑>'b‑>'c) ‑>'b‑>'a‑>'c
Flip arguments
val curry : (('a * 'b) ‑>'c) ‑>'a‑>'b‑>'c
val uncurry : ('a‑>'b‑>'c) ‑> ('a * 'b) ‑>'c
val tap : ('a‑>_) ‑>'a‑>'a
tap f x evaluates f x, discards it, then returns x. Useful
+in a pipeline, for instance:
+
CCArray.(1 -- 10)
+ |> tap CCArray.shuffle
+ |> tap @@ CCArray.sort Pervasives.compare
val (%) : ('b‑>'c) ‑> ('a‑>'b) ‑>'a‑>'c
Mathematical composition
val lexicographic : ('a‑>'a‑> int) ‑> ('a‑>'a‑> int) ‑>'a‑>'a‑> int
Lexicographic combination of comparison functions
val finally : h:(unit ‑>_) ‑> f:(unit ‑>'a) ‑>'a
finally h f calls f () and returns its result. If it raises, the
+same exception is raised; in any case, h () is called after
+f () terminates.
val finally1 : h:(unit ‑>_) ‑> ('a‑>'b) ‑>'a‑>'b
finally1 ~h f x is the same as f x, but after the computation,
+h () is called whether f x rose an exception or not.
Since: 0.16
val finally2 : h:(unit ‑>_) ‑> ('a‑>'b‑>'c) ‑>'a‑>'b‑>'c
finally2 ~h f x y is the same as f x y, but after the computation,
+h () is called whether f x y rose an exception or not.
Since: 0.16
val opaque_identity : 'a‑>'a
opaque_identity x is like x, but prevents Flambda from using x's
+definition for optimizing it (flambda is an optimization/inlining pass
+in OCaml >= 4.03).
Since: 0.18
Monad
Functions with a fixed domain are monads in their codomain
module Monad : functor (X : sig ... end) -> sig ... end
\ No newline at end of file
diff --git a/2.0/containers/CCHash/.jbuilder-keep b/2.0/containers/CCHash/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCHash/index.html b/2.0/containers/CCHash/index.html
new file mode 100644
index 00000000..5d973e96
--- /dev/null
+++ b/2.0/containers/CCHash/index.html
@@ -0,0 +1,7 @@
+
+CCHash (containers.CCHash)
Always return 0. Useful for ignoring elements.
+Example: Hash.(pair string const0) will map pairs ("a", 1)
+and ("a", 2) to the same hash, but not the same as ("b", 1)
\ No newline at end of file
diff --git a/2.0/containers/CCHashtbl/.jbuilder-keep b/2.0/containers/CCHashtbl/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCHashtbl/Poly/index.html b/2.0/containers/CCHashtbl/Poly/index.html
new file mode 100644
index 00000000..422f6198
--- /dev/null
+++ b/2.0/containers/CCHashtbl/Poly/index.html
@@ -0,0 +1,20 @@
+
+Poly (containers.CCHashtbl.Poly)
ModuleCCHashtbl.Poly
val get : ('a, 'b) Hashtbl.t ‑>'a‑>'b option
Safe version of Hashtbl.find
val get_or : ('a, 'b) Hashtbl.t ‑>'a‑> default:'b‑>'b
get_or tbl k ~default returns the value associated to k if present,
+and returns default otherwise (if k doesn't belong in tbl)
val map_list : ('a‑>'b‑>'c) ‑> ('a, 'b) Hashtbl.t ‑>'c list
Map on a hashtable's items, collect into a list
val incr : ?by:int ‑> ('a, int) Hashtbl.t ‑>'a‑> unit
incr ?by tbl x increments or initializes the counter associated with x.
+If get tbl x = None, then after update, get tbl x = Some 1;
+otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
Parameterby: if specified, the int value is incremented by by rather than 1
Since: 0.16
val decr : ?by:int ‑> ('a, int) Hashtbl.t ‑>'a‑> unit
Same as incr but substract 1 (or the value of by).
+If the value reaches 0, the key is removed from the table.
+This does nothing if the key is not already present in the table.
val add_list : ('a, 'b list) Hashtbl.t ‑>'a‑>'b‑> unit
add_list tbl x y adds y to the list x is bound to. If x is
+not bound, it becomes bound to [y].
Since: 0.16
val add_seq : ('a, 'b) Hashtbl.t ‑> ('a * 'b) sequence‑> unit
Add the corresponding pairs to the table, using Hashtbl.add.
Since: 0.16
val of_seq : ('a * 'b) sequence‑> ('a, 'b) Hashtbl.t
From the given bindings, added in order
val add_seq_count : ('a, int) Hashtbl.t ‑>'asequence‑> unit
add_seq_count tbl seq increments the count of each element of seq
+by calling incr. This is useful for counting how many times each
+element of seq occurs.
Since: 0.16
val of_seq_count : 'asequence‑> ('a, int) Hashtbl.t
Similar to add_seq_count, but allocates a new table and returns it
Since: 0.16
val to_list : ('a, 'b) Hashtbl.t ‑> ('a * 'b) list
List of bindings (order unspecified)
val of_list : ('a * 'b) list ‑> ('a, 'b) Hashtbl.t
Build a table from the given list of bindings k_i -> v_i,
+added in order using add. If a key occurs several times,
+it will be added several times, and the visible binding
+will be the last one.
val update : ('a, 'b) Hashtbl.t ‑> f:('a‑>'b option ‑>'b option) ‑> k:'a‑> unit
update tbl ~f ~k updates key k by calling f k (Some v) if
+k was mapped to v, or f k None otherwise; if the call
+returns None then k is removed/stays removed, if the call
+returns Some v' then the binding k -> v' is inserted
+using Hashtbl.replace
Since: 0.14
val get_or_add : ('a, 'b) Hashtbl.t ‑> f:('a‑>'b) ‑> k:'a‑>'b
get_or_add tbl ~k ~f finds and returns the binding of k
+in tbl, if it exists. If it does not exist, then f k
+is called to obtain a new binding v; k -> v is added
+to tbl and v is returned.
\ No newline at end of file
diff --git a/2.0/containers/CCHashtbl/index.html b/2.0/containers/CCHashtbl/index.html
new file mode 100644
index 00000000..2657f658
--- /dev/null
+++ b/2.0/containers/CCHashtbl/index.html
@@ -0,0 +1,20 @@
+
+CCHashtbl (containers.CCHashtbl)
ModuleCCHashtbl
Extension to the standard Hashtbl
Since: 0.4
type 'a sequence = ('a‑> unit) ‑> unit
type 'a eq = 'a‑>'a‑> bool
type 'a hash = 'a‑> int
type 'a printer = Format.formatter ‑>'a‑> unit
Polymorphic tables
This sub-module contains the extension of the standard polymorphic hashtbl.
val map_list : ('a‑>'b‑>'c) ‑> ('a, 'b) Hashtbl.t ‑>'c list
Map on a hashtable's items, collect into a list
val incr : ?by:int ‑> ('a, int) Hashtbl.t ‑>'a‑> unit
incr ?by tbl x increments or initializes the counter associated with x.
+If get tbl x = None, then after update, get tbl x = Some 1;
+otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
Parameterby: if specified, the int value is incremented by by rather than 1
Since: 0.16
val decr : ?by:int ‑> ('a, int) Hashtbl.t ‑>'a‑> unit
Same as incr but substract 1 (or the value of by).
+If the value reaches 0, the key is removed from the table.
+This does nothing if the key is not already present in the table.
val add_list : ('a, 'b list) Hashtbl.t ‑>'a‑>'b‑> unit
add_list tbl x y adds y to the list x is bound to. If x is
+not bound, it becomes bound to [y].
Since: 0.16
val add_seq : ('a, 'b) Hashtbl.t ‑> ('a * 'b) sequence‑> unit
Add the corresponding pairs to the table, using Hashtbl.add.
Since: 0.16
val of_seq : ('a * 'b) sequence‑> ('a, 'b) Hashtbl.t
From the given bindings, added in order
val add_seq_count : ('a, int) Hashtbl.t ‑>'asequence‑> unit
add_seq_count tbl seq increments the count of each element of seq
+by calling incr. This is useful for counting how many times each
+element of seq occurs.
Since: 0.16
val of_seq_count : 'asequence‑> ('a, int) Hashtbl.t
Similar to add_seq_count, but allocates a new table and returns it
Since: 0.16
val to_list : ('a, 'b) Hashtbl.t ‑> ('a * 'b) list
List of bindings (order unspecified)
val of_list : ('a * 'b) list ‑> ('a, 'b) Hashtbl.t
Build a table from the given list of bindings k_i -> v_i,
+added in order using add. If a key occurs several times,
+it will be added several times, and the visible binding
+will be the last one.
val update : ('a, 'b) Hashtbl.t ‑> f:('a‑>'b option ‑>'b option) ‑> k:'a‑> unit
update tbl ~f ~k updates key k by calling f k (Some v) if
+k was mapped to v, or f k None otherwise; if the call
+returns None then k is removed/stays removed, if the call
+returns Some v' then the binding k -> v' is inserted
+using Hashtbl.replace
Since: 0.14
val get_or_add : ('a, 'b) Hashtbl.t ‑> f:('a‑>'b) ‑> k:'a‑>'b
get_or_add tbl ~k ~f finds and returns the binding of k
+in tbl, if it exists. If it does not exist, then f k
+is called to obtain a new binding v; k -> v is added
+to tbl and v is returned.
module Make : functor (X : Hashtbl.HashedType) -> S with type Make.key = X.t and type 'a Make.t = 'a Hashtbl.Make(X).t
\ No newline at end of file
diff --git a/2.0/containers/CCHashtbl/module-type-S/index.html b/2.0/containers/CCHashtbl/module-type-S/index.html
new file mode 100644
index 00000000..e9d85a5c
--- /dev/null
+++ b/2.0/containers/CCHashtbl/module-type-S/index.html
@@ -0,0 +1,20 @@
+
+S (containers.CCHashtbl.S)
incr ?by tbl x increments or initializes the counter associated with x.
+If get tbl x = None, then after update, get tbl x = Some 1;
+otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
Parameterby: if specified, the int value is incremented by by rather than 1
Same as incr but substract 1 (or the value of by).
+If the value reaches 0, the key is removed from the table.
+This does nothing if the key is not already present in the table.
add_seq_count tbl seq increments the count of each element of seq
+by calling incr. This is useful for counting how many times each
+element of seq occurs.
Build a table from the given list of bindings k_i -> v_i,
+added in order using add. If a key occurs several times,
+it will be added several times, and the visible binding
+will be the last one.
val update : 'at‑> f:(key‑>'a option ‑>'a option) ‑> k:key‑> unit
update tbl ~f ~k updates key k by calling f k (Some v) if
+k was mapped to v, or f k None otherwise; if the call
+returns None then k is removed/stays removed, if the call
+returns Some v' then the binding k -> v' is inserted
+using Hashtbl.replace
get_or_add tbl ~k ~f finds and returns the binding of k
+in tbl, if it exists. If it does not exist, then f k
+is called to obtain a new binding v; k -> v is added
+to tbl and v is returned.
\ No newline at end of file
diff --git a/2.0/containers/CCHeap/.jbuilder-keep b/2.0/containers/CCHeap/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCHeap/Make/argument-1-E/index.html b/2.0/containers/CCHeap/Make/argument-1-E/index.html
new file mode 100644
index 00000000..74b4d3b2
--- /dev/null
+++ b/2.0/containers/CCHeap/Make/argument-1-E/index.html
@@ -0,0 +1,2 @@
+
+1-E (containers.CCHeap.Make.1-E)
leq x y shall return true iff x is lower or equal to y
\ No newline at end of file
diff --git a/2.0/containers/CCHeap/Make/index.html b/2.0/containers/CCHeap/Make/index.html
new file mode 100644
index 00000000..f81ee3e8
--- /dev/null
+++ b/2.0/containers/CCHeap/Make/index.html
@@ -0,0 +1,5 @@
+
+Make (containers.CCHeap.Make)
\ No newline at end of file
diff --git a/2.0/containers/CCHeap/index.html b/2.0/containers/CCHeap/index.html
new file mode 100644
index 00000000..1d0591ff
--- /dev/null
+++ b/2.0/containers/CCHeap/index.html
@@ -0,0 +1,2 @@
+
+CCHeap (containers.CCHeap)
ModuleCCHeap
Leftist Heaps
following Okasaki
type 'a sequence = ('a‑> unit) ‑> unit
type 'a gen = unit ‑>'a option
type 'a klist = unit ‑> [ `Nil | `Cons of 'a * 'aklist ]
type 'a ktree = unit ‑> [ `Nil | `Node of 'a * 'aktree list ]
\ No newline at end of file
diff --git a/2.0/containers/CCHeap/module-type-PARTIAL_ORD/index.html b/2.0/containers/CCHeap/module-type-PARTIAL_ORD/index.html
new file mode 100644
index 00000000..e8d53b86
--- /dev/null
+++ b/2.0/containers/CCHeap/module-type-PARTIAL_ORD/index.html
@@ -0,0 +1,2 @@
+
+PARTIAL_ORD (containers.CCHeap.PARTIAL_ORD)
leq x y shall return true iff x is lower or equal to y
\ No newline at end of file
diff --git a/2.0/containers/CCHeap/module-type-S/index.html b/2.0/containers/CCHeap/module-type-S/index.html
new file mode 100644
index 00000000..3fd20559
--- /dev/null
+++ b/2.0/containers/CCHeap/module-type-S/index.html
@@ -0,0 +1,5 @@
+
+S (containers.CCHeap.S)
\ No newline at end of file
diff --git a/2.0/containers/CCIO/.jbuilder-keep b/2.0/containers/CCIO/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCIO/File/index.html b/2.0/containers/CCIO/File/index.html
new file mode 100644
index 00000000..b25929db
--- /dev/null
+++ b/2.0/containers/CCIO/File/index.html
@@ -0,0 +1,14 @@
+
+File (containers.CCIO.File)
ModuleCCIO.File
type t = string
A file should be represented by its absolute path, but currently
+this is not enforced.
Similar to read_dir (with recurse=true), this function walks
+a directory recursively and yields either files or directories.
+Is a file anything that doesn't satisfy is_directory (including
+symlinks, etc.)
RaisesSys_error: in case of error (e.g. permission denied) during iteration
with_temp ~prefix ~suffix f will call f with the name of a new
+temporary file (located in temp_dir).
+After f returns, the file is deleted. Best to be used in
+combination with with_out.
+See Filename.temp_file
Since: 0.17
\ No newline at end of file
diff --git a/2.0/containers/CCIO/index.html b/2.0/containers/CCIO/index.html
new file mode 100644
index 00000000..1796e878
--- /dev/null
+++ b/2.0/containers/CCIO/index.html
@@ -0,0 +1,23 @@
+
+CCIO (containers.CCIO)
ModuleCCIO
IO Utils
Simple utilities to deal with basic Input/Output tasks in a resource-safe
+way. For advanced IO tasks, the user is advised to use something
+like Lwt or Async, that are far more comprehensive.
Examples:
obtain the list of lines of a file:
# let l = CCIO.(with_in "/tmp/some_file" read_lines);;
transfer one file into another:
# CCIO.(
+ with_in "/tmp/input"
+ (fun ic ->
+ let chunks = read_chunks ic in
+ with_out ~flags:[Open_binary] ~mode:0o644 "/tmp/output"
+ (fun oc ->
+ write_gen oc chunks
+ )
+ )
+ ) ;;
Since: 0.6
Before 0.12.was in 'containers.io', now moved into 'containers'
type 'a or_error = ('a, string) Result.result
type 'a gen = unit ‑>'a option
See Gen in the gen library
Input
val with_in : ?mode:int ‑> ?flags:Pervasives.open_flag list ‑> string ‑> (Pervasives.in_channel ‑>'a) ‑>'a
Open an input file with the given optional flag list, calls the function
+on the input channel. When the function raises or returns, the
+channel is closed.
RaisesSys_error: in case of error (same as open_in and close_in)
Parameterflags: opening flags (default [Open_text]). Open_rdonly is used in any cases
val read_chunks : ?size:int ‑> Pervasives.in_channel ‑> string gen
Read the channel's content into chunks of size size
val read_line : Pervasives.in_channel ‑> string option
Read a line from the channel. Returns None if the input is terminated.
+The "\n" is removed from the line.
val read_lines : Pervasives.in_channel ‑> string gen
Read all lines. The generator should be traversed only once.
val read_lines_l : Pervasives.in_channel ‑> string list
Read all lines into a list
val read_all : ?size:int ‑> Pervasives.in_channel ‑> string
Read the whole channel into a buffer, then converted into a string.
Parametersize: the internal buffer size
Since: 0.7
val read_all_bytes : ?size:int ‑> Pervasives.in_channel ‑> Bytes.t
Read the whole channel into a mutable byte array
Parametersize: the internal buffer size
Since: 0.12
Output
val with_out : ?mode:int ‑> ?flags:Pervasives.open_flag list ‑> string ‑> (Pervasives.out_channel ‑>'a) ‑>'a
\ No newline at end of file
diff --git a/2.0/containers/CCInt/.jbuilder-keep b/2.0/containers/CCInt/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCInt/Infix/index.html b/2.0/containers/CCInt/Infix/index.html
new file mode 100644
index 00000000..d9016bdb
--- /dev/null
+++ b/2.0/containers/CCInt/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.CCInt.Infix)
\ No newline at end of file
diff --git a/2.0/containers/CCInt/index.html b/2.0/containers/CCInt/index.html
new file mode 100644
index 00000000..5ebf04ab
--- /dev/null
+++ b/2.0/containers/CCInt/index.html
@@ -0,0 +1,9 @@
+
+CCInt (containers.CCInt)
range_by ~step i j iterates on integers from i to j included,
+where the difference between successive elements is step.
+use a negative step for a decreasing list.
\ No newline at end of file
diff --git a/2.0/containers/CCInt64/.jbuilder-keep b/2.0/containers/CCInt64/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCInt64/index.html b/2.0/containers/CCInt64/index.html
new file mode 100644
index 00000000..8b45357f
--- /dev/null
+++ b/2.0/containers/CCInt64/index.html
@@ -0,0 +1,48 @@
+
+CCInt64 (containers.CCInt64)
Integer division. Raise Division_by_zero if the second
+argument is zero. This division rounds the real quotient of
+its arguments towards zero, as specified for Pervasives.(/).
x lsr y shifts x to the right by y bits.
+This is a logical shift: zeroes are inserted in the vacated bits
+regardless of the sign of x.
+The result is unspecified if y < 0 or y >= 64.
x asr y shifts x to the right by y bits.
+This is an arithmetic shift: the sign bit of x is replicated
+and inserted in the vacated bits.
+The result is unspecified if y < 0 or y >= 64.
The comparison function for 64-bit integers, with the same specification as
+Pervasives.compare. Along with the type t, this function compare
+allows the module CCInt64 to be passed as argument to the functors
+Set.Make and Map.Make.
Convert the given 64-bit integer (type int64) to an
+integer (type int). On 64-bit platforms, the 64-bit integer
+is taken modulo 263, i.e. the high-order bit is lost
+during the conversion. On 32-bit platforms, the 64-bit integer
+is taken modulo 231, i.e. the top 33 bits are lost
+during the conversion.
Convert the given 64-bit integer (type int64) to a
+32-bit integer (type int32). The 64-bit integer
+is taken modulo 232, i.e. the top 32 bits are lost
+during the conversion.
Convert the given 64-bit integer (type int64) to a
+native integer. On 32-bit platforms, the 64-bit integer
+is taken modulo 232. On 64-bit platforms,
+the conversion is exact.
Alias to Int64.of_float.
+Convert the given floating-point number to a 64-bit integer,
+discarding the fractional part (truncate towards 0).
+The result of the conversion is undefined if, after truncation,
+the number is outside the range [CCInt64.min_int, CCInt64.max_int].
Alias to Int64.of_string.
+Convert the given string to a 64-bit integer.
+The string is read in decimal (by default, or if the string
+begins with 0u) or in hexadecimal, octal or binary if the
+string begins with 0x, 0o or 0b respectively.
The 0u prefix reads the input as an unsigned integer in the range
+[0, 2*CCInt64.max_int+1]. If the input exceeds CCInt64.max_int
+it is converted to the signed integer
+CCInt64.min_int + input - CCInt64.max_int - 1.
The _ (underscore) character can appear anywhere in the string
+and is ignored.
+Raise Failure "Int64.of_string" if the given string is not
+a valid representation of an integer, or if the integer represented
+exceeds the range of integers representable in type int64.
\ No newline at end of file
diff --git a/2.0/containers/CCList/.jbuilder-keep b/2.0/containers/CCList/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCList/Assoc/index.html b/2.0/containers/CCList/Assoc/index.html
new file mode 100644
index 00000000..fed6c509
--- /dev/null
+++ b/2.0/containers/CCList/Assoc/index.html
@@ -0,0 +1,4 @@
+
+Assoc (containers.CCList.Assoc)
ModuleCCList.Assoc
type ('a, 'b) t = ('a * 'b) list
val get : eq:('a‑>'a‑> bool) ‑>'a‑> ('a, 'b) t‑>'b option
Find the element.
val get_exn : eq:('a‑>'a‑> bool) ‑>'a‑> ('a, 'b) t‑>'b
Same as get, but unsafe.
RaisesNot_found: if the element is not present.
val set : eq:('a‑>'a‑> bool) ‑>'a‑>'b‑> ('a, 'b) t‑> ('a, 'b) t
Add the binding into the list (erase it if already present).
val mem : eq:('a‑>'a‑> bool) ‑>'a‑> ('a, _) t‑> bool
mem x l returns true iff x is a key in l.
Since: 0.16
val update : eq:('a‑>'a‑> bool) ‑> f:('b option ‑>'b option) ‑>'a‑> ('a, 'b) t‑> ('a, 'b) t
update k ~f l updates l on the key k, by calling f (get l k)
+and removing k if it returns None, mapping k to v' if it
+returns Some v'.
Since: 0.16
val remove : eq:('a‑>'a‑> bool) ‑>'a‑> ('a, 'b) t‑> ('a, 'b) t
remove x l removes the first occurrence of k from l.
Since: 0.17
\ No newline at end of file
diff --git a/2.0/containers/CCList/Infix/index.html b/2.0/containers/CCList/Infix/index.html
new file mode 100644
index 00000000..89a2900d
--- /dev/null
+++ b/2.0/containers/CCList/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.CCList.Infix)
\ No newline at end of file
diff --git a/2.0/containers/CCList/Ref/index.html b/2.0/containers/CCList/Ref/index.html
new file mode 100644
index 00000000..56413548
--- /dev/null
+++ b/2.0/containers/CCList/Ref/index.html
@@ -0,0 +1,3 @@
+
+Ref (containers.CCList.Ref)
Add elements of the list at the beginning of the list ref. Elements
+at the end of the list will be at the beginning of the list ref.
\ No newline at end of file
diff --git a/2.0/containers/CCList/Traverse/argument-1-M/index.html b/2.0/containers/CCList/Traverse/argument-1-M/index.html
new file mode 100644
index 00000000..52c1255a
--- /dev/null
+++ b/2.0/containers/CCList/Traverse/argument-1-M/index.html
@@ -0,0 +1,2 @@
+
+1-M (containers.CCList.Traverse.1-M)
\ No newline at end of file
diff --git a/2.0/containers/CCList/Traverse/index.html b/2.0/containers/CCList/Traverse/index.html
new file mode 100644
index 00000000..db72b442
--- /dev/null
+++ b/2.0/containers/CCList/Traverse/index.html
@@ -0,0 +1,4 @@
+
+Traverse (containers.CCList.Traverse)
Same as map_m but map_m_par f (x::l) evaluates f x and
+f l "in parallel" before combining their result (for instance
+in Lwt).
\ No newline at end of file
diff --git a/2.0/containers/CCList/index.html b/2.0/containers/CCList/index.html
new file mode 100644
index 00000000..1e06330b
--- /dev/null
+++ b/2.0/containers/CCList/index.html
@@ -0,0 +1,90 @@
+
+CCList (containers.CCList)
ModuleCCList
Complements to list
type 'a sequence = ('a‑> unit) ‑> unit
type 'a gen = unit ‑>'a option
type 'a klist = unit ‑> [ `Nil | `Cons of 'a * 'aklist ]
type 'a printer = Format.formatter ‑>'a‑> unit
type 'a random_gen = Random.State.t ‑>'a
include module type of List
val length : 'a list ‑> int
val compare_lengths : 'a list ‑>'b list ‑> int
val compare_length_with : 'a list ‑> int ‑> int
val cons : 'a‑>'a list ‑>'a list
val hd : 'a list ‑>'a
val tl : 'a list ‑>'a list
val nth : 'a list ‑> int ‑>'a
val nth_opt : 'a list ‑> int ‑>'a option
val rev : 'a list ‑>'a list
val append : 'a list ‑>'a list ‑>'a list
val rev_append : 'a list ‑>'a list ‑>'a list
val concat : 'a list list ‑>'a list
val flatten : 'a list list ‑>'a list
val iter : ('a‑> unit) ‑>'a list ‑> unit
val iteri : (int ‑>'a‑> unit) ‑>'a list ‑> unit
val map : ('a‑>'b) ‑>'a list ‑>'b list
val mapi : (int ‑>'a‑>'b) ‑>'a list ‑>'b list
val rev_map : ('a‑>'b) ‑>'a list ‑>'b list
val fold_left : ('a‑>'b‑>'a) ‑>'a‑>'b list ‑>'a
val fold_right : ('a‑>'b‑>'b) ‑>'a list ‑>'b‑>'b
val iter2 : ('a‑>'b‑> unit) ‑>'a list ‑>'b list ‑> unit
val map2 : ('a‑>'b‑>'c) ‑>'a list ‑>'b list ‑>'c list
val rev_map2 : ('a‑>'b‑>'c) ‑>'a list ‑>'b list ‑>'c list
val fold_left2 : ('a‑>'b‑>'c‑>'a) ‑>'a‑>'b list ‑>'c list ‑>'a
val fold_right2 : ('a‑>'b‑>'c‑>'c) ‑>'a list ‑>'b list ‑>'c‑>'c
val for_all : ('a‑> bool) ‑>'a list ‑> bool
val exists : ('a‑> bool) ‑>'a list ‑> bool
val for_all2 : ('a‑>'b‑> bool) ‑>'a list ‑>'b list ‑> bool
val exists2 : ('a‑>'b‑> bool) ‑>'a list ‑>'b list ‑> bool
val mem : 'a‑>'a list ‑> bool
val memq : 'a‑>'a list ‑> bool
val find : ('a‑> bool) ‑>'a list ‑>'a
val find_opt : ('a‑> bool) ‑>'a list ‑>'a option
val filter : ('a‑> bool) ‑>'a list ‑>'a list
val find_all : ('a‑> bool) ‑>'a list ‑>'a list
val partition : ('a‑> bool) ‑>'a list ‑>'a list * 'a list
val assoc : 'a‑> ('a * 'b) list ‑>'b
val assoc_opt : 'a‑> ('a * 'b) list ‑>'b option
val assq : 'a‑> ('a * 'b) list ‑>'b
val assq_opt : 'a‑> ('a * 'b) list ‑>'b option
val mem_assoc : 'a‑> ('a * 'b) list ‑> bool
val mem_assq : 'a‑> ('a * 'b) list ‑> bool
val remove_assoc : 'a‑> ('a * 'b) list ‑> ('a * 'b) list
val remove_assq : 'a‑> ('a * 'b) list ‑> ('a * 'b) list
val split : ('a * 'b) list ‑>'a list * 'b list
val combine : 'a list ‑>'b list ‑> ('a * 'b) list
val sort : ('a‑>'a‑> int) ‑>'a list ‑>'a list
val stable_sort : ('a‑>'a‑> int) ‑>'a list ‑>'a list
val fast_sort : ('a‑>'a‑> int) ‑>'a list ‑>'a list
val sort_uniq : ('a‑>'a‑> int) ‑>'a list ‑>'a list
val merge : ('a‑>'a‑> int) ‑>'a list ‑>'a list ‑>'a list
Safe version of List.filter.
+filter p l returns all the elements of the list l
+that satisfy the predicate p. The order of the elements
+in the input list is preserved.
Similar to List.combine but tail-recursive.
+Transform a pair of lists into a list of pairs:
+combine [a1; ...; an] [b1; ...; bn] is
+[(a1,b1); ...; (an,bn)].
RaisesInvalid_argument: if the lists have distinct lengths.
Since: 1.2
val combine_gen : 'a list ‑>'b list ‑> ('a * 'b) gen
Lazy version of combine.
+Unlike combine, it does not fail if the lists have different
+lengths;
+instead, the output has as many pairs as the smallest input list.
A tail-recursive version of List.split.
+Transform a list of pairs into a pair of lists:
+split [(a1,b1); ...; (an,bn)] is ([a1; ...; an], [b1; ...; bn]).
Produce the cartesian product of this list of lists,
+by returning all the ways of picking one element per sublist.
+NOTE the order of the returned list is unspecified.
+For example:
+
+invariant: cartesian_product l = map_product id l.
Since: 1.2
val map_product_l : ('a‑>'b list) ‑>'a list ‑>'b list list
map_product_l f l maps each element of l to a list of
+objects of type 'b using f.
+We obtain [l1;l2;...;ln] where length l=n and li : 'b list.
+Then, it returns all the ways of picking exactly one element per li.
All pairs of distinct positions of the list. list_diagonal l will
+return the list of List.nth i l, List.nth j l if i < j.
val partition_map : ('a‑> [< `Left of 'b | `Right of 'c | `Drop ]) ‑>'a list ‑>'b list * 'c list
partition_map f l maps f on l and gather results in lists:
+
if f x = `Left y, adds y to the first list.
if f x = `Right z, adds z to the second list.
if f x = `Drop, ignores x.
Since: 0.11
val sublists_of_len : ?last:('a list ‑>'a list option) ‑> ?offset:int ‑> int ‑>'a list ‑>'a list list
sublists_of_len n l returns sub-lists of l that have length n.
+By default, these sub-lists are non overlapping:
+sublists_of_len 2 [1;2;3;4;5;6] returns [1;2]; [3;4]; [5;6].
Parameteroffset: the number of elements skipped between two consecutive
+sub-lists. By default it is n. If offset < n, the sub-lists
+will overlap; if offset > n, some elements will not appear at all.
Parameterlast: if provided and the last group of elements g is such
+that length g < n, last g is called. If last g = Some g',
+g' is appended; otherwise g is dropped.
+If last = CCOpt.return, it will simply keep the last group.
+By default, last = fun _ -> None, i.e. the last group is dropped if shorter than n.
Same as iter, but the function is applied to the index of
+the element as first argument (counting from 0), and the element
+itself as second argument.
val iteri2 : (int ‑>'a‑>'b‑> unit) ‑>'at‑>'bt‑> unit
RaisesInvalid_argument: when lists do not have the same length.
Set i-th element (removes the old one), or does nothing if
+index is too high.
+If the index is negative, it will set element starting from the end
+of the list.
Insert at i-th position, between the two existing elements. If the
+index is too high, append at the end of the list.
+If the index is negative, it will insert element starting from the end
+of the list.
Remove element at given index. Does nothing if the index is
+too high.
+If the index is negative, it will remove element starting from the end
+of the list.
Set Operators
Those operations maintain the invariant that the list does not
+contain duplicates (if it already satisfies it).
Remove duplicates w.r.t the equality predicate.
+Complexity is quadratic in the length of the list, but the order
+of elements is preserved. If you wish for a faster de-duplication
+but do not care about the order, use sort_uniq.
range_by ~step i j iterates on integers from i to j included,
+where the difference between successive elements is step.
+use a negative step for a decreasing list.
val pp : ?start:string ‑> ?stop:string ‑> ?sep:string ‑>'aprinter‑>'atprinter
Lists of pairs
\ No newline at end of file
diff --git a/2.0/containers/CCList/module-type-MONAD/index.html b/2.0/containers/CCList/module-type-MONAD/index.html
new file mode 100644
index 00000000..4f5d29ec
--- /dev/null
+++ b/2.0/containers/CCList/module-type-MONAD/index.html
@@ -0,0 +1,2 @@
+
+MONAD (containers.CCList.MONAD)
\ No newline at end of file
diff --git a/2.0/containers/CCListLabels/.jbuilder-keep b/2.0/containers/CCListLabels/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCListLabels/Assoc/index.html b/2.0/containers/CCListLabels/Assoc/index.html
new file mode 100644
index 00000000..1a823796
--- /dev/null
+++ b/2.0/containers/CCListLabels/Assoc/index.html
@@ -0,0 +1,4 @@
+
+Assoc (containers.CCListLabels.Assoc)
ModuleCCListLabels.Assoc
type ('a, 'b) t = ('a * 'b) list
val get : eq:('a‑>'a‑> bool) ‑>'a‑> ('a, 'b) t‑>'b option
Find the element.
val get_exn : eq:('a‑>'a‑> bool) ‑>'a‑> ('a, 'b) t‑>'b
Same as get, but unsafe.
RaisesNot_found: if the element is not present.
val set : eq:('a‑>'a‑> bool) ‑>'a‑>'b‑> ('a, 'b) t‑> ('a, 'b) t
Add the binding into the list (erase it if already present).
val mem : eq:('a‑>'a‑> bool) ‑>'a‑> ('a, _) t‑> bool
mem x l returns true iff x is a key in l.
Since: 0.16
val update : eq:('a‑>'a‑> bool) ‑> f:('b option ‑>'b option) ‑>'a‑> ('a, 'b) t‑> ('a, 'b) t
update k ~f l updates l on the key k, by calling f (get l k)
+and removing k if it returns None, mapping k to v' if it
+returns Some v'.
Since: 0.16
val remove : eq:('a‑>'a‑> bool) ‑>'a‑> ('a, 'b) t‑> ('a, 'b) t
remove x l removes the first occurrence of k from l.
Since: 0.17
\ No newline at end of file
diff --git a/2.0/containers/CCListLabels/Infix/index.html b/2.0/containers/CCListLabels/Infix/index.html
new file mode 100644
index 00000000..1e7b32d9
--- /dev/null
+++ b/2.0/containers/CCListLabels/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.CCListLabels.Infix)
\ No newline at end of file
diff --git a/2.0/containers/CCListLabels/Ref/index.html b/2.0/containers/CCListLabels/Ref/index.html
new file mode 100644
index 00000000..0d34dd03
--- /dev/null
+++ b/2.0/containers/CCListLabels/Ref/index.html
@@ -0,0 +1,3 @@
+
+Ref (containers.CCListLabels.Ref)
Add elements of the list at the beginning of the list ref. Elements
+at the end of the list will be at the beginning of the list ref.
\ No newline at end of file
diff --git a/2.0/containers/CCListLabels/Traverse/argument-1-M/index.html b/2.0/containers/CCListLabels/Traverse/argument-1-M/index.html
new file mode 100644
index 00000000..a48aa782
--- /dev/null
+++ b/2.0/containers/CCListLabels/Traverse/argument-1-M/index.html
@@ -0,0 +1,2 @@
+
+1-M (containers.CCListLabels.Traverse.1-M)
\ No newline at end of file
diff --git a/2.0/containers/CCListLabels/Traverse/index.html b/2.0/containers/CCListLabels/Traverse/index.html
new file mode 100644
index 00000000..2c250e0c
--- /dev/null
+++ b/2.0/containers/CCListLabels/Traverse/index.html
@@ -0,0 +1,4 @@
+
+Traverse (containers.CCListLabels.Traverse)
Same as map_m but map_m_par f (x::l) evaluates f x and
+f l "in parallel" before combining their result (for instance
+in Lwt).
\ No newline at end of file
diff --git a/2.0/containers/CCListLabels/index.html b/2.0/containers/CCListLabels/index.html
new file mode 100644
index 00000000..4348f8f0
--- /dev/null
+++ b/2.0/containers/CCListLabels/index.html
@@ -0,0 +1,53 @@
+
+CCListLabels (containers.CCListLabels)
ModuleCCListLabels
Complements to list
include module type of ListLabels
val length : 'a list ‑> int
val hd : 'a list ‑>'a
val compare_lengths : 'a list ‑>'b list ‑> int
val compare_length_with : 'a list ‑> len:int ‑> int
val cons : 'a‑>'a list ‑>'a list
val tl : 'a list ‑>'a list
val nth : 'a list ‑> int ‑>'a
val nth_opt : 'a list ‑> int ‑>'a option
val rev : 'a list ‑>'a list
val append : 'a list ‑>'a list ‑>'a list
val rev_append : 'a list ‑>'a list ‑>'a list
val concat : 'a list list ‑>'a list
val flatten : 'a list list ‑>'a list
val iter : f:('a‑> unit) ‑>'a list ‑> unit
val iteri : f:(int ‑>'a‑> unit) ‑>'a list ‑> unit
val map : f:('a‑>'b) ‑>'a list ‑>'b list
val mapi : f:(int ‑>'a‑>'b) ‑>'a list ‑>'b list
val rev_map : f:('a‑>'b) ‑>'a list ‑>'b list
val fold_left : f:('a‑>'b‑>'a) ‑> init:'a‑>'b list ‑>'a
val fold_right : f:('a‑>'b‑>'b) ‑>'a list ‑> init:'b‑>'b
val iter2 : f:('a‑>'b‑> unit) ‑>'a list ‑>'b list ‑> unit
val map2 : f:('a‑>'b‑>'c) ‑>'a list ‑>'b list ‑>'c list
val rev_map2 : f:('a‑>'b‑>'c) ‑>'a list ‑>'b list ‑>'c list
val fold_left2 : f:('a‑>'b‑>'c‑>'a) ‑> init:'a‑>'b list ‑>'c list ‑>'a
val fold_right2 : f:('a‑>'b‑>'c‑>'c) ‑>'a list ‑>'b list ‑> init:'c‑>'c
val for_all : f:('a‑> bool) ‑>'a list ‑> bool
val exists : f:('a‑> bool) ‑>'a list ‑> bool
val for_all2 : f:('a‑>'b‑> bool) ‑>'a list ‑>'b list ‑> bool
val exists2 : f:('a‑>'b‑> bool) ‑>'a list ‑>'b list ‑> bool
val mem : 'a‑> set:'a list ‑> bool
val memq : 'a‑> set:'a list ‑> bool
val find : f:('a‑> bool) ‑>'a list ‑>'a
val find_opt : f:('a‑> bool) ‑>'a list ‑>'a option
val filter : f:('a‑> bool) ‑>'a list ‑>'a list
val find_all : f:('a‑> bool) ‑>'a list ‑>'a list
val partition : f:('a‑> bool) ‑>'a list ‑>'a list * 'a list
val assoc : 'a‑> ('a * 'b) list ‑>'b
val assoc_opt : 'a‑> ('a * 'b) list ‑>'b option
val assq : 'a‑> ('a * 'b) list ‑>'b
val assq_opt : 'a‑> ('a * 'b) list ‑>'b option
val mem_assoc : 'a‑> map:('a * 'b) list ‑> bool
val mem_assq : 'a‑> map:('a * 'b) list ‑> bool
val remove_assoc : 'a‑> ('a * 'b) list ‑> ('a * 'b) list
val remove_assq : 'a‑> ('a * 'b) list ‑> ('a * 'b) list
val split : ('a * 'b) list ‑>'a list * 'b list
val combine : 'a list ‑>'b list ‑> ('a * 'b) list
val sort : cmp:('a‑>'a‑> int) ‑>'a list ‑>'a list
val stable_sort : cmp:('a‑>'a‑> int) ‑>'a list ‑>'a list
val fast_sort : cmp:('a‑>'a‑> int) ‑>'a list ‑>'a list
val sort_uniq : cmp:('a‑>'a‑> int) ‑>'a list ‑>'a list
val merge : cmp:('a‑>'a‑> int) ‑>'a list ‑>'a list ‑>'a list
All pairs of distinct positions of the list. list_diagonal l will
+return the list of List.nth i l, List.nth j l if i < j.
val partition_map : f:('a‑> [< `Left of 'b | `Right of 'c | `Drop ]) ‑>'a list ‑>'b list * 'c list
partition_map f l maps f on l and gather results in lists:
+
if f x = `Left y, adds y to the first list.
if f x = `Right z, adds z to the second list.
if f x = `Drop, ignores x.
Since: 0.11
val sublists_of_len : ?last:('a list ‑>'a list option) ‑> ?offset:int ‑> len:int ‑>'a list ‑>'a list list
sublists_of_len n l returns sub-lists of l that have length n.
+By default, these sub-lists are non overlapping:
+sublists_of_len 2 [1;2;3;4;5;6] returns [1;2]; [3;4]; [5;6].
Same as iter, but the function is applied to the index of
+the element as first argument (counting from 0), and the element
+itself as second argument.
val foldi : f:('b‑> int ‑>'a‑>'b) ‑> init:'b‑>'at‑>'b
Set i-th element (removes the old one), or does nothing if
+index is too high.
+If the index is negative, it will set element starting from the end
+of the list.
Insert at i-th position, between the two existing elements. If the
+index is too high, append at the end of the list.
+If the index is negative, it will insert element starting from the end
+of the list.
Remove element at given index. Does nothing if the index is
+too high.
+If the index is negative, it will remove element starting from the end
+of the list.
Set Operators
Those operations maintain the invariant that the list does not
+contain duplicates (if it already satisfies it).
Remove duplicates w.r.t the equality predicate.
+Complexity is quadratic in the length of the list, but the order
+of elements is preserved. If you wish for a faster de-duplication
+but do not care about the order, use sort_uniq.
range_by ~step i j iterates on integers from i to j included,
+where the difference between successive elements is step.
+use a negative step for a decreasing list.
val pp : ?start:string ‑> ?stop:string ‑> ?sep:string ‑>'aprinter‑>'atprinter
\ No newline at end of file
diff --git a/2.0/containers/CCListLabels/module-type-MONAD/index.html b/2.0/containers/CCListLabels/module-type-MONAD/index.html
new file mode 100644
index 00000000..06c4ef62
--- /dev/null
+++ b/2.0/containers/CCListLabels/module-type-MONAD/index.html
@@ -0,0 +1,2 @@
+
+MONAD (containers.CCListLabels.MONAD)
\ No newline at end of file
diff --git a/2.0/containers/CCMap/.jbuilder-keep b/2.0/containers/CCMap/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCMap/index.html b/2.0/containers/CCMap/index.html
new file mode 100644
index 00000000..d5ee9cc9
--- /dev/null
+++ b/2.0/containers/CCMap/index.html
@@ -0,0 +1,2 @@
+
+CCMap (containers.CCMap)
module Make : functor (O : Map.OrderedType) -> S with type 'a Make.t = 'a Map.Make(O).t and type Make.key = O.t
\ No newline at end of file
diff --git a/2.0/containers/CCMap/module-type-S/index.html b/2.0/containers/CCMap/module-type-S/index.html
new file mode 100644
index 00000000..782d2cc7
--- /dev/null
+++ b/2.0/containers/CCMap/module-type-S/index.html
@@ -0,0 +1,10 @@
+
+S (containers.CCMap.S)
get_or k m ~default returns the value associated to k if present,
+and returns default otherwise (if k doesn't belong in m).
Since: 0.16
val update : key‑> ('a option ‑>'a option) ‑>'at‑>'at
update k f m calls f (Some v) if find k m = v,
+otherwise it calls f None. In any case, if the result is Nonek is removed from m, and if the result is Some v' then
+add k v' m is returned.
Build a map from the given list of bindings k_i -> v_i,
+added in order using add.
+If a key occurs several times, only its last binding
+will be present in the result.
\ No newline at end of file
diff --git a/2.0/containers/CCOpt/.jbuilder-keep b/2.0/containers/CCOpt/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCOpt/Infix/index.html b/2.0/containers/CCOpt/Infix/index.html
new file mode 100644
index 00000000..da6d4f4f
--- /dev/null
+++ b/2.0/containers/CCOpt/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.CCOpt.Infix)
\ No newline at end of file
diff --git a/2.0/containers/CCOpt/index.html b/2.0/containers/CCOpt/index.html
new file mode 100644
index 00000000..e55fd1b9
--- /dev/null
+++ b/2.0/containers/CCOpt/index.html
@@ -0,0 +1,9 @@
+
+CCOpt (containers.CCOpt)
sequence_l [x1; x2; ...; xn] returns Some [y1;y2;...;yn] if
+every xi is Some yi. Otherwise, if the list contains at least
+one None, the result is None.
val wrap : ?handler:(exn ‑> bool) ‑> ('a‑>'b) ‑>'a‑>'b option
wrap f x calls f x and returns Some y if f x = y. If f x raises
+any exception, the result is None. This can be useful to wrap functions
+such as Map.S.find.
Parameterhandler: the exception handler, which returns true if the
+exception is to be caught.
val wrap2 : ?handler:(exn ‑> bool) ‑> ('a‑>'b‑>'c) ‑>'a‑>'b‑>'c option
wrap2 f x y is similar to wrap1 but for binary functions.
\ No newline at end of file
diff --git a/2.0/containers/CCOrd/.jbuilder-keep b/2.0/containers/CCOrd/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCOrd/Infix/index.html b/2.0/containers/CCOrd/Infix/index.html
new file mode 100644
index 00000000..e9b06f2f
--- /dev/null
+++ b/2.0/containers/CCOrd/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.CCOrd.Infix)
\ No newline at end of file
diff --git a/2.0/containers/CCOrd/index.html b/2.0/containers/CCOrd/index.html
new file mode 100644
index 00000000..4fa645dd
--- /dev/null
+++ b/2.0/containers/CCOrd/index.html
@@ -0,0 +1,15 @@
+
+CCOrd (containers.CCOrd)
ModuleCCOrd
Comparisons
type 'a t = 'a‑>'a‑> int
Comparison (total ordering) between two elements, that returns an int
map f ord is the comparison function that, given objects x and y,
+projects x and y using f (e.g. using a record field) and then
+compares those projections with ord.
+Example:
+map fst CCInt.compare compares values of type (int * 'a) by their
+first component.
\ No newline at end of file
diff --git a/2.0/containers/CCPair/.jbuilder-keep b/2.0/containers/CCPair/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCPair/index.html b/2.0/containers/CCPair/index.html
new file mode 100644
index 00000000..2f8885dd
--- /dev/null
+++ b/2.0/containers/CCPair/index.html
@@ -0,0 +1,4 @@
+
+CCPair (containers.CCPair)
\ No newline at end of file
diff --git a/2.0/containers/CCParse/.jbuilder-keep b/2.0/containers/CCParse/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCParse/Infix/index.html b/2.0/containers/CCParse/Infix/index.html
new file mode 100644
index 00000000..d14cabdd
--- /dev/null
+++ b/2.0/containers/CCParse/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.CCParse.Infix)
\ No newline at end of file
diff --git a/2.0/containers/CCParse/U/index.html b/2.0/containers/CCParse/U/index.html
new file mode 100644
index 00000000..1edd3837
--- /dev/null
+++ b/2.0/containers/CCParse/U/index.html
@@ -0,0 +1,6 @@
+
+U (containers.CCParse.U)
ModuleCCParse.U
val list : ?start:string ‑> ?stop:string ‑> ?sep:string ‑>'at‑>'a list t
list p parses a list of p, with the OCaml conventions for
+start token "", stop token "" and separator ";".
+Whitespace between items are skipped
val pair : ?start:string ‑> ?stop:string ‑> ?sep:string ‑>'at‑>'bt‑> ('a * 'b) t
Parse a pair using OCaml whitespace conventions.
+The default is "(a, b)".
val triple : ?start:string ‑> ?stop:string ‑> ?sep:string ‑>'at‑>'bt‑>'ct‑> ('a * 'b * 'c) t
Parse a triple using OCaml whitespace conventions.
+The default is "(a, b, c)".
\ No newline at end of file
diff --git a/2.0/containers/CCParse/index.html b/2.0/containers/CCParse/index.html
new file mode 100644
index 00000000..69ad681b
--- /dev/null
+++ b/2.0/containers/CCParse/index.html
@@ -0,0 +1,49 @@
+
+CCParse (containers.CCParse)
ModuleCCParse
Very Simple Parser Combinators
open CCParse;;
+
+ type tree = L of int | N of tree * tree;;
+
+ let mk_leaf x = L x
+ let mk_node x y = N(x,y)
+
+ let ptree = fix @@ fun self ->
+ skip_space *>
+ ( (try_ (char '(') *> (pure mk_node <*> self <*> self) <* char ')')
+ <|>
+ (U.int >|= mk_leaf) )
+ ;;
+
+ parse_string_exn ptree "(1 (2 3))" ;;
+ parse_string_exn ptree "((1 2) (3 (4 5)))" ;;
+
Parse a list of words
open Containers.Parse;;
+ let p = U.list ~sep:"," U.word;;
+ parse_string_exn p "[abc , de, hello ,world ]";;
Stress Test
+This makes a list of 100_000 integers, prints it and parses it back.
let p = CCParse.(U.list ~sep:"," U.int);;
+
+ let l = CCList.(1 -- 100_000);;
+ let l_printed =
+ CCFormat.(to_string (within "[" "]" (list ~sep:(return ",@,") int))) l;;
+
+ let l' = CCParse.parse_string_exn p l_printed;;
+
+ assert (l=l');;
a <|> b tries to parse a, and if a fails without
+consuming any input, backtracks and tries
+to parse b, otherwise it fails as a.
+See try_ to ensure a does not consume anything (but it is best
+to avoid wrapping large parsers with try_)
a <?> msg behaves like a, but if a fails without
+consuming any input, it fails with msg
+instead. Useful as the last choice in a series of <|>:
+a <|> b <|> c <?> "expected a|b|c"
Memoize the parser. memo p will behave like p, but when called
+in a state (read: position in input) it has already processed, memo p
+returns a result directly. The implementation uses an underlying
+hashtable.
+This can be costly in memory, but improve the run time a lot if there
+is a lot of backtracking involving p.
\ No newline at end of file
diff --git a/2.0/containers/CCRandom/.jbuilder-keep b/2.0/containers/CCRandom/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCRandom/State/index.html b/2.0/containers/CCRandom/State/index.html
new file mode 100644
index 00000000..eeec0cea
--- /dev/null
+++ b/2.0/containers/CCRandom/State/index.html
@@ -0,0 +1,2 @@
+
+State (containers.CCRandom.State)
\ No newline at end of file
diff --git a/2.0/containers/CCRandom/index.html b/2.0/containers/CCRandom/index.html
new file mode 100644
index 00000000..a4f36728
--- /dev/null
+++ b/2.0/containers/CCRandom/index.html
@@ -0,0 +1,23 @@
+
+CCRandom (containers.CCRandom)
replicate n g makes a list of n elements which are all generated
+randomly using g.
val sample_without_replacement : compare:('a‑>'a‑> int) ‑> int ‑>'at‑>'a list t
sample_without_replacement n g makes a list of n elements which are all
+generated randomly using g with the added constraint that none of the generated
+random values are equal.
retry g calls g until it returns some value, or until the maximum
+number of retries was reached. If g fails,
+then it counts for one iteration, and the generator retries.
Parametermax: : maximum number of retries. Default 10.
val try_successively : 'a option t list ‑>'a option t
try_successively l tries each generator of l, one after the other.
+If some generator succeeds its result is returned, else the
+next generator is tried.
a <?> b is a choice operator. It first tries a, and returns its
+result if successful. If a fails, then b is returned.
val fix : ?sub1:('at‑>'at) list ‑> ?sub2:('at‑>'at‑>'at) list ‑> ?subn:(int t * ('a list t‑>'at)) list ‑> base:'at‑> int t‑>'at
Recursion combinators, for building recursive values.
+The integer generator is used to provide fuel. The sub_ generators
+should use their arguments only once!
Parametersub1: cases that recurse on one value.
Parametersub2: cases that use the recursive gen twice.
Parametersubn: cases that use a list of recursive cases.
Using a random state (possibly the one in argument) run a generator.
\ No newline at end of file
diff --git a/2.0/containers/CCRef/.jbuilder-keep b/2.0/containers/CCRef/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCRef/index.html b/2.0/containers/CCRef/index.html
new file mode 100644
index 00000000..d0beddee
--- /dev/null
+++ b/2.0/containers/CCRef/index.html
@@ -0,0 +1,2 @@
+
+CCRef (containers.CCRef)
\ No newline at end of file
diff --git a/2.0/containers/CCResult/.jbuilder-keep b/2.0/containers/CCResult/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCResult/Infix/index.html b/2.0/containers/CCResult/Infix/index.html
new file mode 100644
index 00000000..23fa8f63
--- /dev/null
+++ b/2.0/containers/CCResult/Infix/index.html
@@ -0,0 +1,2 @@
+
+Infix (containers.CCResult.Infix)
ModuleCCResult.Infix
val (>|=) : ('a, 'err) t‑> ('a‑>'b) ‑> ('b, 'err) t
val (>>=) : ('a, 'err) t‑> ('a‑> ('b, 'err) t) ‑> ('b, 'err) t
val (<*>) : ('a‑>'b, 'err) t‑> ('a, 'err) t‑> ('b, 'err) t
\ No newline at end of file
diff --git a/2.0/containers/CCResult/Traverse/argument-1-M/index.html b/2.0/containers/CCResult/Traverse/argument-1-M/index.html
new file mode 100644
index 00000000..9c64ef4b
--- /dev/null
+++ b/2.0/containers/CCResult/Traverse/argument-1-M/index.html
@@ -0,0 +1,2 @@
+
+1-M (containers.CCResult.Traverse.1-M)
\ No newline at end of file
diff --git a/2.0/containers/CCResult/Traverse/index.html b/2.0/containers/CCResult/Traverse/index.html
new file mode 100644
index 00000000..70819ccb
--- /dev/null
+++ b/2.0/containers/CCResult/Traverse/index.html
@@ -0,0 +1,2 @@
+
+Traverse (containers.CCResult.Traverse)
val retry_m : int ‑> (unit ‑> ('a, 'err) tM.t) ‑> ('a, 'err list) tM.t
\ No newline at end of file
diff --git a/2.0/containers/CCResult/index.html b/2.0/containers/CCResult/index.html
new file mode 100644
index 00000000..b5f7f7b0
--- /dev/null
+++ b/2.0/containers/CCResult/index.html
@@ -0,0 +1,26 @@
+
+CCResult (containers.CCResult)
ModuleCCResult
Error Monad
Uses the new "result" type from OCaml 4.03.
Since: 0.16
type 'a sequence = ('a‑> unit) ‑> unit
type 'a equal = 'a‑>'a‑> bool
type 'a ord = 'a‑>'a‑> int
type 'a printer = Format.formatter ‑>'a‑> unit
Basics
Since: 1.5
include module type of Result
type ('a, 'b) result = ('a, 'b) Pervasives.result =
| Ok of 'a
| Error of 'b
type (+'good, +'bad) t = ('good, 'bad) Result.result =
val (<*>) : ('a‑>'b, 'err) t‑> ('a, 'err) t‑> ('b, 'err) t
a <*> b evaluates a and b, and, in case of success, returns
+Ok (a b). Otherwise, it fails, and the error of a is chosen
+over the error of b if both fail.
join t, in case of success, returns Ok o from Ok (Ok o). Otherwise,
+it fails with Error e where e is the unwrapped error of t.
val both : ('a, 'err) t‑> ('b, 'err) t‑> ('a * 'b, 'err) t
both a b, in case of success, returns Ok (o, o') with the ok values
+of a and b. Otherwise, it fails, and the error of a is chosen over the
+error of b if both fail.
val map_l : ('a‑> ('b, 'err) t) ‑>'a list ‑> ('b list, 'err) t
val fold_l : ('b‑>'a‑> ('b, 'err) t) ‑>'b‑>'a list ‑> ('b, 'err) t
val fold_seq : ('b‑>'a‑> ('b, 'err) t) ‑>'b‑>'asequence‑> ('b, 'err) t
Misc
val choose : ('a, 'err) t list ‑> ('a, 'err list) t
choose l selects a member of l that is a Ok _ value,
+or returns Error l otherwise, where l is the list of errors.
val retry : int ‑> (unit ‑> ('a, 'err) t) ‑> ('a, 'err list) t
retry n f calls f at most n times, returning the first result
+of f () that doesn't fail. If f fails n times, retry n f fails
+with the list of successive errors.
\ No newline at end of file
diff --git a/2.0/containers/CCResult/module-type-MONAD/index.html b/2.0/containers/CCResult/module-type-MONAD/index.html
new file mode 100644
index 00000000..76619ffd
--- /dev/null
+++ b/2.0/containers/CCResult/module-type-MONAD/index.html
@@ -0,0 +1,2 @@
+
+MONAD (containers.CCResult.MONAD)
\ No newline at end of file
diff --git a/2.0/containers/CCSet/.jbuilder-keep b/2.0/containers/CCSet/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCSet/index.html b/2.0/containers/CCSet/index.html
new file mode 100644
index 00000000..55922017
--- /dev/null
+++ b/2.0/containers/CCSet/index.html
@@ -0,0 +1,2 @@
+
+CCSet (containers.CCSet)
module Make : functor (O : Set.OrderedType) -> S with type Make.t = Set.Make(O).t and type Make.elt = O.t
\ No newline at end of file
diff --git a/2.0/containers/CCSet/module-type-S/index.html b/2.0/containers/CCSet/module-type-S/index.html
new file mode 100644
index 00000000..a8bf1e1d
--- /dev/null
+++ b/2.0/containers/CCSet/module-type-S/index.html
@@ -0,0 +1,3 @@
+
+S (containers.CCSet.S)
val pp : ?start:string ‑> ?stop:string ‑> ?sep:string ‑>eltprinter‑>tprinter
\ No newline at end of file
diff --git a/2.0/containers/CCString/.jbuilder-keep b/2.0/containers/CCString/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCString/Find/index.html b/2.0/containers/CCString/Find/index.html
new file mode 100644
index 00000000..b2e36b81
--- /dev/null
+++ b/2.0/containers/CCString/Find/index.html
@@ -0,0 +1,2 @@
+
+Find (containers.CCString.Find)
val find : ?start:int ‑> pattern:[ `Direct ] pattern‑> string ‑> int
Search for pattern in the string, left-to-right.
Returns the offset of the first match, -1 otherwise.
Parameterstart: offset in string at which we start.
val rfind : ?start:int ‑> pattern:[ `Reverse ] pattern‑> string ‑> int
Search for pattern in the string, right-to-left.
Returns the offset of the start of the first match from the right, -1 otherwise.
Parameterstart: right-offset in string at which we start.
\ No newline at end of file
diff --git a/2.0/containers/CCString/Split/index.html b/2.0/containers/CCString/Split/index.html
new file mode 100644
index 00000000..8cc13b35
--- /dev/null
+++ b/2.0/containers/CCString/Split/index.html
@@ -0,0 +1,9 @@
+
+Split (containers.CCString.Split)
ModuleCCString.Split
type drop_if_empty = {
first : bool;
last : bool;
}
Specification of what to do with empty blocks, as in split ~by:"-" "-a-b-".
{first=false; last=false} will return ""; "a"; "b"; "".
{first=true; last=false} will return "a"; "b" "".
{first=false; last=true} will return ""; "a"; "b".
{first=true; last=true} will return "a"; "b".
The default value of all remaining functions is Drop_none.
val klist_cpy : ?drop:drop_if_empty‑> by:string ‑> string ‑> string klist
val left : by:string ‑> string ‑> (string * string) option
Split on the first occurrence of by from the leftmost part of
+the string.
Since: 0.12
val left_exn : by:string ‑> string ‑> string * string
Split on the first occurrence of by from the leftmost part of the string.
RaisesNot_found: if by is not part of the string.
Since: 0.16
val right : by:string ‑> string ‑> (string * string) option
Split on the first occurrence of by from the rightmost part of
+the string.
Since: 0.12
val right_exn : by:string ‑> string ‑> string * string
Split on the first occurrence of by from the rightmost part of the string.
RaisesNot_found: if by is not part of the string.
Since: 0.16
\ No newline at end of file
diff --git a/2.0/containers/CCString/Sub/index.html b/2.0/containers/CCString/Sub/index.html
new file mode 100644
index 00000000..7803eca4
--- /dev/null
+++ b/2.0/containers/CCString/Sub/index.html
@@ -0,0 +1,4 @@
+
+Sub (containers.CCString.Sub)
Print the string within quotes.
+Renamed from print.
Since: 2.0
\ No newline at end of file
diff --git a/2.0/containers/CCString/index.html b/2.0/containers/CCString/index.html
new file mode 100644
index 00000000..c31129be
--- /dev/null
+++ b/2.0/containers/CCString/index.html
@@ -0,0 +1,20 @@
+
+CCString (containers.CCString)
ModuleCCString
Basic String Utils
Consider using Containers_string.KMP for pattern search, or Regex
+libraries.
type 'a gen = unit ‑>'a option
type 'a sequence = ('a‑> unit) ‑> unit
type 'a klist = unit ‑> [ `Nil | `Cons of 'a * 'aklist ]
compare_versions a b compares version stringsa and b,
+considering that numbers are above text.
Since: 0.13
val compare_natural : string ‑> string ‑> int
Natural Sort Order, comparing chunks of digits as natural numbers.
+https://en.wikipedia.org/wiki/Natural_sort_order
Since: 1.3
val edit_distance : string ‑> string ‑> int
Edition distance between two strings. This satisfies the classical
+distance axioms: it is always positive, symmetric, and satisfies
+the formula distance a b + distance b c >= distance a c.
\ No newline at end of file
diff --git a/2.0/containers/CCString/module-type-S/index.html b/2.0/containers/CCString/module-type-S/index.html
new file mode 100644
index 00000000..699f9a15
--- /dev/null
+++ b/2.0/containers/CCString/module-type-S/index.html
@@ -0,0 +1,4 @@
+
+S (containers.CCString.S)
Print the string within quotes.
+Renamed from print.
Since: 2.0
\ No newline at end of file
diff --git a/2.0/containers/CCVector/.jbuilder-keep b/2.0/containers/CCVector/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/CCVector/index.html b/2.0/containers/CCVector/index.html
new file mode 100644
index 00000000..c1753082
--- /dev/null
+++ b/2.0/containers/CCVector/index.html
@@ -0,0 +1,23 @@
+
+CCVector (containers.CCVector)
ModuleCCVector
Growable, mutable vector
type ro = [
| `RO
]
type rw = [
| `RW
]
Mutability is rw (read-write) or ro (read-only)
type ('a, 'mut) t
The type of a vector of elements of type 'a, with
+a mutability flat 'mut
Hint to the vector that it should have at least the given capacity.
+Just a hint, will not be enforced if the vector is empty and init
+is not provided.
Access the underlying shared array (do not modify!).
+unsafe_get_array v is longer than size v, but elements at higher
+index than size v are undefined (do not access!).
Range of integers, either ascending or descending (both included,
+therefore the result is never empty).
+Example: 1 -- 10 returns the vector [1;2;3;4;5;6;7;8;9;10]
\ No newline at end of file
diff --git a/2.0/containers/Containers/.jbuilder-keep b/2.0/containers/Containers/.jbuilder-keep
new file mode 100644
index 00000000..e69de29b
diff --git a/2.0/containers/Containers/Hashtbl/Make/index.html b/2.0/containers/Containers/Hashtbl/Make/index.html
new file mode 100644
index 00000000..6a64d417
--- /dev/null
+++ b/2.0/containers/Containers/Hashtbl/Make/index.html
@@ -0,0 +1,2 @@
+
+Make (containers.Containers.Hashtbl.Make)
\ No newline at end of file
diff --git a/2.0/containers/Containers/Hashtbl/MakeSeeded/argument-1-H/index.html b/2.0/containers/Containers/Hashtbl/MakeSeeded/argument-1-H/index.html
new file mode 100644
index 00000000..6ee3e6f7
--- /dev/null
+++ b/2.0/containers/Containers/Hashtbl/MakeSeeded/argument-1-H/index.html
@@ -0,0 +1,2 @@
+
+1-H (containers.Containers.Hashtbl.MakeSeeded.1-H)
\ No newline at end of file
diff --git a/2.0/containers/Containers/Hashtbl/MakeSeeded/index.html b/2.0/containers/Containers/Hashtbl/MakeSeeded/index.html
new file mode 100644
index 00000000..2c54f0b7
--- /dev/null
+++ b/2.0/containers/Containers/Hashtbl/MakeSeeded/index.html
@@ -0,0 +1,2 @@
+
+MakeSeeded (containers.Containers.Hashtbl.MakeSeeded)
\ No newline at end of file
diff --git a/2.0/containers/Containers/Hashtbl/index.html b/2.0/containers/Containers/Hashtbl/index.html
new file mode 100644
index 00000000..c282298f
--- /dev/null
+++ b/2.0/containers/Containers/Hashtbl/index.html
@@ -0,0 +1,20 @@
+
+Hashtbl (containers.Containers.Hashtbl)
ModuleContainers.Hashtbl
Since: 0.14
include module type of Hashtbl with type Hashtbl.statistics = Hashtbl.statistics and module Hashtbl.Make = Hashtbl.Make and type ('a, 'b) Hashtbl.t = ('a, 'b) Hashtbl.t
val map_list : ('a‑>'b‑>'c) ‑> ('a, 'b) Hashtbl.t ‑>'c list
Map on a hashtable's items, collect into a list
val incr : ?by:int ‑> ('a, int) Hashtbl.t ‑>'a‑> unit
incr ?by tbl x increments or initializes the counter associated with x.
+If get tbl x = None, then after update, get tbl x = Some 1;
+otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
Parameterby: if specified, the int value is incremented by by rather than 1
Since: 0.16
val decr : ?by:int ‑> ('a, int) Hashtbl.t ‑>'a‑> unit
Same as incr but substract 1 (or the value of by).
+If the value reaches 0, the key is removed from the table.
+This does nothing if the key is not already present in the table.
add_seq_count tbl seq increments the count of each element of seq
+by calling incr. This is useful for counting how many times each
+element of seq occurs.
Similar to add_seq_count, but allocates a new table and returns it
Since: 0.16
val to_list : ('a, 'b) Hashtbl.t ‑> ('a * 'b) list
List of bindings (order unspecified)
val of_list : ('a * 'b) list ‑> ('a, 'b) Hashtbl.t
Build a table from the given list of bindings k_i -> v_i,
+added in order using add. If a key occurs several times,
+it will be added several times, and the visible binding
+will be the last one.
val update : ('a, 'b) Hashtbl.t ‑> f:('a‑>'b option ‑>'b option) ‑> k:'a‑> unit
update tbl ~f ~k updates key k by calling f k (Some v) if
+k was mapped to v, or f k None otherwise; if the call
+returns None then k is removed/stays removed, if the call
+returns Some v' then the binding k -> v' is inserted
+using Hashtbl.replace
Since: 0.14
val get_or_add : ('a, 'b) Hashtbl.t ‑> f:('a‑>'b) ‑> k:'a‑>'b
get_or_add tbl ~k ~f finds and returns the binding of k
+in tbl, if it exists. If it does not exist, then f k
+is called to obtain a new binding v; k -> v is added
+to tbl and v is returned.
\ No newline at end of file
diff --git a/2.0/containers/Containers/Hashtbl/module-type-HashedType/index.html b/2.0/containers/Containers/Hashtbl/module-type-HashedType/index.html
new file mode 100644
index 00000000..5ebe8dd7
--- /dev/null
+++ b/2.0/containers/Containers/Hashtbl/module-type-HashedType/index.html
@@ -0,0 +1,2 @@
+
+HashedType (containers.Containers.Hashtbl.HashedType)
\ No newline at end of file
diff --git a/2.0/containers/Containers/Hashtbl/module-type-S'/index.html b/2.0/containers/Containers/Hashtbl/module-type-S'/index.html
new file mode 100644
index 00000000..9ea39c31
--- /dev/null
+++ b/2.0/containers/Containers/Hashtbl/module-type-S'/index.html
@@ -0,0 +1,20 @@
+
+S' (containers.Containers.Hashtbl.S')
incr ?by tbl x increments or initializes the counter associated with x.
+If get tbl x = None, then after update, get tbl x = Some 1;
+otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
Parameterby: if specified, the int value is incremented by by rather than 1
Same as incr but substract 1 (or the value of by).
+If the value reaches 0, the key is removed from the table.
+This does nothing if the key is not already present in the table.
add_seq_count tbl seq increments the count of each element of seq
+by calling incr. This is useful for counting how many times each
+element of seq occurs.
Build a table from the given list of bindings k_i -> v_i,
+added in order using add. If a key occurs several times,
+it will be added several times, and the visible binding
+will be the last one.
val update : 'at‑> f:(key‑>'a option ‑>'a option) ‑> k:key‑> unit
update tbl ~f ~k updates key k by calling f k (Some v) if
+k was mapped to v, or f k None otherwise; if the call
+returns None then k is removed/stays removed, if the call
+returns Some v' then the binding k -> v' is inserted
+using Hashtbl.replace
get_or_add tbl ~k ~f finds and returns the binding of k
+in tbl, if it exists. If it does not exist, then f k
+is called to obtain a new binding v; k -> v is added
+to tbl and v is returned.
\ No newline at end of file
diff --git a/2.0/containers/Containers/Hashtbl/module-type-S/index.html b/2.0/containers/Containers/Hashtbl/module-type-S/index.html
new file mode 100644
index 00000000..1fc7cd07
--- /dev/null
+++ b/2.0/containers/Containers/Hashtbl/module-type-S/index.html
@@ -0,0 +1,2 @@
+
+S (containers.Containers.Hashtbl.S)
\ No newline at end of file
diff --git a/2.0/containers/Containers/Hashtbl/module-type-SeededHashedType/index.html b/2.0/containers/Containers/Hashtbl/module-type-SeededHashedType/index.html
new file mode 100644
index 00000000..e7c21d46
--- /dev/null
+++ b/2.0/containers/Containers/Hashtbl/module-type-SeededHashedType/index.html
@@ -0,0 +1,2 @@
+
+SeededHashedType (containers.Containers.Hashtbl.SeededHashedType)
\ No newline at end of file
diff --git a/2.0/containers/Containers/Hashtbl/module-type-SeededS/index.html b/2.0/containers/Containers/Hashtbl/module-type-SeededS/index.html
new file mode 100644
index 00000000..906f36c0
--- /dev/null
+++ b/2.0/containers/Containers/Hashtbl/module-type-SeededS/index.html
@@ -0,0 +1,2 @@
+
+SeededS (containers.Containers.Hashtbl.SeededS)
\ No newline at end of file
diff --git a/2.0/containers/Containers/index.html b/2.0/containers/Containers/index.html
new file mode 100644
index 00000000..7ac09f82
--- /dev/null
+++ b/2.0/containers/Containers/index.html
@@ -0,0 +1,2 @@
+
+Containers (containers.Containers)
Shadow unsafe functions and operators from Pervasives
Since: 2.0
val (=) : int ‑> int ‑> bool
val (<>) : int ‑> int ‑> bool
val (<) : int ‑> int ‑> bool
val (>) : int ‑> int ‑> bool
val (<=) : int ‑> int ‑> bool
val (>=) : int ‑> int ‑> bool
val compare : int ‑> int ‑> int
val min : int ‑> int ‑> int
val max : int ‑> int ‑> int
val (==) : [ `Consider_using_CCEqual_physical ]
Deprecated Please use CCEqual.physical or Pervasives.(==) instead.
\ No newline at end of file
diff --git a/2.0/containers/index.html b/2.0/containers/index.html
new file mode 100644
index 00000000..846538d4
--- /dev/null
+++ b/2.0/containers/index.html
@@ -0,0 +1,3 @@
+
+containers-generated (containers.containers-generated)
Library containers
+This library exposes the following toplevel modules: