> module type A = sig> type t = int> val of_int : int -> t> end>> module type B = sig> type t> include A with type t := t> end>> [...]>> In the example, I am not sure what exactly are the signatures involved in the comparison, since the included signature> does not contain the definition of the type t ( removed by the use of := ), and without the type [t] the signature are> virtually identical.The two signatures being compared are the signatures before thedefinition of t is removed, so essentially:sigtype t = intval of_int : int -> tendis being compared with:sigtype t = t'val of_int : int -> tendwhere t' refers to the type defined by the `type t` definition in the Bsignature.This prevents inconsistent signatures being created. For example,type t = T of intmodule type C = sigtype s = inttype r = t = T of sendmodule type D = C with type s := floatwould result in:module type D = sig type r = t = T of float endwhich is inconsistent, since the definition does not match the equation.Regards,Leo