UnionFind.StoreRefSourceThis module offers mutable stores based on primitive mutable references.
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.
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.