*
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.
1
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.)
2
In Ocaml, objects are kept monomorphic for simplicity, and polymorphic functions are usually defined outside of objects.
3
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.