comparison demo/more/dbgrid.urs @ 935:2422360c78a3

Dropped in initial aggregate types
author Adam Chlipala <adamc@hcoop.net>
date Tue, 15 Sep 2009 09:40:51 -0400
parents 51bc7681c47e
children 37dd42935dad
comparison
equal deleted inserted replaced
934:36f787c02287 935:2422360c78a3
11 Validate : t -> signal bool} 11 Validate : t -> signal bool}
12 12
13 con colMeta = fn (row :: {Type}) (global_t :: (Type * Type)) => 13 con colMeta = fn (row :: {Type}) (global_t :: (Type * Type)) =>
14 {Initialize : transaction global_t.1, 14 {Initialize : transaction global_t.1,
15 Handlers : global_t.1 -> colMeta' row global_t.2} 15 Handlers : global_t.1 -> colMeta' row global_t.2}
16
17 con aggregateMeta = fn (row :: {Type}) (acc :: Type) =>
18 {Initial : acc,
19 Step : $row -> acc -> acc,
20 Display : acc -> xbody}
16 21
17 structure Direct : sig 22 structure Direct : sig
18 con metaBase = fn actual_input :: (Type * Type) => 23 con metaBase = fn actual_input :: (Type * Type) =>
19 {Display : actual_input.2 -> xbody, 24 {Display : actual_input.2 -> xbody,
20 Edit : actual_input.2 -> xbody, 25 Edit : actual_input.2 -> xbody,
93 val cols : $(map (colMeta (key ++ row)) cols) 98 val cols : $(map (colMeta (key ++ row)) cols)
94 99
95 val keyFolder : folder key 100 val keyFolder : folder key
96 val rowFolder : folder row 101 val rowFolder : folder row
97 val colsFolder : folder cols 102 val colsFolder : folder cols
103
104 con aggregates :: {Type}
105 val aggregates : $(map (aggregateMeta (key ++ row)) aggregates)
98 end) : sig 106 end) : sig
99 type grid 107 type grid
100 108
101 val grid : transaction grid 109 val grid : transaction grid
102 val sync : grid -> transaction unit 110 val sync : grid -> transaction unit