CamlORBit comes in the form of a runtime library (a mixed caml/C library) and an IDL compiler (a caml program). The compiler reads CORBA IDL files and outputs stubs and skeletons code in caml for communicating with ORBit using the runtime library.
The stub code (for client operations) come in two versions : a low-level one using an abstract type with a contravariant type parameter and a higher-level one that wraps this abstract type in a caml object. This is the same scheme as used in LablGTK.
The skel code (for server operations) use a caml object.