view tests/datatypeP2.ur @ 2126:ec1614fb97bb

Change MonoReduce to do fixed-pointing, since it sometimes enables more optimizations for itself (e.g., yanking lambdas out of [case]s)
author Adam Chlipala <adam@chlipala.net>
date Fri, 06 Mar 2015 09:46:21 -0500
parents 71bafe66dbe1
children
line wrap: on
line source
datatype sum a b = Left of a | Right of b

val l : sum int string = Left 5
val r : sum int string = Right "Hi"

val show = fn x : sum int string => case x of Left _ => "Left _" | Right s => s

val page = fn x => <html><body>
        {cdata (show x)}
</body></html>

val main : unit -> page = fn () => <html><body>
        <li><a link={page l}>Left</a></li>
        <li><a link={page r}>Right</a></li>
</body></html>