Mercurial > urweb
annotate demo/batchFun.urs @ 993:10114d7b7477
SELECT DISTINCT; eta expansion during Cjrization
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 06 Oct 2009 15:39:27 -0400 |
parents | 1fb318c17546 |
children | bb3fc575cfe7 |
rev | line source |
---|---|
adamc@650 | 1 con colMeta = fn t_state :: (Type * Type) => |
adamc@650 | 2 {Nam : string, |
adamc@650 | 3 Show : t_state.1 -> xbody, |
adamc@650 | 4 Inject : sql_injectable t_state.1, |
adamc@650 | 5 |
adamc@650 | 6 NewState : transaction t_state.2, |
adamc@650 | 7 Widget : t_state.2 -> xbody, |
adamc@650 | 8 ReadState : t_state.2 -> transaction t_state.1} |
adamc@650 | 9 con colsMeta = fn cols :: {(Type * Type)} => $(map colMeta cols) |
adamc@650 | 10 |
adamc@650 | 11 val int : string -> colMeta (int, source string) |
adamc@650 | 12 val float : string -> colMeta (float, source string) |
adamc@650 | 13 val string : string -> colMeta (string, source string) |
adamc@650 | 14 |
adamc@650 | 15 functor Make(M : sig |
adamc@650 | 16 con cols :: {(Type * Type)} |
adamc@650 | 17 constraint [Id] ~ cols |
adamc@650 | 18 val fl : folder cols |
adamc@650 | 19 |
adamc@706 | 20 table tab : ([Id = int] ++ map fst cols) |
adamc@650 | 21 |
adamc@650 | 22 val title : string |
adamc@650 | 23 |
adamc@650 | 24 val cols : colsMeta cols |
adamc@650 | 25 end) : sig |
adamc@650 | 26 val main : unit -> transaction page |
adamc@650 | 27 end |