type ('k, 'v) t
= 'k * [ `Left of 'v | `Right of 'v | `Unequal of 'v * 'v ]
include sig ... end
val compare : ('k ‑> 'k ‑> int) ‑> ('v ‑> 'v ‑> int) ‑> ('k, 'v) t ‑> ('k, 'v) t ‑> int
val t_of_sexp : (Base.Sexp.t ‑> 'k) ‑> (Base.Sexp.t ‑> 'v) ‑> Base.Sexp.t ‑> ('k, 'v) t
val sexp_of_t : ('k ‑> Base.Sexp.t) ‑> ('v ‑> Base.Sexp.t) ‑> ('k, 'v) t ‑> Base.Sexp.t