summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--demo/css.ur11
-rw-r--r--demo/css.urp4
-rw-r--r--demo/css.urs1
-rw-r--r--demo/prose4
-rw-r--r--lib/ur/basis.urs3
-rw-r--r--src/monoize.sml2
6 files changed, 23 insertions, 2 deletions
diff --git a/demo/css.ur b/demo/css.ur
new file mode 100644
index 00000000..0c1d8f70
--- /dev/null
+++ b/demo/css.ur
@@ -0,0 +1,11 @@
+style quote
+
+fun main () = return <xml>
+ <head>
+ <link rel="stylesheet" type="text/css" href="http://adam.chlipala.net/style.css"/>
+ </head>
+
+ <body>
+ <div class={quote}>Here's a quote.</div>
+ </body>
+</xml>
diff --git a/demo/css.urp b/demo/css.urp
new file mode 100644
index 00000000..150808de
--- /dev/null
+++ b/demo/css.urp
@@ -0,0 +1,4 @@
+allow url http://adam.chlipala.net/style.css
+rewrite style Css/quote quote
+
+css
diff --git a/demo/css.urs b/demo/css.urs
new file mode 100644
index 00000000..6ac44e0b
--- /dev/null
+++ b/demo/css.urs
@@ -0,0 +1 @@
+val main : unit -> transaction page
diff --git a/demo/prose b/demo/prose
index c6acf57d..4eb5fe93 100644
--- a/demo/prose
+++ b/demo/prose
@@ -70,6 +70,10 @@ url.urp
<p>Further, each Ur/Web application enforces a global condition on which strings are allowed as URLs. The <tt>.urp</tt> file for this demo shows an example that specifies particular rules about which URLs are allowed. You can try entering a variety of URLs on the form on the front page. Only those satisfying the <tt>allow url</tt>/<tt>deny url</tt> conditions should be permitted.</p>
+css.urp
+
+<p>Ur/Web supports a structured approach to Cascading Style Sheets, where each style is a first-class value within a module. This demo shows the importing of an external style sheet with one style. By default, like other Ur/Web entities, the name of the style would be <tt>Css_quote</tt>. We use the <tt>rewrite</tt> directive in the <tt>.urp</tt> file to specify an alternate name for a particular canonical module path. The external style sheet contains a definition of a style with the alternate name that we give.</p>
+
listShop.urp
<p>This example shows off algebraic datatypes, parametric polymorphism, and functors.</p>
diff --git a/lib/ur/basis.urs b/lib/ur/basis.urs
index 25ad2786..ea4432cd 100644
--- a/lib/ur/basis.urs
+++ b/lib/ur/basis.urs
@@ -31,7 +31,7 @@ val neg : t ::: Type -> num t -> t -> t
val plus : t ::: Type -> num t -> t -> t -> t
val minus : t ::: Type -> num t -> t -> t -> t
val times : t ::: Type -> num t -> t -> t -> t
-val div : t ::: Type -> num t -> t -> t -> t
+val divide : t ::: Type -> num t -> t -> t -> t
val mod : t ::: Type -> num t -> t -> t -> t
val num_int : num int
val num_float : num float
@@ -536,6 +536,7 @@ con bodyTagStandalone = fn (attrs :: {Type}) =>
val br : bodyTagStandalone []
val span : bodyTag []
+val div : bodyTag []
val p : bodyTag []
val b : bodyTag []
diff --git a/src/monoize.sml b/src/monoize.sml
index 877e1a2c..4b6b3c5f 100644
--- a/src/monoize.sml
+++ b/src/monoize.sml
@@ -811,7 +811,7 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
((L'.EAbs ("r", numTy t, (L'.TFun (t, (L'.TFun (t, t), loc)), loc),
(L'.EField ((L'.ERel 0, loc), "Times"), loc)), loc), fm)
end
- | L.ECApp ((L.EFfi ("Basis", "div"), _), t) =>
+ | L.ECApp ((L.EFfi ("Basis", "divide"), _), t) =>
let
val t = monoType env t
in