-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheditableTable.urs
22 lines (18 loc) · 916 Bytes
/
editableTable.urs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(* Basic abstraction for collaborative modification of a database table *)
type permission = {Add : bool,
Delete : bool,
Modify : bool}
functor Make(M : sig
con fs :: {(Type * Type * Type)}
val widgets : $(map Widget.t' fs)
table tab : $(map fst3 fs)
val fl : folder fs
val eqs : $(map eq (map fst3 fs))
val ords : $(map ord (map fst3 fs))
val injs : $(map sql_injectable (map fst3 fs))
val labels : $(map (fn _ => string) fs)
val permission : transaction permission
val onAdd : $(map fst3 fs) -> transaction unit
val onDelete : $(map fst3 fs) -> transaction unit
val onModify : {Old : $(map fst3 fs), New : $(map fst3 fs)} -> transaction unit
end) : Ui.S0