Module Num_printer.Impl

In this specific example, we chose to expose the signature of the provider's implementation. This is not something that is usually required, since make already provides a way to build a provider. This is only done here for the sake of the tests, as we show different ways an interface can be built based on various parts of its implementation.

type nonrec t = t
include Test_interfaces.Int_printer.Provider_interface.S with type t := t
val string_of_int : t -> int -> string
include Test_interfaces.Float_printer.Provider_interface.S with type t := t
val string_of_float : t -> float -> string