functor (A : T) (B : T) (C : T) -> sig type t = A.t * B.t * C.t val eq : t -> t -> bool val to_string : t -> string val compare : t -> t -> int end