diff options
Diffstat (limited to 'tests/sig_impl.ur')
-rw-r--r-- | tests/sig_impl.ur | 58 |
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 |