Modules, Abstract Types, and Distributed Versioning There are a few errata in both TR and POPL versions of this paper, in the Section 3.1.1 `Sharing' examples. 1) The subtype relation is inverted in a few places. TR p13 lines 15,16 (resp. POPL p242 column 1 lines -14,-13) should read > EQ(int) <:: Type > [X::EQ(int),X] < [X::Type,X] sig and TR p13 line -11 should read > [X::EQ(T),X] < [X::Type,X] sig 2) The Ftrans and Fopaque that are used in TR p14 lines 5,7 (resp. POPL p242 column 2 lines 19,21) should have identity bodies not pairs, ie be \it{Fopaque'} \defeq \U:[X::Type,X]. [U.Type,U.term] as [Y::Type,Y] \it{Ftrans'} \defeq \U:[X::Type,X]. [U.Type,U.term] as [Y::EQ(U.Type),Y] (or alternatively the applications of Fb should be Fb (Ftrans U) (Ftrans U) Fb (Fopaque U) (Fopaque U) for the Ftrans and Fopaque as defined in the published text). My apologies for these errors, and thanks to Sam Staton for pointing them out. Peter Sewell 20 Jan 2002