Module Validated_string

Utils to manipulate abstract types that are strings in their implementation.

module type S = Validated_string_intf.S
module type X = Validated_string_intf.X
module Make (_ : X) : S with type t := string

Make returns an interface that exposes the fact that t = string so this equality can be used by other functions in the implementation. However, the expected pattern is that such equality is hidden by the inclusion of S in the mli of a validated string.