Functor Datatype.Make

module Make: 
functor (X : Make_input-> S with type t = X.t

Generic datatype builder.

Parameters:
X : Make_input

include Datatype.S_no_copy
val copy : Datatype.t -> Datatype.t

Deep copy: no possible sharing between x and copy x.