DatalogLibSourceThis module implements a depth-first array traversal. It is depth-first in order to fit with backtracking when cells contain persistent array.
This module implements a persistent array data structure as described in "A Persistent Union-Find Data Structure" (Sylvain Concohn and Jean-Chrisophe Filliâtre.
Modules with this module type should provide Union-Find algorithms and the indexed storage data structure. Note that we take the opportunity of implementing from scratch such algorithms to allow the find function returns not only the index of the representative and the values it indexes, but also the storage data structure, so that the find algorithm can modify it, in particular with path compression.