functor Make (M : sig
con fs :: {Unit}
val names : $(mapUT string fs)
end) = struct
fun handler values = return
{foldURX2 [string] [string] [body]
(fn (nm :: Name) (rest :: {Unit}) [[nm] ~ rest] name value =>
{[name]} = {[value]}
)
[M.fs] M.names values}
fun main () = return
end