diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/basis.urs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/basis.urs b/lib/basis.urs index 3bd2459c..4cd2f6da 100644 --- a/lib/basis.urs +++ b/lib/basis.urs @@ -198,6 +198,28 @@ val query : tables ::: {{Type}} -> exps ::: {Type} -> tables ~ exps -> transaction state +(*** Database mutators *) + +type dml +val dml : dml -> transaction unit + +val insert : fields ::: {Type} + -> sql_table fields + -> $fields + -> dml + +val update : changed ::: {Type} -> unchanged ::: {Type} -> changed ~ unchanged + -> sql_table (changed ++ unchanged) + -> $changed + -> sql_exp [T = changed ++ unchanged] [] [] bool + -> dml + +val delete : fields ::: {Type} + -> sql_table fields + -> sql_exp [T = fields] [] [] bool + -> dml + + (** XML *) con tag :: {Type} -> {Unit} -> {Unit} -> {Type} -> {Type} -> Type |