blob: 695576c5c35c8252c474c0925c25194ca40ce563 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
con colMeta = fn t_state :: (Type * Type) =>
{Nam : string,
Show : t_state.1 -> xbody,
Inject : sql_injectable t_state.1,
NewState : transaction t_state.2,
Widget : t_state.2 -> xbody,
ReadState : t_state.2 -> transaction t_state.1}
con colsMeta = fn cols :: {(Type * Type)} => $(map colMeta cols)
val int : string -> colMeta (int, source string)
val float : string -> colMeta (float, source string)
val string : string -> colMeta (string, source string)
functor Make(M : sig
con cols :: {(Type * Type)}
constraint [Id] ~ cols
val fl : folder cols
val tab : sql_table ([Id = int] ++ map fst cols)
val title : string
val cols : colsMeta cols
end) : sig
val main : unit -> transaction page
end
|