Mercurial > urweb
view demo/metaform.ur @ 538:a9fba52dfce4
Module typing
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 29 Nov 2008 14:09:43 -0500 |
parents | ad7e854a518c |
children | 6c4643880df5 |
line wrap: on
line source
functor Make (M : sig con fs :: {Unit} val names : $(mapUT string fs) end) = struct fun handler values = return <xml><body> {foldURX2 [string] [string] [body] (fn (nm :: Name) (rest :: {Unit}) [[nm] ~ rest] name value => <xml> <li> {[name]} = {[value]}</li> </xml>) [M.fs] M.names values} </body></xml> fun main () = return <xml><body> <form> {foldUR [string] [fn cols :: {Unit} => xml form [] (mapUT string cols)] (fn (nm :: Name) (rest :: {Unit}) [[nm] ~ rest] name (acc : xml form [] (mapUT string rest)) => <xml> <li> {[name]}: <textbox{nm}/></li> {useMore acc} </xml>) <xml/> [M.fs] M.names} <submit action={handler}/> </form> </body></xml> end