Microsoft Research, 1 Guildhall Street, Cambridge, U.K.
Dipartimento di Scienze dell'Informazione, UniversitÓ di Bologna, Mura Anteo Zamboni 7, 40127 Bologna, Italy
INRIA Rocquencourt, BP 105, 78153 Le Chesnay Cedex France.
In the plain join calculus, this problem is less acute: for a given definition, each entry point is passed as a separate name, so lexical scoping on private names provides some privacy; on the other hand, large tuples of public names must be passed instead of single objects (see Appendix A.)
In Ocaml, objects are kept monomorphic for simplicity, and polymorphic functions are usually defined outside of objects.
We could use more general approximations, e.g., we could discard labels whose types have no free variable as we compute Ú K¨ from K. However, such generalizations complicate type inference, which becomes sensitive to the ordering of type variable instantiations.