Module Make_internal.Compress

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