If one wants to include a functor signature in another...
module type EQ = sig
type t
val eq : t * t -> bool
end
module type EQ_PROD = functor (X : EQ) (Y : EQ) ->
sig
type t = X.t * Y.t
val eq : t * t -> bool
end
module type ORD = sig
include EQ
val lt : t * t -> bool
end
module type LT_PROD = functor (X : EQ) (Y : EQ) ->
sig
include EQ_PROD (*What do I say here?*)
end