Mercurial > urweb
changeset 215:2f574c07df2e
Compiling a con-tuple-using test case
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 16 Aug 2008 15:09:53 -0400 (2008-08-16) |
parents | 766b5475477f |
children | 38b299373676 |
files | src/reduce.sml tests/ctuple.lac tests/tuple.lac |
diffstat | 3 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/reduce.sml Sat Aug 16 15:03:05 2008 -0400 +++ b/src/reduce.sml Sat Aug 16 15:09:53 2008 -0400 @@ -123,6 +123,9 @@ (_, _, SOME c') => #1 c' | _ => c) | CConcat ((CRecord (k, xcs1), loc), (CRecord (_, xcs2), _)) => CRecord (k, xcs1 @ xcs2) + + | CProj ((CTuple cs, _), n) => #1 (List.nth (cs, n - 1)) + | _ => c and reduceCon env = U.Con.mapB {kind = kind, con = con, bind = bindC} env
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/ctuple.lac Sat Aug 16 15:09:53 2008 -0400 @@ -0,0 +1,9 @@ +val page = fn p :: (Type * Type) => fn f : p.1 -> string => fn x : p.1 => <html><body> + {cdata (f x)} +</body></html> + +val page_string = page [(string, int)] (fn x => x) + +val main : unit -> page = fn () => <html><body> + <a link={page_string "Hi"}>Hi</a> +</body></html>