summaryrefslogtreecommitdiff
path: root/demo/ref.ur
diff options
context:
space:
mode:
Diffstat (limited to 'demo/ref.ur')
-rw-r--r--demo/ref.ur30
1 files changed, 30 insertions, 0 deletions
diff --git a/demo/ref.ur b/demo/ref.ur
new file mode 100644
index 0000000..b21d40a
--- /dev/null
+++ b/demo/ref.ur
@@ -0,0 +1,30 @@
+structure IR = RefFun.Make(struct
+ type data = int
+ end)
+
+structure SR = RefFun.Make(struct
+ type data = string
+ end)
+
+fun mutate () =
+ ir <- IR.new 3;
+ ir' <- IR.new 7;
+ sr <- SR.new "hi";
+
+ IR.write ir' 10;
+
+ iv <- IR.read ir;
+ iv' <- IR.read ir';
+ sv <- SR.read sr;
+
+ IR.delete ir;
+ IR.delete ir';
+ SR.delete sr;
+
+ return <xml><body>
+ {[iv]}, {[iv']}, {[sv]}
+ </body></xml>
+
+fun main () = return <xml><body>
+ <form><submit action={mutate} value="Do some pointless stuff"/></form>
+</body></xml>