Inter.Compress
type dict_key = int
type pack_offset = Optint.Int63.t
type name =
| Indirect of dict_key
| Direct of Val.step
type address =
| Offset of pack_offset
| Hash of hash
type ptr = {
index : dict_key;
hash : address;
}
type tree = {
depth : dict_key;
length : dict_key;
entries : ptr list;
type value =
| Contents of name * address * Val.metadata
| Node of name * address
type v =
| Values of value list
| Tree of tree
type v1 = {
mutable length : int;
v : v;
type tagged_v =
| V1_stable of v
| V1_unstable of v
| V2_root of v1
| V2_nonroot of v1
type t = {
hash : hash;
tv : tagged_v;
val t : t Irmin.Type.t