Hi Steffen,
Your question contains the answer :) You can indeed expose an object type and a class type without exposing the class.
module Example : sig
class type t = object
method print : unit
end
end = struct
class t = object
method print = print_endline "yep"
end
end
The class implementation will not be exposed, so `new Example.t` will say `Unbound class Example.t`. But, the class type and object type will be exposed,
e.g, you may say `type printable = Example.t` (yes, class type declaration declares both the type and the class type).
Regards,
Ivan