adamc@253: table t1 : {A : int, B : string, C : float, D : bool} adamc@243: table t2 : {A : float, D : int} adamc@243: adamc@243: datatype list a = Nil | Cons of a * list a adamc@243: adamc@254: val q1 = (SELECT * FROM t1) adamc@253: adamc@253: val r1 : transaction (list {A : int, B : string, C : float, D : bool}) = adamc@748: query q1 adamc@748: (fn fs acc => return (Cons (fs.T1, acc))) adamc@748: Nil adamc@243: adamc@249: val r2 : transaction string = adamc@748: ls <- r1; adamc@748: return (case ls of adamc@748: Nil => "Problem" adamc@748: | Cons ({B = b, ...}, _) => b) adamc@249: adamc@748: fun main () : transaction page = adamc@748: s <- r2; adamc@748: return adamc@748: {cdata s} adamc@748: