summaryrefslogtreecommitdiff
path: root/tests/sig_impl.ur
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sig_impl.ur')
-rw-r--r--tests/sig_impl.ur58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/sig_impl.ur b/tests/sig_impl.ur
new file mode 100644
index 00000000..cdcd4ef7
--- /dev/null
+++ b/tests/sig_impl.ur
@@ -0,0 +1,58 @@
+signature S = sig
+ type t
+ val x : t
+end
+
+structure M : S = struct
+ val x = 0
+end
+
+signature S = sig
+ con r :: {Type}
+ val x : $r
+end
+
+structure M : S = struct
+ val x = {A = 0, B = "Hi"}
+end
+
+signature S = sig
+ type t
+ con r :: {Type}
+ val x : t -> $r
+end
+
+structure M : S = struct
+ val x = fn v : int => {A = 0, B = "Hi"}
+end
+
+signature S = sig
+ con nm :: Name
+ con t :: Type
+ con r :: {Type}
+ val x : $([nm = t] ++ r)
+end
+
+structure M : S = struct
+ val x = {A = 0, B = "Hi"}
+end
+
+signature S = sig
+ con nm :: Name
+ con r :: {Type}
+ val x : $([nm = int] ++ r)
+end
+
+structure M : S = struct
+ val x = {A = 0, B = "Hi"}
+end
+
+signature S = sig
+ con nm :: Name
+ con r :: {Type}
+ val x : $([nm = string] ++ r)
+end
+
+structure M : S = struct
+ val x = {A = 0, B = "Hi"}
+end