aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/basis.lig5
-rw-r--r--src/monoize.sml11
-rw-r--r--tests/gform.lac2
3 files changed, 16 insertions, 2 deletions
diff --git a/lib/basis.lig b/lib/basis.lig
index 3e3950cf..64dee2a3 100644
--- a/lib/basis.lig
+++ b/lib/basis.lig
@@ -24,7 +24,10 @@ val join : ctx ::: {Unit}
-> xml ctx use1 bind1
-> xml ctx (use1 ++ bind1) bind2
-> xml ctx use1 (bind1 ++ bind2)
-
+val useMore : ctx ::: {Unit} -> use1 ::: {Type} -> use2 ::: {Type} -> bind ::: {Type}
+ -> use1 ~ use2
+ -> xml ctx use1 bind
+ -> xml ctx (use1 ++ use2) bind
con xhtml = xml [Html]
con page = xhtml [] []
diff --git a/src/monoize.sml b/src/monoize.sml
index e6c6b6c8..505d6d98 100644
--- a/src/monoize.sml
+++ b/src/monoize.sml
@@ -351,6 +351,17 @@ fun monoExp env (all as (e, loc)) =
(L'.EPrim (Prim.String "</form>"), loc)), loc)), loc)
end
+ | L.EApp ((L.ECApp (
+ (L.ECApp (
+ (L.ECApp (
+ (L.ECApp (
+ (L.EFfi ("Basis", "useMore"), _), _), _),
+ _), _),
+ _), _),
+ _), _),
+ xml) => monoExp env xml
+
+
| L.EApp (e1, e2) => (L'.EApp (monoExp env e1, monoExp env e2), loc)
| L.EAbs (x, dom, ran, e) =>
(L'.EAbs (x, monoType env dom, monoType env ran, monoExp (Env.pushERel env x dom) e), loc)
diff --git a/tests/gform.lac b/tests/gform.lac
index 4ce75e3e..f9b028fa 100644
--- a/tests/gform.lac
+++ b/tests/gform.lac
@@ -23,7 +23,7 @@ functor F (M : S) : S' where con rs = M.rs = struct
{fold [fn rs :: {Unit} => xml lform [] (stringify rs)]
(fn nm :: Name => fn u :: Unit => fn rest :: {Unit} =>
fn frag : xml lform [] (stringify rest) =>
- <lform><li>{frag} <textbox{nm}/></li></lform>)
+ <lform><li> <textbox{nm}/></li> {useMore frag}</lform>)
<lform></lform>
[rs]}