include sig ... end
val equal : t -> t -> boolval compare : t -> t -> intval name : unit -> stringval arbitrary : unit -> t QCheck.arbitraryval is_definite : t -> boolval collapse :
(V.t * ([> `Field of F.F.t * 'a | `Index of F.I.t * 'a | `NoOffset ] as 'a)) ->
(V.t * 'a) ->
boolval leq :
(V.t * ([> `Field of F.F.t * 'a | `Index of F.I.t * 'a ] as 'a)) ->
(V.t * ([> `Field of F.F.t * 'b | `Index of F.I.t * 'b | `NoOffset ] as 'b)) ->
boolval join :
('a * ([> `Field of F.F.t * 'b | `Index of F.I.t * 'b ] as 'b)) ->
('c * ([> `Field of F.F.t * 'd | `Index of F.I.t * 'd ] as 'd)) ->
'a * ([> `Field of F.F.t * 'e | `Index of F.I.t * 'e | `NoOffset ] as 'e)