annotate demo/more/conference.urs @ 1003:61c30f0742d7
Registering for Conference1
author |
Adam Chlipala <adamc@hcoop.net> |
date |
Tue, 20 Oct 2009 11:05:58 -0400 |
parents |
1d456a06ea4e |
children |
a87495bcaeec |
rev |
line source |
adamc@1003
|
1 con meta = fn (db :: Type, widget :: Type) =>
|
adamc@1001
|
2 {Show : db -> xbody,
|
adamc@1001
|
3 Widget : nm :: Name -> xml form [] [nm = widget],
|
adamc@1001
|
4 WidgetPopulated : nm :: Name -> db -> xml form [] [nm = widget],
|
adamc@1001
|
5 Parse : widget -> db,
|
adamc@1001
|
6 Inject : sql_injectable db}
|
adamc@1001
|
7
|
adamc@1003
|
8 val int : meta (int, string)
|
adamc@1003
|
9 val float : meta (float, string)
|
adamc@1003
|
10 val string : meta (string, string)
|
adamc@1003
|
11 val bool : meta (bool, bool)
|
adamc@1001
|
12
|
adamc@1001
|
13 functor Make(M : sig
|
adamc@1003
|
14 con paper :: {(Type * Type)}
|
adamc@1003
|
15 constraint [Id, Title] ~ paper
|
adamc@1003
|
16 val paper : $(map meta paper)
|
adamc@1003
|
17
|
adamc@1001
|
18 con review :: {(Type * Type)}
|
adamc@1003
|
19 constraint [Paper, User] ~ review
|
adamc@1003
|
20 val review : $(map meta review)
|
adamc@1001
|
21 end) : sig
|
adamc@1001
|
22
|
adamc@1001
|
23 val main : unit -> transaction page
|
adamc@1001
|
24
|
adamc@1001
|
25 end
|