From 2ad30811b217c0880f8ea65a7da0f755ec0cf9e6 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sat, 13 Sep 2008 10:30:45 -0400 Subject: foldTR2 --- tests/crud.ur | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'tests/crud.ur') diff --git a/tests/crud.ur b/tests/crud.ur index c3e76e6a..3837061e 100644 --- a/tests/crud.ur +++ b/tests/crud.ur @@ -1,4 +1,5 @@ -con colMeta = fn cols :: {Type} => $(Top.mapTT (fn t => {Show : t -> xbody}) cols) +con colMeta' = fn t :: Type => {Show : t -> xbody} +con colMeta = fn cols :: {Type} => $(Top.mapTT colMeta' cols) functor Make(M : sig con cols :: {Type} @@ -15,19 +16,19 @@ val tab = M.tab fun list () = rows <- query (SELECT * FROM tab AS T) - (fn fs acc => return + (fn (fs : {T : $([Id = int] ++ M.cols)}) acc => return {acc} {txt _ fs.T.Id} - {fold [fn cols :: {Type} => $cols -> colMeta cols -> xtr] - (fn (nm :: Name) (t :: Type) (rest :: {Type}) acc => + {foldTR2 [idT] [colMeta'] [fn _ => xtr] + (fn (nm :: Name) (t :: Type) (rest :: {Type}) => [[nm] ~ rest] => - fn r cols => + fn v funcs acc => - {cols.nm.Show r.nm} - {acc (r -- nm) (cols -- nm)} + {funcs.Show v} + {acc} ) - (fn _ _ => ) + [M.cols] (fs.T -- #Id) M.cols} ) ; -- cgit v1.2.3