adam@1303: functor Make(M : sig adam@1303: con ts :: {(Type * Type)} adam@1303: val tab : sql_table (map fst ts) [] adam@1303: val cols : $(map (fn p => p.2 -> string) ts) adam@1303: end) = struct adam@1303: end adam@1303: adam@1303: table t : {A : string} adam@1303: adam@1303: open Make(struct adam@1303: val tab = t adam@1303: val cols = {A = fn p : {B : string, C : string} => p.B ^ p.C} adam@1303: end)