adamc@215: val page = fn p :: (Type * Type) => fn f : p.1 -> string => fn x : p.1 => <html><body>
adamc@215:         {cdata (f x)}
adamc@215: </body></html>
adamc@215: 
adamc@215: val page_string = page [(string, int)] (fn x => x)
adamc@215: 
adamc@215: val main : unit -> page = fn () => <html><body>
adamc@215:         <a link={page_string "Hi"}>Hi</a>
adamc@215: </body></html>