Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
This module offers persistent stores based on immutable integer maps. The module UnionFind.StoreMap
itself is an implementation of stores based on OCaml's Map
module. The functor UnionFind.StoreMap.Make
can also be used to construct an implementation of stores based on a user-provided implementation of immutable maps.
A store can be thought of as a region of memory in which objects, known as references, can be dynamically allocated, read, and written. Stores are homogeneous: all references in a store of type 'a store
have the content type, namely 'a
. In general, a store may be persistent or mutable, depending on which data structure is used to implement it.
val new_store : unit -> 'a store
new_store()
creates an empty store.
A reference of type 'a rref
can be thought of as (a pointer to) an object that exists in some store.
make s v
creates a fresh reference in the store s
and sets its content to v
. It returns a pair of an updated store and the newly-created reference.
get s x
reads the current content of the reference x
in the store s
. It returns a pair of a possibly-updated store and the current content of the reference.
set s x v
updates the store s
so as to set the content of the reference x
to v
. It returns an updated store.
eq s x y
determines whether the references x
and y
are the same reference. It returns a pair of a possibly-updated store and a Boolean result. The references x
and y
must belong to the store s
.