Mercurial > urweb
view tests/datatypeP.ur @ 1431:4a6f84092399
Represent 'unit' as C 'int'; change pattern match compilation to avoid 'goto'; change Postgres prepared statement compilation to make life easier for the GCC escape analysis; all this in support of better tail call optimization
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Thu, 10 Mar 2011 18:51:15 -0500 |
parents | 71bafe66dbe1 |
children |
line wrap: on
line source
datatype option a = None | Some of a val none : option int = None val some_1 : option int = Some 1 val f = fn t ::: Type => fn x : option t => case x of None => None | Some x => Some (Some x) val none_again = f none val some_1_again = f some_1 val show = fn t ::: Type => fn x : option t => case x of None => "None" | Some _ => "Some" val page = fn x => <html><body> {cdata (show x)} </body></html> val main : unit -> page = fn () => <html><body> <li><a link={page none_again}>None</a></li> <li><a link={page some_1_again}>Some 1</a></li> </body></html>