Mercurial > urweb
comparison src/corify.sml @ 1347:b106ca8200b1
postBody type
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sat, 18 Dec 2010 10:56:31 -0500 |
parents | 6c2e565adca6 |
children | 913d9c2f55c9 |
comparison
equal
deleted
inserted
replaced
1346:faad7d01b200 | 1347:b106ca8200b1 |
---|---|
1009 val (e, tf) = ListUtil.foldri (fn (i, t, (e, tf)) => | 1009 val (e, tf) = ListUtil.foldri (fn (i, t, (e, tf)) => |
1010 ((L.EAbs ("x" ^ Int.toString i, | 1010 ((L.EAbs ("x" ^ Int.toString i, |
1011 t, tf, e), loc), | 1011 t, tf, e), loc), |
1012 (L.TFun (t, tf), loc))) | 1012 (L.TFun (t, tf), loc))) |
1013 ((L.EApp (ef, ea), loc), ranT) args | 1013 ((L.EApp (ef, ea), loc), ranT) args |
1014 | |
1015 val expKind = if List.exists (fn t => | |
1016 case corifyCon st t of | |
1017 (L'.CFfi ("Basis", "postBody"), _) => true | |
1018 | _ => false) args then | |
1019 L'.Extern L'.ReadCookieWrite | |
1020 else | |
1021 L'.Link | |
1014 in | 1022 in |
1015 ((L.DVal ("wrap_" ^ s, 0, tf, e), loc) :: wds, | 1023 ((L.DVal ("wrap_" ^ s, 0, tf, e), loc) :: wds, |
1016 (fn st => | 1024 (fn st => |
1017 case #1 (corifyExp st (L.EModProj (en, [], "wrap_" ^ s), loc)) of | 1025 case #1 (corifyExp st (L.EModProj (en, [], "wrap_" ^ s), loc)) of |
1018 L'.ENamed n => (L'.DExport (L'.Link, n, false), loc) | 1026 L'.ENamed n => (L'.DExport (expKind, n, false), loc) |
1019 | _ => raise Fail "Corify: Value to export didn't corify properly") | 1027 | _ => raise Fail "Corify: Value to export didn't corify properly") |
1020 :: eds) | 1028 :: eds) |
1021 end | 1029 end |
1022 end | 1030 end |
1023 | _ => (wds, eds) | 1031 | _ => (wds, eds) |