functor (T1 : sig type t end) (T2 : sig type t end->
  sig type t = T1.t * Tuple.T2.t end