adamc@31: signature A = sig end adamc@31: structure A = struct end adamc@31: structure Ao : A = A adamc@31: adamc@31: adamc@31: structure B = struct adamc@31: type t = int adamc@31: end adamc@31: structure Bo0 : sig end = B adamc@31: structure BoA : A = B adamc@31: adamc@31: signature B1 = sig adamc@31: type t adamc@31: end adamc@31: structure Bo1 : B1 = B adamc@31: (*structure AoB1 : B1 = A*) adamc@31: adamc@31: signature B2 = sig adamc@31: type t = int adamc@31: end adamc@31: structure Bo2 : B2 = B adamc@31: adamc@31: adamc@31: structure C = struct adamc@31: type t = float adamc@31: end adamc@31: structure CoB1 : B1 = C adamc@31: (*structure CoB2 : B2 = C*) adamc@32: adamc@32: adamc@32: signature NAT = sig adamc@32: type t adamc@32: val zero : t adamc@32: end adamc@32: structure Nat : NAT = struct adamc@32: type t = int adamc@32: val zero = 0 adamc@32: end adamc@32: (*structure NotNat : NAT = struct adamc@32: type t = int adamc@32: val zero = 0.0 adamc@32: end*) adamc@32: (*structure NotNat : NAT = struct adamc@32: val zero = 0 adamc@32: end*) adamc@32: adamc@32: adamc@32: signature WOBBLE = sig adamc@32: type t adamc@32: type s adamc@32: end adamc@32: structure Wobble1 = struct adamc@32: type t = int adamc@32: type s = float adamc@32: end adamc@32: structure Wobble2 = struct adamc@32: type s = int adamc@32: type t = float adamc@32: end adamc@33: adamc@33: adamc@33: structure N = struct adamc@33: type t = string adamc@33: structure N2 = struct adamc@33: type t = int adamc@33: val zero = 0 adamc@33: end adamc@33: val x = "Hi" adamc@33: end adamc@33: signature N = sig adamc@33: structure N2 : NAT adamc@33: type t adamc@33: val x : t adamc@33: end adamc@33: structure No : N = N