summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2012-11-28 11:45:46 -0500
committerGravatar Adam Chlipala <adam@chlipala.net>2012-11-28 11:45:46 -0500
commit550c44b258fcbb3248cda6c6401ae17f513d0ba5 (patch)
treef437cce68202977850d69ee1f04bd85633d4f003
parent9157968f41a0cc24e6621e2860f50a98866ed541 (diff)
Rename Basis.exp to Basis.pow, to avoid confusion with 'expression'; add a test case for it
-rw-r--r--lib/ur/basis.urs2
-rw-r--r--src/monoize.sml10
-rw-r--r--tests/pow.ur4
3 files changed, 10 insertions, 6 deletions
diff --git a/lib/ur/basis.urs b/lib/ur/basis.urs
index 67564108..339e8f0a 100644
--- a/lib/ur/basis.urs
+++ b/lib/ur/basis.urs
@@ -42,7 +42,7 @@ val minus : t ::: Type -> num t -> t -> t -> t
val times : 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 exp : t ::: Type -> num t -> t -> t -> t
+val pow : t ::: Type -> num t -> t -> t -> t
val num_int : num int
val num_float : num float
diff --git a/src/monoize.sml b/src/monoize.sml
index bee3fe97..b51c5d77 100644
--- a/src/monoize.sml
+++ b/src/monoize.sml
@@ -192,7 +192,7 @@ fun monoType env =
("Times", (L'.TFun (t, (L'.TFun (t, t), loc)), loc)),
("Div", (L'.TFun (t, (L'.TFun (t, t), loc)), loc)),
("Mod", (L'.TFun (t, (L'.TFun (t, t), loc)), loc)),
- ("Exp", (L'.TFun (t, (L'.TFun (t, t), loc)), loc))],
+ ("Pow", (L'.TFun (t, (L'.TFun (t, t), loc)), loc))],
loc)
end
| L.CApp ((L.CFfi ("Basis", "ord"), _), t) =>
@@ -793,7 +793,7 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
("Times", (L'.TFun (t, (L'.TFun (t, t), loc)), loc)),
("Div", (L'.TFun (t, (L'.TFun (t, t), loc)), loc)),
("Mod", (L'.TFun (t, (L'.TFun (t, t), loc)), loc)),
- ("Exp", (L'.TFun (t, (L'.TFun (t, t), loc)), loc))], loc)
+ ("Pow", (L'.TFun (t, (L'.TFun (t, t), loc)), loc))], loc)
fun numEx (t, zero, neg, plus, minus, times, dv, md, ex) =
((L'.ERecord [("Zero", (L'.EPrim zero, loc), t),
("Neg", neg, (L'.TFun (t, t), loc)),
@@ -802,7 +802,7 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
("Times", times, (L'.TFun (t, (L'.TFun (t, t), loc)), loc)),
("Div", dv, (L'.TFun (t, (L'.TFun (t, t), loc)), loc)),
("Mod", md, (L'.TFun (t, (L'.TFun (t, t), loc)), loc)),
- ("Exp", ex, (L'.TFun (t, (L'.TFun (t, t), loc)), loc))], loc), fm)
+ ("Pow", ex, (L'.TFun (t, (L'.TFun (t, t), loc)), loc))], loc), fm)
fun ordTy t =
(L'.TRecord [("Lt", (L'.TFun (t, (L'.TFun (t, (L'.TFfi ("Basis", "bool"), loc)), loc)), loc)),
@@ -1032,12 +1032,12 @@ 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), "Mod"), loc)), loc), fm)
end
- | L.ECApp ((L.EFfi ("Basis", "exp"), _), t) =>
+ | L.ECApp ((L.EFfi ("Basis", "pow"), _), t) =>
let
val t = monoType env t
in
((L'.EAbs ("r", numTy t, (L'.TFun (t, (L'.TFun (t, t), loc)), loc),
- (L'.EField ((L'.ERel 0, loc), "Exp"), loc)), loc), fm)
+ (L'.EField ((L'.ERel 0, loc), "Pow"), loc)), loc), fm)
end
| L.EFfi ("Basis", "num_int") =>
let
diff --git a/tests/pow.ur b/tests/pow.ur
new file mode 100644
index 00000000..f03fe47b
--- /dev/null
+++ b/tests/pow.ur
@@ -0,0 +1,4 @@
+fun main () : transaction page = return <xml><body>
+ <li>2^4 = {[pow 2 4]}</li>
+ <li>3.4^5.6 = {[pow 3.4 5.6]}</li>
+</body></xml>