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 -> Base.int -> Base.string
include Test_interfaces.Float_printer.Provider_interface.S with type t := t
val string_of_float : t -> Base.float -> Base.string