also, what approach does it take to memory management and / or deciding who owns what? i'm just glancing at the paper now (should really be working) and the lack of emphasis on that seems worrying - suspect i am missing something?
[edit: replying to myself, the key phrase is "ownership"; see section 2.1: Ownership The management of object life cycles requires a clear policy of ownership and scope rules. In languages like C and C ++ where semantic by value prevails, the burden is put on the programmer’s shoulders. In languages like JAVA, C # and D where semantic by reference prevails, the burden is put on the garbage collector. In this domain, COS lets the developer choose between garbage collection (e.g. Boehm GC ) and manual reference counting with rich semantic (section 3.5).]