Module Datatype_sig
module type S = sig ... endGeneric operations that must be provided by every data type.
If you do not want to define all datatype operations immediately.
Generic products and sums of bases
You an use this with conversion from records and sum types.
When a type t can be converted (ideally with an injection to B1.t), we can define its oprations in terms of those of B1
Usual types and type operators
module StringMap : sig ... endmodule StringHash : sig ... end