summaryrefslogtreecommitdiff
path: root/demo/treeFun.urs
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-11-06 17:09:53 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-11-06 17:09:53 -0500
commit98d669cf07157e275fa796fdd5ad35f3388b0ad1 (patch)
tree16401277a8c24a1bcfcc410700526f64ba27a5b8 /demo/treeFun.urs
parent5b41c32b3fb60944fd5d342f7f6ee4413510b9f5 (diff)
About to begin optimization of recursive transaction functions
Diffstat (limited to 'demo/treeFun.urs')
-rw-r--r--demo/treeFun.urs22
1 files changed, 22 insertions, 0 deletions
diff --git a/demo/treeFun.urs b/demo/treeFun.urs
new file mode 100644
index 00000000..501a0575
--- /dev/null
+++ b/demo/treeFun.urs
@@ -0,0 +1,22 @@
+functor Make(M : sig
+ type key
+ con id :: Name
+ con parent :: Name
+ con cols :: {Type}
+ constraint [id] ~ [parent]
+ constraint [id, parent] ~ cols
+
+ val key_inj : sql_injectable key
+ val option_key_inj : sql_injectable (option key)
+
+ table tab : [id = key, parent = option key] ++ cols
+ end) : sig
+
+ con id = M.id
+ con parent = M.parent
+
+ val tree : ($([id = M.key, parent = option M.key] ++ M.cols) -> xbody)
+ -> option M.key
+ -> transaction xbody
+
+end