Mercurial > urweb
annotate tests/datatypeP2.ur @ 711:7292bcb7c02d
Made type class system very general; demo compiles
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 09 Apr 2009 12:31:56 -0400 |
parents | 71bafe66dbe1 |
children |
rev | line source |
---|---|
adamc@194 | 1 datatype sum a b = Left of a | Right of b |
adamc@194 | 2 |
adamc@194 | 3 val l : sum int string = Left 5 |
adamc@194 | 4 val r : sum int string = Right "Hi" |
adamc@194 | 5 |
adamc@194 | 6 val show = fn x : sum int string => case x of Left _ => "Left _" | Right s => s |
adamc@194 | 7 |
adamc@194 | 8 val page = fn x => <html><body> |
adamc@194 | 9 {cdata (show x)} |
adamc@194 | 10 </body></html> |
adamc@194 | 11 |
adamc@194 | 12 val main : unit -> page = fn () => <html><body> |
adamc@194 | 13 <li><a link={page l}>Left</a></li> |
adamc@194 | 14 <li><a link={page r}>Right</a></li> |
adamc@194 | 15 </body></html> |