diff tests/subsig.lac @ 60:8bce148070a7

Subsignatures example
author Adam Chlipala <adamc@hcoop.net>
date Sun, 22 Jun 2008 19:10:47 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/subsig.lac	Sun Jun 22 19:10:47 2008 -0400
@@ -0,0 +1,43 @@
+structure M = struct
+        signature S = sig
+                type t
+        end
+end
+
+structure N : M.S = struct
+        type t = int
+end
+
+structure M' = struct
+        type t = int
+        val y = 42
+
+        signature S = sig
+                val x : t
+        end
+end
+
+structure N' : M'.S = struct
+        val x = 0
+end
+
+signature S = sig
+        type t
+        val y : t
+
+        signature S = sig
+                val x : t
+        end
+end
+
+structure M'S : S = M'
+
+structure V : M'S.S = struct
+        val x = M'S.y
+end
+
+structure M'S' = M'S
+
+structure V : M'S'.S = struct
+        val x = M'S.y
+end