adamc@418: functor Make (M : sig adamc@418: con fs :: {Unit} adamc@418: val names : $(mapUT string fs) adamc@418: end) = struct adamc@418: adamc@418: fun handler values = return adamc@418: {foldURX2 [string] [string] [body] adamc@418: (fn (nm :: Name) (rest :: {Unit}) [[nm] ~ rest] name value => adamc@418:
  • {[name]} = {[value]}
  • adamc@418:
    ) adamc@418: [M.fs] M.names values} adamc@418:
    adamc@418: adamc@418: fun main () = return adamc@418:
    adamc@418: {foldUR [string] [fn cols :: {Unit} => xml form [] (mapUT string cols)] adamc@418: (fn (nm :: Name) (rest :: {Unit}) [[nm] ~ rest] name adamc@418: (acc : xml form [] (mapUT string rest)) => adamc@418:
  • {[name]}:
  • adamc@418: {useMore acc} adamc@418:
    ) adamc@418: adamc@418: [M.fs] M.names} adamc@418: adamc@418: adamc@418:
    adamc@418: adamc@418: end