adamc@35: signature S1 = sig adamc@34: type t adamc@34: val zero : t adamc@34: end adamc@35: signature S2 = sig adamc@35: type t = int adamc@35: val zero : t adamc@35: end adamc@35: structure S = struct adamc@34: type t = int adamc@34: val zero = 0 adamc@34: end adamc@35: structure S1 : S1 = S adamc@35: structure S2 : S2 = S adamc@34: adamc@35: type t = S1.t adamc@35: val zero : t = S1.zero adamc@35: adamc@35: type t = S2.t adamc@35: val zero : int = S2.zero adamc@35: adamc@35: structure T = S1 adamc@35: val zero : S1.t = T.zero