Module Datatype_sig.Conv
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
Parameters
module C : sig ... endSignature
type t = C.tAny notion of equality is allowed, as long as it is an equivalence relation, and that if a == b, then equal a b.
val hash : t -> inthash requires that equal values have the same hash.
val pretty : Stdlib.Format.formatter -> t -> unit