Is it possible to expose an object or class type in OCaml without exposing the constructor, i.e. the ability to construct objects of the type? OCaml supports private ADTs and type synonyms, but the private keyword doesn't seem to work with classes or objects.