1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
signature A = sig end
structure A = struct end
structure Ao : A = A
structure B = struct
type t = int
end
structure Bo0 : sig end = B
structure BoA : A = B
signature B1 = sig
type t
end
structure Bo1 : B1 = B
(*structure AoB1 : B1 = A*)
signature B2 = sig
type t = int
end
structure Bo2 : B2 = B
structure C = struct
type t = float
end
structure CoB1 : B1 = C
(*structure CoB2 : B2 = C*)
signature NAT = sig
type t
val zero : t
end
structure Nat : NAT = struct
type t = int
val zero = 0
end
(*structure NotNat : NAT = struct
type t = int
val zero = 0.0
end*)
(*structure NotNat : NAT = struct
val zero = 0
end*)
signature WOBBLE = sig
type t
type s
end
structure Wobble1 = struct
type t = int
type s = float
end
structure Wobble2 = struct
type s = int
type t = float
end
structure N = struct
type t = string
structure N2 = struct
type t = int
val zero = 0
end
val x = "Hi"
end
signature N = sig
structure N2 : NAT
type t
val x : t
end
structure No : N = N
|